nccl4py
NCCL4Py: Python bindings for NCCL
What it is and what it does
nccl4py is a Python wrapper around NVIDIA's Collective Communications Library (NCCL), designed to bring GPU-accelerated communication to Python applications running on multi-GPU and multi-node clusters. It abstracts NCCL's C API into a Pythonic interface, allowing distributed computing frameworks and custom applications to coordinate GPU computations across multiple nodes without dropping to C code.
The package targets researchers and engineers building distributed machine learning systems, high-performance computing applications, and other workloads that need efficient all-reduce, broadcast, and other collective operations across GPUs. It depends on numpy for array handling, packaging for version management, and CUDA runtime libraries (cuda-core and cuda-pathfinder) to interface with GPU hardware. Installation requires CUDA 12.x or 13.x and is limited to Linux on x86_64 or aarch64 architectures.
Use it for:
- Coordinate gradient synchronization across multiple GPUs during distributed deep learning training.
- Implement custom all-reduce and broadcast operations in multi-node HPC applications.
- Build distributed data-parallel inference pipelines that need efficient GPU-to-GPU communication.
- Integrate NCCL communication into Python-based simulation or numerical computing frameworks.
- Prototype distributed algorithms that require low-latency collective operations on GPU clusters.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
nccl4py provides Python bindings to NVIDIA's Collective Communications Library (NCCL), enabling GPU-accelerated multi-GPU and multi-node communication for distributed computing workloads on Linux clusters.
Yes, if you are building distributed GPU applications on Linux clusters and need low-latency collective communication. The active maintenance, permissive Apache-2.0 license, and strong repository signals indicate a well-supported project. Medium install friction (CUDA runtime dependency, platform-specific wheels) is typical and expected for GPU libraries. No known security vulnerabilities. Not suitable for Windows or macOS, or for single-GPU workloads.
Install
nccl4py on PyPI
pip
pip install nccl4pyuv
uv add nccl4pypoetry
poetry add nccl4pyInstalling nccl4py
Before you install
Medium install friction due to CUDA runtime dependencies (cuda-core, cuda-pathfinder) and platform-specific wheels (x86_64 and aarch64 Linux only). Active maintenance with a recent release (3 days old) and strong repository signals (4996 stars, last commit 2026-08-14).
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for production deployments in research and industry settings.
Quickstart
pip install nccl4py[cu12]
import nccl4py
import numpy as np
# Initialize NCCL communicator for multi-GPU operations
comm = nccl4py.NcclComm()
data = np.array([1.0, 2.0, 3.0])
comm.AllReduce(data)
Requires NVIDIA CUDA 12.x or 13.x installed and NVIDIA GPU hardware; Linux (x86_64 or aarch64) only; Python 3.10 or later.
Verify before relying
- Whether nccl4py requires explicit NCCL library installation or bundles it with the wheel.
- Performance characteristics compared to direct NCCL C API or other Python distributed frameworks.
- Supported collective operations beyond AllReduce and their API signatures.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — packaging, numpy, cuda-core, cuda-pathfinder |
| Maintenance | actively maintained — 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 323,537/month — #7,605 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nccl4py-0.4.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; nccl4py-0.4.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; nccl4py-0.4.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; nccl4py-0.4.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; nccl4py-0.4.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; nccl4py-0.4.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; nccl4py-0.4.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
nvidia-nccl-cu13Provides NVIDIA's Collective Communication…
unclear · top 1,000 on PyPI
nvshmem4py-cu13Provides a Python interface to NVSHMEM,…
unclear · top 15,000 on PyPI
nvidia-nccl-cu11Provides NVIDIA's collective communication…
unclear · top 5,000 on PyPI
nvidia-nccl-cu12Provides NVIDIA's NCCL runtime library for GPU…
unclear · top 1,000 on PyPI
clusterscopeClusterscope extracts and queries information…
permissive · top 15,000 on PyPI
nvidia-cuda-ccclProvides NVIDIA CUDA C++ Core Compute Libraries…
unclear · top 5,000 on PyPI
onecclProvides Intel's oneAPI Collective…
unclear · top 15,000 on PyPI
nvidia-nvshmem-cu12NVSHMEM provides a global address space for GPU…
unclear · top 5,000 on PyPI
mpi4pympi4py provides Python bindings for the Message…
permissive · top 5,000 on PyPI
nixl-cu13NIXL provides Python bindings to accelerate…
permissive · top 15,000 on PyPI