NCCL4Py: Python bindings for NCCL
Project Links
Meta
Author: NVIDIA Corporation
Requires Python: >=3.10
Classifiers
Intended Audience
- Developers
- Science/Research
- End Users/Desktop
Natural Language
- English
Operating System
- POSIX :: Linux
Topic
- Education
- Scientific/Engineering
- Software Development :: Libraries
Programming Language
- Cython
- Python :: 3 :: Only
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
- Python :: Implementation :: CPython
Environment
- GPU :: NVIDIA CUDA
- GPU :: NVIDIA CUDA :: 12
- GPU :: NVIDIA CUDA :: 13
nccl4py bridges Python’s simplicity with the performance of NVIDIA Collective Communications Library (NCCL), and provides a Pythonic interface to NCCL library’s functionality. It enables Python applications to leverage NCCL’s GPU-accelerated multi-GPU and multi-node communication capabilities for distributed computing workloads.
nccl4py follows the NCCL SLA. The details of the NCCL SLA is available here.
nccl4py is under active development. Feedback and suggestions are welcome!
Installation
For CUDA 12.x:
pip install nccl4py[cu12]
For CUDA 13.x:
pip install nccl4py[cu13]
Wheel compatibility matrix
| Platform | CPython 3.10 | CPython 3.11 | CPython 3.12 | CPython 3.13 | CPython 3.14 | CPython (additional flags: t) 3.14 |
|---|---|---|---|---|---|---|
| manylinux_2_24_aarch64 | ||||||
| manylinux_2_24_x86_64 | ||||||
| manylinux_2_28_aarch64 | ||||||
| manylinux_2_28_x86_64 |
Files in release
nccl4py-0.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.2MiB)
nccl4py-0.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.3MiB)
nccl4py-0.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.4MiB)
nccl4py-0.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.5MiB)
nccl4py-0.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.4MiB)
nccl4py-0.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.5MiB)
nccl4py-0.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.3MiB)
nccl4py-0.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.5MiB)
nccl4py-0.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.3MiB)
nccl4py-0.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.4MiB)
nccl4py-0.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (10.4MiB)
nccl4py-0.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.4MiB)
Extras:
Dependencies:
packaging
numpy
cuda.core
(~=1.0)
cuda-pathfinder
(<2.0.0,>=1.5.4)
typing_extensions