nccl-extensions (Python)
Python bindings for the nccl-extensions communication libraries.
Package layout
This package installs into the nccl namespace, so the import paths are
nccl.ep and nccl.m2n:
import nccl.ep as ep
import nccl.m2n as m2n
It contributes exactly three directories to that namespace, and no
nccl/__init__.py:
| path | contents |
|---|---|
nccl/ep/ |
public facade for nccl_ep, plus CUDA-specific native libraries and headers |
nccl/m2n/ |
public facade for NCCL M2N, plus CUDA-specific native libraries and headers. See the M2N Python guide for API usage and examples. |
nccl/_extensions/ |
internals shared by every extension library — the Cython bindings, binding_dataclass, the distribution version |
Install
CUDA_HOME=/usr/local/cuda pip install -e python/
Building requires a CUDA toolkit and a Cython toolchain.
Stage native artifacts before building a distributable wheel:
python/nccl/ep/lib/cu{12,13}/libnccl_ep.so
python/nccl/ep/include/**
python/nccl/m2n/lib/cu{12,13}/libnccl_m2n.so
python/nccl/m2n/include/**
For a complete Linux wheel build, the internal
build_assets/build_wheels.sh script builds and
stages these artifacts in a temporary project copy before running
cibuildwheel. It does not stage artifacts into the source package tree.
Missing shared libraries emit explicit build warnings by default. Set
NCCL_EXTENSIONS_REQUIRE_NATIVE_LIBS=1 to turn a missing library into a build
error; the production wheel script sets this automatically. With the default
value 0, the resulting wheel is not self-contained and needs compatible
external libraries at runtime.
The sdist is source-only and excludes native shared libraries. Building a wheel from it must stage the native libraries at the paths above to bundle them, or provide compatible external libraries for runtime loading.
Pick a CUDA-variant extra to pull in the matching runtime stack (they forward
to nccl4py's cu12 / cu13 extras, and are mutually exclusive):
pip install -e 'python/[cu13]'
At runtime, the installed cuda.bindings major selects the matching bundled
lib/cu12 or lib/cu13 native libraries. NCCL EP compiles kernels at runtime
with NCCL_EP_JIT_NVCC, NVCC, or the compiler under CUDA_HOME; that compiler
and its headers must match the selected CUDA major.
Do not run Python from inside
python/. There is nonccl/__init__.pythere, so that directory resolves only as a namespace portion and these modules become invisible. Always go through the editable install.
Regenerating the bindings
Everything under nccl/_extensions/bindings/ is generated and checked in. Do
not edit it by hand — re-run
build_assets/generate_cython.py after changing a
public header, config, or template and commit the result.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nccl_extensions-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
647f28b3a7a7d5c5c40cc7db544ed7ff362ac091b28e806de93c6215d2af45fe
|
|
| MD5 |
7155cfeed8cf8136d6d23be7ce67e520
|
|
| BLAKE2b-256 |
e2af3a54416ac5e5ec08254195216e9708b8e91371d436e5c5459348400fdb98
|
File details
Details for the file nccl_extensions-0.1.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.4 MB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11226949d4daaa9c95ca1b0de4227712291954ae50f8408d97e19af2c0f45d19
|
|
| MD5 |
96ddca5bea3601909711f52f629d41e5
|
|
| BLAKE2b-256 |
6b8e0a04f409518bfe3703519e494e876f3b1f363692392f8523dce23e19e2a1
|
File details
Details for the file nccl_extensions-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28f2513696bd03453857db32a5f6144631f874efb23b5fede4c6218e6026d6b1
|
|
| MD5 |
a67efccc802596aeebe9e93ff8b5e742
|
|
| BLAKE2b-256 |
d93d2af7630a67b2c2d96e4ad520a3a04957e92b66dbc0c886520aa96b7b5c57
|
File details
Details for the file nccl_extensions-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.3 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de0ac4801a9ca851a13b2abe3825a8c60fe2a12c637d96b675ea564b31db9152
|
|
| MD5 |
42992419760d995799abd3de263ca3fb
|
|
| BLAKE2b-256 |
f021ad0697074c2050fd7b6ee6f1909f1bb75019b710319baf1907d6d8a65476
|
File details
Details for the file nccl_extensions-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3328dc1cfeed0ddf37caac00be8c49b3e4f727dce0e7980f8831696165619a4f
|
|
| MD5 |
0910c14c8cd3f12a4635535a499e5594
|
|
| BLAKE2b-256 |
5b660f0a3fe84ffdf6ddfb13c01a036ea370519204820cc8c53303f479c43a09
|
File details
Details for the file nccl_extensions-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.3 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3678bce16864064a9f8774ec69f5c023cb2cbcd91db60a7f98e7c87fd4f18a50
|
|
| MD5 |
de1e6a79a11c61809f17de0163b9b351
|
|
| BLAKE2b-256 |
908b0d98ca96c8625af88d834230b34115fac032ed69eb84c8bde7c38b956d16
|
File details
Details for the file nccl_extensions-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54d46bee108f0bc18cdc35dbe17bba6452d6a38a270fa5e8ccde03267460fa87
|
|
| MD5 |
0862165a5a5b7b18745aa78e6298db2d
|
|
| BLAKE2b-256 |
f33cb043c1f8ca2766d48e30e9cc5a0d65d51aef77e3a8d18dbbaa95fd5386e2
|
File details
Details for the file nccl_extensions-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d85e203e284b50dad3846d6fb0d35560378537689f23d92a16c67f7d854025d7
|
|
| MD5 |
17591102477c4c1f3e67487c07d189f7
|
|
| BLAKE2b-256 |
2477a02842f3e7d6aef181733f94d313a1ff4b3db2726e2c067d7946e8f34cc3
|
File details
Details for the file nccl_extensions-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30d42d0218f46e394a21c5663f09ee9bb8a90caf4d69f0040e5a9eb2fef7b8ad
|
|
| MD5 |
662b4df53c94be300d40a606902a5903
|
|
| BLAKE2b-256 |
01f85b61524b1b1a014ad523bbde766dfa6f9de76865bbaf74aaaf3fd2a7bf37
|
File details
Details for the file nccl_extensions-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5130d94bbc02852f1deb5ab38e944dc7e0db0f1b4769f5f3c8d652eb5776a86
|
|
| MD5 |
7ffff9e40f3a2d184c1896b1f09ba5e2
|
|
| BLAKE2b-256 |
81708cb06143dc7926020f717d649d91b9302eb3346e29b8fdb13b257ef78d4b
|
File details
Details for the file nccl_extensions-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 22.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a76dca0d039640e9a49447d679beaa0307f5df5c1b46efd6772ce955bd7b16df
|
|
| MD5 |
11e6be9b3ab80dd174905f758c20eddd
|
|
| BLAKE2b-256 |
a9f01058d305f9bb76faaa6d3dc7bbd753b79da2f1a476b984ccad8bc5383231
|
File details
Details for the file nccl_extensions-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: nccl_extensions-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 22.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1739bd8d22d3118948bcabb05fda19c375b572301518d8e77e4dd622cab976f3
|
|
| MD5 |
b0df1ea9dd186ffa694caaab935c2801
|
|
| BLAKE2b-256 |
a9aaf5d3a72f1f06745e4cc06afb1aca27ba18d96c684184f2885b80c01dbfa0
|