mirror of
https://github.com/microsoft/mscclpp.git
synced 2026-03-24 00:57:47 +00:00
Provides two integration ways for MSCCL++ DSL. 1. Integrate with customized communication group 2. Integrate with NCCL API Introduce new Python APIs to make it work: ```python mscclpp.compile # compile dsl to json based execution plan mscclpp.ExecutionPlanRegistry.register_plan(plan) # register the compiled plan to executionPlanRegistery mscclpp.ExecutionPlanRegistry.set_selector(selector) # set the selector, the selector will return the best execution plan based on collection, message size, world size.... ``` Fix #556 --------- Co-authored-by: Caio Rocha <caiorocha@microsoft.com> Co-authored-by: Changho Hwang <changhohwang@microsoft.com>
29 lines
891 B
C++
29 lines
891 B
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#include <nanobind/nanobind.h>
|
|
#include <nanobind/stl/shared_ptr.h>
|
|
#include <nanobind/stl/string.h>
|
|
|
|
#include <mscclpp/env.hpp>
|
|
|
|
namespace nb = nanobind;
|
|
using namespace mscclpp;
|
|
|
|
void register_env(nb::module_& m) {
|
|
nb::class_<Env>(m, "Env")
|
|
.def_ro("debug", &Env::debug)
|
|
.def_ro("debug_subsys", &Env::debugSubsys)
|
|
.def_ro("debug_file", &Env::debugFile)
|
|
.def_ro("hca_devices", &Env::hcaDevices)
|
|
.def_ro("hostid", &Env::hostid)
|
|
.def_ro("socket_family", &Env::socketFamily)
|
|
.def_ro("socket_ifname", &Env::socketIfname)
|
|
.def_ro("comm_id", &Env::commId)
|
|
.def_ro("execution_plan_dir", &Env::executionPlanDir)
|
|
.def_ro("npkit_dump_dir", &Env::npkitDumpDir)
|
|
.def_ro("cuda_ipc_use_default_stream", &Env::cudaIpcUseDefaultStream);
|
|
|
|
m.def("env", &env);
|
|
}
|