| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| CCCL Python Libraries (1.2.0) source code.tar.gz | 2026-09-17 | 13.0 MB | |
| CCCL Python Libraries (1.2.0) source code.zip | 2026-09-17 | 21.5 MB | |
| README.md | 2026-09-17 | 4.6 kB | |
| Totals: 3 Items | 34.5 MB | 0 | |
CCCL Python Libraries (v1.2.0)
Previous release: v1.1.1.
These are the release notes for the cuda-cccl Python package version 1.2.0.
The headline changes in this release are: bfloat16 support in cuda.compute and free-threaded (3.14t) wheel support for the cuda-compute-minimal extra. Under the hood, cuda.compute's JIT backend has migrated from numba-cuda to numba-cuda-mlir, with no public API changes.
Installation
Please refer to the install instructions here.
Packaging / breaking changes
cuda.coop._experimentalremoved fromcuda-cccl(#10104)
The experimental cooperative-primitives module (cuda.coop, including cuda.coop._experimental) has been removed from cuda-cccl wheels entirely — implementation, tests, benchmarks, examples, docs, and CI jobs. It depended on the classic numba-cuda JIT path, which is not compatible with free-threaded Python, and removing it clears the way for publishing free-threaded cuda.compute wheels. A significantly improved cuda.coop is in development, targeted for a future release. This does not affect cuda.compute, cuda.cccl, or any C++ cooperative APIs (CUDA Experimental, CUB).
cuda.compute's JIT backend migrated fromnumba-cudatonumba-cuda-mlir(#9421)
User-operator and gpu_struct compilation now goes through numba-cuda-mlir, the MLIR-based successor to numba-cuda. This is an internal backend swap with no change to cuda.compute's public API or performance (compile-time or runtime). Installing cuda-cccl[cu12]/[cu13] now pulls in numba-cuda-mlir instead of numba-cuda.
Features
bfloat16support incuda.compute(#10933)
Algorithms in cuda.compute now accept bfloat16 arrays (_nv_bfloat16 in CUDA C++). NumPy has no native bfloat16 dtype, so this relies on the ml_dtypes package, which is not a required dependency — install it yourself if you want to use bfloat16. Verified compatible with CuPy arrays and PyTorch tensors. Python callables cannot be JIT-compiled for bfloat16 (Numba has no support), so operators must be either well-known OpKind operations or pre-compiled device code.
```python import numpy as np import ml_dtypes import cuda.compute as cc
BFLOAT16 = np.dtype(ml_dtypes.bfloat16) h_in = np.array([1.0, 2.0, 3.0], dtype=BFLOAT16) # reduce, scan, sort, transform, histogram, etc. now accept bfloat16 arrays cc.reduce_into(d_in=h_in, d_out=..., op=cc.OpKind.PLUS, h_init=np.array([0], dtype=BFLOAT16)) ```
- Free-threaded (Python 3.14t) wheel support (#9475, [#11311], [#10803], [#10789], [#11311])
cuda.compute is now thread-safe and can run with the GIL disabled.
reduce_intoacceptsh_init=None(#10953)
reduce_into no longer requires an explicit identity/init value — pass h_init=None to reduce using the first element as the seed, mirroring cub::DeviceReduce's no-init overload. (Not supported together with Determinism.NOT_GUARANTEED.)
python
cc.reduce_into(d_in=d_in, d_out=d_out, op=cc.OpKind.MAX, h_init=None)
Bug Fixes
- Fixed
TransformIteratorignoring stateful-op state (#11213) —TransformIteratorpreviously composed its state bytes from only the underlying iterator's state, dropping the state of a statefulop. It now combines both correctly.
Internal / CI
- Simplified the Python CMake configuration (#9883).
- Replaced device-array usage outside examples with a wrapper independent of CuPy/
numba-cuda(#9653). - Added CI coverage: thread-sanitizer job for
c.parallel(#9986),pytest-run-parallel(#9886), benchmark smoke tests (#9885), tests against the system CTK instead of a pip-installed one (#10500), running Python test payloads in a minimal sibling container (#11018). - Enabled precompiled headers for
cuda.computeHostJIT builds (#10628); split the Clang/LLD HostJIT library out separately (#9583); serialized HostJIT builds and improved related tests (#9998). - Fixed mypy
cache_dirhandling and re-enabled mypy on pre-commit.ci (#10876); applied mypy fixes to benchmark infra scripts (#11099). pre-commit.ciautoupdate (#10729); fixed broken links to the Python docs on github.io (#10585).- Fixed an overflow bug in the segmented-reduce test suite (#11327).
Notes
- v1.2.0 includes all commits from v1.1.1 plus the above; there were no releases between v1.1.1 and v1.2.0.