This is the release note of v13.4.0. See here for the complete list of solved issues and merged PRs.
💬 Join the Matrix chat to talk with developers and users and ask quick questions!
🙌 Help us sustain the project by sponsoring CuPy!
✨ Highlights
NVIDIA CUDA 12.8 Support
CuPy now supports CUDA 12.8 and the latest NVIDIA Blackwell architecture.
AMD ROCm 6.x Support
CuPy can now be built with AMD ROCm 6.x.
Python 3.13 Support
Binary packages for Python 3.13 are now available.
🛠️ Changes without compatibility
Cython 3.0 as build requirement (#8959)
To provide support for Python 3.13, CuPy codebase has been updated for Cython 3. To build CuPy from source, Cython 3.0 or later is now required instead of Cython 0.29.x.
📝 Changes
New Features
- Add
cupyx.signal.mvdr
(#8872)
Enhancements
- Support ROCm 6 (#8608)
- Support setuptools 74.0.0 or later (#8649)
- Use custom less instead of specializing thrust (#8653)
- Add
NCCL_ERROR_REMOTE_ERROR
to the set of errors from NCCL (#8667) - Replace
numpy.ComplexWarning
withcupy.exceptions.ComplexWarning
(#8678) - Use weakref.finalize instead of del for RandomState._generator destruction (#8680)
- Implement dlpack v1 (#8722)
- Fix some NumPy 2.x CI failures (cont.) (#8725)
- Bump CUDA version in cuda11x-cuda-python CI (#8743)
- ROCm 6.2.2: Conditionally define CUDA_SUCCESS only if it's not (#8799)
- Raise VisibleDeprecationWarning for wavelet functions (#8868)
- Use a custom Min/Max instead of specializing CUB (#8875)
- Updating pylibraft
pairwise_distance
to cuvs (#8897) - Support CUDA 12.8 + Blackwell GPUs (sm_100, sm_120) (#8915)
- Interpolate: update RBF to scipy 1.13 (#8939)
- Use C++17 in JIT compile (#8941)
- Bump library installers for CUDA 12.8 (#8943)
- Use CCCL 2.8.x branch + Use
CUPY_CACHE_KEY
in hash keys (#8946) - Use NVIDIA CCCL 2.8 latest w/CUDA 12.3 fix (#8948)
- Broaden usage of C++17 (#8958)
- Port to Cython 3.0 (#8959)
cupyx.scipy.distance
: initialize output array with empty instead of zeros (#8981)cupyx.scipy.spatial.distance.cdist
remove explicit zeroing of user-provided output array (#8990)- Skip
sparse.linalg.{cg, cgs, gmres}
tests for scipy>=1.14 (#8551) cupyx.scipy.sparse tests
for SciPy 1.14 (#8552)- Fix some NumPy 2.x CI failures (cupyx) (#8738)
- Fix
cupy.percentile
for NumPy 2.x (#8752) - Skip some tests incompatible with NumPy 2.2 (#8830)
- Disable contiguous_check for COO/dense matmul test (#8888)
- Raise ValueError upon attempts to create 3-dim sparse array (#8889)
- Skip a test for invalid scipy return value of invalid COO matmul (#8890)
- Fix
fft.fht
following bug fix in SciPy 1.15 (#8891) - Support empty tuple indexing for sparse matrix (#8892)
- Deprecate
cupyx.scipy.linalg.kron
(#8902) - Fix test for
special.sph_harm
to ignore DeprecationWarning (#8906)
Bug Fixes
- Add nccl.broadcast 64-bit support (#8566)
- Support building CuPy with setuptools 74 (#8577)
- Fix order 'K' with shape given for
*_like
array creation (#8605) hipPointerGetAttributes
returns error when pointer is unregistered in ROCm 5.7 (#8609)- Guard for ROCm 6.x (#8611)
- Fix
HIP_VERSION
unit (#8619) - Switch to using platform.machine() instead of platform.processor() (#8656)
- Properly allocate in RNG when specified dtype is neither float32/float64 (#8658)
- Use
platform.machine()
instead ofplatform.processor()
(#8673) - Fix sosfilt state output shape when ndim < 2 (#8679)
- Fix undefined inf/nan constant in CuPy JIT (#8712)
- Fix bspline kernel to avoid out of bounds error (#8763)
- Fix race during SoftLink initialization (#8787)
- fix nanargmin and nanargmax's parameter order and pass optional parameters (#8791)
- Fix crashes of quantile and percentile (#8811)
- Fix handling of pinned memory (#8852)
- Use
/bigobj
on Windows build (#8967) - Fix
cupyx.scipy.spatial.distance
'scdist
for RAPIDS 24.12 compatibility (#8975)
Code Fixes
- Upgrade pre-commit hooks to silence warnings (#8666)
- Resolve import loop (#8714)
- Resolve uncaught type warning (#8798)
- Switch from
.A
attribute to.toarray()
method (#8814) - Fix typo in
_cretate_frame_tree
(#8944) - Drop unneeded
bytes
copy ofCUPY_CACHE_KEY
(#8947)
Documentation
- Add docs about CUDA headers (#8595)
- Update
fft.rst
(#8617) - Update documentation to use
pre-commit
(#8650) - Add tips on Windows development in Contribution Guide (#8704)
- Add notice about
cupy.array_api
removal (#8751) - Add CUDA 12.8 to docs (#8968)
- Update list of supported versions (#8991)
Installation
- Update conda-build CUDA detection logic for Setuptools 72.2.0 (#8652)
- Use relative path of header files to generate cache key (#8930)
- Fix minimum CUDA version check and update comments (#8938)
- Bump version to v13.4.0 (#8993)
Tests
- Relax
test_firls
atol (#8522) - Skip test_homomorphic in scipy>=1.14 (#8523)
- Skip betaincinv test with SciPy 1.14.1 (#8553)
- Skip special tests for SciPy 1.14 dtype rule changes (#8554)
- Skip
special.logsumexp
test for empty input (#8555) - Skip
cupy.scipy.stats.entropy
tessts for SciPy 1.14 dtype rule change (#8556) - Use
setuptools==73.0.1
(#8569) - Revert CI timeout bump (#8571)
- Support SciPy 1.13 and 1.14 (#8572)
- Missing backport for sparse_array.A removal (#8573)
- Skip test_log_expit SciPy 1.7 (#8576)
- Catch
ValueError
(#8625) - Use
testing.with_requires
to skip broken tests (#8627) - CI: Update micro versions of Python (#8635)
- Skip tests if
scipy
is not installed (#8637) - Accept
OverflowError
inTestCopytoFromScalar
for NumPy v2 (#8643) - Skip more tests if scipy is not installed (#8645)
- Update precommit (#8663)
- Backport the changes introduced in [#8690] (#8694)
- CI: Fix apt repository URL for Ubuntu 22.04 (#8715)
- Remove ndarray.ptp from fallback tests (#8744)
- Temporary skip for NumPy 2.0 tests (#8745)
- Relax tolerance of
test_hilbert
for NumPy 2.0 (#8746) - Bump SciPy version to 1.14 in Windows CI (#8764)
- Add NumPy 2.x CI for Linux (#8768)
- CI: support "skip-ci" label (#8841)
- CI: Fix FlexCI compatibility (#8842)
- Add NumPy 2.2 to CI (#8855)
- Replace
flake8
withruff
(#8859) - Support Optuna 4 (#8863)
- Add
testing.shaped_linspace
(#8900) - Disable contiguous_check for some
signal.cont2discrete
tests (#8901) - Fix splines tests to remove unexpected skips (#8921)
- Minor updates for sm120 (#8922)
- Add CI for CUDA 12.8 (#8951)
- Increase host memory in Windows CI, free GPU memory in example code (#8969)
- Skip some signal tests for TypeError for inputs of
np.longlong
dtype (#8972) - Add CI for Python 3.13 and mpi4py v4 (#8974)
- Pass
locals
dict toexec
(#8985)
Others
- Add backport reminder (#8684)
- Fix script name of backport reminder (#8686)
- Update
pre-commit
hooks (#8910) - Fix pull request project board workflows (#8929)
- Regenerate coverage matrix (#8960)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@99991 @andfoy @asi1024 @Azusachan @bernhardmgruber @Berrysoft @chainer-ci @cjnolet @dagardner-nv @EarlMilktea @eltociear @ev-br @grlee77 @HollowMan6 @jakirkham @jemiryguo @kmaehashi @leofang @littlewu2508 @mohitreddy1996 @mroeschke @seberg @takagi