![JAR search and dependency download from the Maven repository](/logo.png)
org.bytedeco.pytorch.presets.gloo Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2024 Hervé Guillemet
*
* Licensed either under the Apache License, Version 2.0, or (at your option)
* under the terms of the GNU General Public License as published by
* the Free Software Foundation (subject to the "Classpath" exception),
* either version 2, or any later version (collectively, the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.gnu.org/licenses/
* http://www.gnu.org/software/classpath/license.html
*
* or as provided in the LICENSE.txt file that accompanied this code.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.bytedeco.pytorch.presets;
import org.bytedeco.javacpp.ClassProperties;
import org.bytedeco.javacpp.LoadEnabled;
import org.bytedeco.javacpp.annotation.Platform;
import org.bytedeco.javacpp.annotation.Properties;
import org.bytedeco.javacpp.presets.chrono;
import org.bytedeco.javacpp.tools.*;
/**
* @author Hervé Guillemet
*/
@Properties(
inherit = torch.class,
value = @Platform(
include = {
"torch/csrc/distributed/c10d/ProcessGroupGloo.hpp",
}
),
target = "org.bytedeco.pytorch.gloo",
global = "org.bytedeco.pytorch.global.gloo"
)
public class gloo implements LoadEnabled, InfoMapper {
@Override
public void init(ClassProperties properties) {
torch.initIncludes(getClass(), properties);
}
@Override
public void map(InfoMap infoMap) {
//// Instantiation of class templates.
infoMap
.put(new Info("gloo::ReductionFunction").pointerTypes("ReductionFunctionFloat"))
.put(new Info("gloo::ReductionFunction").pointerTypes("ReductionFunctionInt"))
;
//// Hopefully will skip only the initializers, not the fields:
infoMap
.put(new Info("ReductionFunction::sum").skip())
.put(new Info("ReductionFunction::product").skip())
.put(new Info("ReductionFunction::min").skip())
.put(new Info("ReductionFunction::max").skip())
;
//// Renaming to avoid clashes
infoMap
.put(new Info("gloo::transport::Context").pointerTypes("TransportContext"))
;
//// Not exported
infoMap
.put(new Info("gloo::Slot").skip())
;
infoMap
.put(new Info("__CUDA_ARCH__").define(false))
;
infoMap.put(new Info("gloo::kOnDeviceThreshold").javaText("public static final long kOnDeviceThreshold = 256 * 1024;"));
new torch.PointerInfo("gloo::transport::Context").javaBaseName("TransportContext").makeShared(infoMap);
new torch.PointerInfo("gloo::transport::Device").makeShared(infoMap);
//// Unsure if instantiating these templates could have any interest
//// for a use from Pytorch
infoMap
.put(new Info("gloo::sum", "gloo::product", "gloo::max", "gloo::min").skip())
;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy