CuPy v14.0.0 Release Note
CuPy v14 is our first major update in two years, bringing significant enhancements to the ecosystem, including NumPy v2 semantics, improved installation via CUDA Pip Wheels, bfloat16 and structured dtypes, and expanded platform support.
Note
Check out our blog post for the key highlights and major changes in CuPy v14!
The following part of the release note only covers the changes since the last pre-release (v14.0.0rc1).
📝 Changes
See here for the complete list of merged PRs.
New Features
- Add
%gpu_timeitIPython magic (#9572) - Support viewing CuPy arrays as
cuda::std::mdspanon host/device (#9639) - Add CUDA Stream Protocol support (#9640)
- ENH:
ml_dtypes.bfloat16support (#9659)
Enhancements
- Support CUDA 13.1 and NCCL 2.28 (#9550)
- Update to CCCL v3.1.2 (#9556)
- Support cuTensor 2.4 (#9601)
- MAINT: Delete the array api namespace and all related things (#9609)
- Avoid allocating an intermediate array in
cupy.random.choice(#9619) - DEP: Deprecate jitify=True support (and jitify=False) (#9671)
- Support
cp.from_dlpackwithml_dtypes.bfloat16Optionally (#9675) - Improve pathfinder support (#9683)
- Add guard for unsupported CUDA version in cuFFT
setJITCallback(#9692) - ENH: make
broadcast_arrays,meshgridreturn a tuple not list (#9599)
Performance Improvements
- MAINT,ENH: Simplify
CScalarhandling and ready it for arbitrary dtypes (#9546) - Add fast-path for gufunc (specifically matmul) (#9564)
- MAINT,PERF: Add fast-path and avoid errors in operators/array-ufunc (#9574)
- MAINT: A few small micro-optimizations (#9679)
Bug Fixes
- Fix
ctkextras (#9553) - Fix intersect1d crash with empty arrays (#9563)
- Add N-D array support to upfirdn (#9565)
- Fix conda compiler detection (#9577)
- BUG: Make sure indexing routines are OK with huge arrays (#9580)
- Add missing ROCm packages in duplicate detection (#9595)
- ENH: do not unload modules/code that have been used (#9617)
- BUG: Fix RandomState thread safety (and memory initialization) (#9623)
- Fix #9568: Handle negative inputs in sawtooth and square waveforms (#9624)
- Fix compute capability list and remove CUDA 11 related code (#9626)
- TST: Skip bfloat16 dlpack test on old CUDA versions (#9681)
- Fill bfloat16 gaps around arange and some reduction (#9694)
Code Fixes
- Fix CI (mini) (#9578)
- TYP: Fix small typing issues found in new pre-commit env (#9581)
- TST: migrate tests from unittest to pytest (#9610)
- Make FFT config more thread-safe and adatapt FFT tests (#9616)
Documentation
- Update docs for CuPy v15 (#9545)
- Fix #7828: Remove
selffrom ndarray docstring signature (#9618) - Add missing items to migration guide (#9685)
- Doc: add support for CUDA 13.1 (#9697)
Installation
Tests
- Update branch configuration (#9544)
- Fix cuda-python CI & the test status retrieval in Windows CI (#9571)
- BUG,TST: Fix
cupy_tests/core_testsruns forpytest-run-parallel(#9583) - TST: Reorganize cublas tests for thread-safety (#9603)
- Fix
TestChoiceReplaceFalsecheck (#9633) - Support NumPy 2.4 (#9635)
- Bump disk size limit for cuda.head CI (#9637)
- Fix Windows CI + Tightening up
/testlogic (#9638) - CI: Update cache handling in CI (#9645)
- CI: Bump disk image size for all ci axes (#9646)
- CI: Fix expiry (#9652)
- Avoid caching cuFFT legacy callback artifacts (#9678)
- Upgrade rocm test environment to 7.1 (#9687)
- TST: Slightly bump SVD test tolerance (but tighten it for float64) (#9688)
Others
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@asi1024 @EarlMilktea @ev-br @gpinkert @Harishjitu @isVoid @kmaehashi @leofang @megha-darda @seberg @aman-coder03 @yangcal @yujiteshima