skillfed

nccl4py

NCCL4Py: Python bindings for NCCL

nccl4py v0.4.1 323.5K downloads/30d#7,605 on PyPI4,996
Permissive license Apache-2.0 Active released

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 nccl4py

uv

uv add nccl4py

poetry

poetry add nccl4py

Installing 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

Environment :: GPU :: NVIDIA CUDAEnvironment :: GPU :: NVIDIA CUDA :: 12Environment :: GPU :: NVIDIA CUDA :: 13Intended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Science/ResearchNatural Language :: EnglishOperating System :: POSIX :: LinuxProgramming Language :: CythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: EducationTopic :: Scientific/EngineeringTopic :: Software Development :: Libraries

Tags

gpu collective communicationnccl python bindingsmulti-gpu distributed computingnvidia nccl wrappergpu cluster communicationdistributed training communicationcuda collective operations
gpu-computingdistributed-systemsnvidia-cuda

More Libraries packages

Further reading