Releases: cupy/cupy
v13.3.0
This is the release note of v13.3.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
Updated NVIDIA CCCL
The CCCL library bundled with CuPy has been updated to eliminate the Jitify preprocess phase. Users will no longer see the one-time performance warning (Jitify is performing a one-time only warm-up to populate the persistent cache, this may take a few seconds and will be improved in a future release...
) unless explicitly requesting the use of Jitify (e.g., cupy.RawModule(..., jitify=True)
).
Enhanced NumPy 2.0 Compatibility
This release provides better interoperability with NumPy 2.0.
Support for CUDA 12.5 & 12.6
CuPy is now tested with CUDA 12.5 and 12.6.
RFC: Removing NumPy Fallback Mode in CuPy v14
The CuPy team is discussing the possibility of removing NumPy fallback feature in CuPy v14. Feel free to join the discussion in #8497 if you have any comments or use-cases using this feature.
📝 Changes
Enhancements
- Support CUDA 12.5 (#8423)
- Avoid using Jitify everywhere inside CuPy (#8473)
- Disable jitify for cub & Bump CCCL (#8487)
- Get rid of
pkg_resources
(#8496) - Unregister
cupyx.scipy.linalg.{tri,tril,triu}
from uarray (reverted in #8516) (#8506) - Use
.toarray()
instead of.A
attribute (#8517) - Extend runtime header search logic to conda (#8520)
- Support CUDA 12.6 (#8524)
- Fallback to system headers for future CUDA 12.x versions (#8529)
Bug Fixes
- Fix spline temp container size in
make_interp_spline
(#8390) - MAINT: Avoid using
np.compat.integer_types
(#8413) - Fix type dispatcher for arm64 (#8414)
- Fix
ndarray.get()
not honoring current stream when layout is not contiguous (#8418) - Fix copyto for NumPy 2 compatibility (#8435)
- Update
compiler.py
to avoid the popup of thenvcc.exe
console (#8438) - Fix
RandomState.seed()
for NumPy 2 compatibility (#8439) - Fix the size of temporary CUB output space to consider its alignment (#8447)
- Address
KeyErrors
fromimportlib_metadata
(#8465) - upfirdn:
mode=None
->mode="constant"
(#8495) - Search header files from CTK wheel (#8504)
- Fix CUDA version condition to use headers from wheel (#8507)
- Do not unregister
cupyx.scipy.linalg.{tri,tril,triu}
from uarray (#8516) - Fix ROCm 4.3 binary package build broken (#8534)
- Fix cudart header detection for conda (#8535)
Documentation
- eigsh doc correction
_eigen.py
(#8383) - typo:
coping
->copying
(#8427) - Add CUDA 12.5 to list of supported platform (#8428)
- Add comparison table for
(cupyx.)scipy.sparse.*_matrix classes
class methods (#8458)
Installation
- Patch the build system to better support conda-build (#8464)
Tests
- Bump NumPy/SciPy versions in cuda-example CI (#8420)
- Support SciPy 1.12 (#8422)
- Fix CUDA 11.2 CI failure on Linux (#8437)
- Decrease number of threads to avoid "system error: excessive memory usage is detected" (#8462)
- CI: skip CUDA 12.1/12.2/12.3/12.4 CI on "mini" trigger (#8469)
- Resolve Ruff
NPY
errors - fix exception imports andasfarray
usage in test code (#8471) - Skip some tests in aarch64 CI (#8490)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@andfoy @arkdong @asi1024 @bmerry @EarlMilktea @emcastillo @hmaarrfk @jakirkham @johnnynunez @kmaehashi @leofang @monzelr @seberg @swelborn @takagi @YanivDorGalron
v13.2.0
This is the release note of v13.2.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
Support for NumPy 2.0 (#8357)
CuPy can now be imported under NumPy 2.0.
Lazily preloading NCCL (#8367)
CuPy now loads NCCL shared library at the time of import cupy.cuda.nccl
, instead of import cupy
. This improves NCCL compatibility on mixed-library environments.
📝 Changes
Enhancements
- cupyx: cleanup use of deprecated NumPy functionality (NumPy 2.0 compatibility) (#8325)
- make CuPy import under NumPy 2.0 (#8357)
- Lazy-preload NCCL (#8367)
Bug Fixes
- Fix overflow indexing ndarray generated with as_strided (#8349)
- Fix CUB build error on win-64 (#8358)
- Re-enable NVTX range coloring for NVTX3. (#8361)
Documentation
Tests
- [v13] Use the latest NumPy v1 for head CI (#8355)
Others
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@asi1024 @cclauss @ev-br @grlee77 @kmaehashi @leofang @macrocosme @romerojosh @takagi
v13.1.0
This is the release note of v13.1.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
Support for CUDA 12.3 & 12.4 (#8286)
CuPy now supports CUDA 12.3 and 12.4. Binary packages are available for Linux (x86_64/aarch64) and Windows as cupy-cuda12x
.
Fixed Regression on pre-Volta platforms (#8216)
This release fixes the regression in CuPy v13.0.0 that part of CuPy functions were not functioning under pre-Volta platforms (compute capability < 7.0) such as NVIDIA Tesla P100 or GeForce GTX 1080.
📝 Changes
New Features
- Add
cupyx.signal.{complex_cepstrum,real_cepstrum,inverse_complex_cepstrum,minimum_phase}
(#8096) - Add
cupyx.signal.{firfilter,firfilter_zi,firfilter2}
(#8107) - Add
cupyx.signal.freq_shift
(#8131) - Add
cupyx.signal.channelize_poly
(#8148) - Add
cupyx.signal.ca_cfar
(#8167)
Enhancements
- Add incontiguous support for cutensor functions (#8168)
- Remove usages of
numpy.float_
andnumpy.complex_
(#8181) - Fix
expm(complex matrix)
(#8214) - Various Jitify improvements (#8237)
- Bump to cuTENSOR 2.0.1 (#8291)
NumPy-compatibility Improvements
- Fix
scp.signal.{medfilt,medfilt2d}
to raise ValueError for complex64 inputs (#8084) - Fix
boxcox_llf
for SciPy 1.12 changes (#8132) - Deprecate
cupyx.scipy
wavelet functions (#8139)
Bug Fixes
- Fix #7981, Update
_nccl_comm.py
(#8112) - Fix Flags not to allow setters (#8138)
- Prevent angular brackets from appearing in Jitify's cache filename (#8160)
- Set
-arch
in the compiler options unconditionally (#8161) - Allow
cupy.show_config()
without CUDA (#8192) - Fix jitify warmup kernel (#8216)
- Fix: remove unnecessary include that causes deployment issue (#8217)
- Fix build system for Thrust detection (#8230)
- Fix: always switch to the submodule dir before checking git tag/commit (#8240)
- Fix overflow of index calculation in random generator API (#8246)
- Fix Generator API parallelism (#8247)
- Fix CUB
min
/max
initial values (#8266) - Fix jitify warmup kernel - Cont'd (#8270)
Documentation
- Update conda installation guide (#8135)
- Fix pdist docstring in order to specify that the returned matrix is condensed (#8187)
- Replace license notice in cupyx.scipy.signal._spectral (#8271)
- Update document for CUDA 12.3 and 12.4 (#8284)
Installation
- Do not search for static libs (#8143)
Tests
- Fix
cupyx.scipy.special.betainc
for invalid inputs (#8098) - Revert CI timeout changes (#8137)
- Fix invalid
vectorstength
tests (#8145) - Fix actions versions used in workflows to avoid node 16 deprecation warning (#8194)
- Add CI to test
cupy.show_config()
pass without CUDA installed (#8195) - Add import test without CUDA Toolkit (#8231)
- BUG: cupyx/scipy/signal: fix mpmath test (#8262)
- Tentatively pin SciPy to v1.12 in CI (#8275)
- Add support for CUDA 12.3 & 12.4 (#8286)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@andfoy @asi1024 @emcastillo @ev-br @jemiryguo @kmaehashi @leofang @takagi
v13.0.0
This is the release note of v13.0.0. See here for the complete list of solved issues and merged PRs.
This release note only covers changes made since the v13.0.0rc1 release. Check out our blog for highlights of the v13 release!
See the Upgrade Guide for the list of possible breaking changes in v13.
💬 Join the Matrix chat to talk with developers and users and ask quick questions!
🙌 Help us sustain the project by sponsoring CuPy!
📝 Changes
For all changes in v13, please refer to the release notes of the pre-releases (alpha1, beta1, rc1).
New Features
- Add
cupyx.signal.pulse_compression
from cuSignal's non SciPy-compat API (#8039) - Add
cupyx.signal.convolve1d3o
from cuSignal's non SciPy-compat API (#8067) - add
cupyx.signal.{pulse_doppler, cfar_alpha}
(#8069) - Add
cupyx.signal.convolve1d2o
(#8113)
Enhancements
- Make
cupyx.signal.radartools
private (#8053) - Fix
csrmatrix.__pow__
to raise ValueError for non-int other (#8085)
Performance Improvements
- Speed up cupy environment duplicate detection (#8042)
Bug Fixes
- Fix
lfilter_zi
andsosfilt_zi
when any IIR coefficient is zero (#8036) - Fix
argmax/argmin
for large reduction axis (#8041) - Fix
cupyx.scipy.fft.{dst,dstn}
in type 2/3 (#8082) - Do not use
from-import
(#8114)
Code Fixes
Documentation
- Generate signature for ufunc documentation (#8044)
- Use modern dlpack interface in torch interoperability document (#8048)
Installation
Tests
- Bump stable branch to v13 (#8026)
- Remove some
signal.vectorstrength
xfail tests (#8083) - Fix
scipy.linalg
not to raise DeprecationWarning for zero-size inputs (#8086) scipy.special.{btdtr,btdtri}
are deprecated since SciPy (#8094)- Refactor radartools tests (#8099)
- Fix slow test (#8117)
👥 Contributors
@andfoy @asi1024 @emcastillo @hauntsaninja @kmaehashi @takagi
The CuPy Team would like to thank all those who contributed to this release!
v13.0.0rc1
This is the release note of v13.0.0rc1. See here for the complete list of solved issues and merged PRs.
This is a release candidate of the CuPy v13 series. Please start testing your workload with this release to prepare for the final v13 release. To install: pip install -U --pre cupy-cuda11x -f https://pip.cupy.dev/pre
. See the Upgrade Guide for the list of possible breaking changes in v13.
💬 Join the Matrix chat to talk with developers and users and ask quick questions!
🙌 Help us sustain the project by sponsoring CuPy!
✨ Highlights
NVIDIA cuTENSOR 2.0
NVIDIA cuTENSOR is a performant and flexible library for accelerating tensor linear algebra. CuPy v13 supports cuTENSOR 2.0, the latest major release of the library, achieving higher performance than cuTENSOR 1.x series.
NVIDIA RAPIDS cuSignal Integration
cuSignal is a library developed by the NVIDIA RAPIDS project that provides GPU-accelerated implementation of signal processing algorithms using CuPy as a backend. cuSignal includes scipy.signal
compatible APIs, so we share the same goals. After a discussion with the cuSignal team, we agreed to merge cuSignal into CuPy to provide users with a better experience using a unified library for SciPy routines on GPU.
Currently, most of the functions provided in cuSignal have been merged into CuPy, and the remaining items are expected to be merged into CuPy v13 in due course.
We would like to acknowledge and thank @awthomp and everyone involved in the cuSignal development for creating a great library and agreeing to this transition.
Distributed NDArray (experimental) (#7881)
Added initial support for sharding ndarray
s across multiple GPU devices connected to the same host.
from cupyx.distributed.array import distributed_array
shape = (16, 16)
cpu_array = numpy.random.rand(*shape)
# Set the chunk indexes for each device
# device 0 holds rows 0..8 and device 1 holds rows 8..16
mapping = {
0: [(slice(8), slice(None, None))],
1: [(slice(8, None), slice(None, None))],
}
# The array is allocated in devices 0 and 1
multi_gpu_array = distributed_array(cpu_array, mapping)
This work was done by @shino16 during the Preferred Networks 2023 summer internship.
Support for Python 3.12
Binary packages are now available for Python 3.12.
🛠️ Changes without compatibility
CUDA Runtime API is now statically linked
CuPy is now shipped with CUDA Runtime statically linked. Due to this, cupy.cuda.runtime.runtimeGetVersion()
always returns the version of CUDA Runtime that CuPy is built with, regardless of the version of CUDA Runtime installed locally. If you need to retrieve the version of CUDA Runtime shared library installed locally, use cupy.cuda.get_local_runtime_version()
instead.
📝 Changes
New Features
- Port
lombscargle
from cuSignal tocupyx.scipy.signal
(#7563) - Port
periodogram
,welch
andcsd
from cuSignal tocupyx.signal
(#7564) - Port
cusignal
windows module tocupyx.scipy.signal
(#7568) - Add
cupy.lib.stride_tricks.sliding_window_view
(#7575) cupyx/scipy/signal
: add place poles (#7666)- Add
check_{NOLA, COLA}
tocupyx.scipy.signal
(#7675) - Port
argrel{extrema, max, min}
tocupyx.scipy.signal from cusignal
(#7694) - Port
waveforms
from cusignal tocupyx.scipy.signal
(#7696) - Port
wavelets
module from cusignal tocupyx.scipy.signal
(#7700) - Add 2D signal b-splines to
cupyx.scipy.signal
(#7721) - Port
firwin/firwin2
from cuSignal (#7722) - port
upfirdn
from cuSignal (#7749) - Support boolean COO sparse matrix (#7764)
- Port
gauss_spline
from cuSignal (#7837) - Port
stft/istft
from CuSignal tocupyx.scipy.signal
(#7838) - Port
vectorstrength
,coherence
andspectrogram
from CuSignal tocupyx.scipy.signal
(#7853) - Port
decimate
,resample
andresample_poly
from cuSignal tocupyx.scipy.signal
(#7855) - Add
max_len_seq
tocupyx.scipy.signal
(#7867) - Add distributed ndarray (#7942)
Enhancements
- Implement axis parameter on cupy.unique (#6886)
- Load cuTENSOR from wheel distribution (#7025)
- Soft link NVRTC for
cupy_backends.cuda.libs.nvrtc
(#7621) - Add a property to get access to the nccl handle. (#7823)
- Remove
cusolver_enabled
,cub_enabled
,thrust_enabled
flags (#7840) - Lazy import cuSOLVER (#7843)
- Lazy import cuSPARSE (#7847)
- Lazy import cuFFT (#7849)
- Static link to CUDA Runtime in CUB module (#7850)
- Bundle CCCL in CuPy (#7851)
- Lazy import cuRAND (#7856)
- Use NVRTC for compiling kernels calling
cupyx.jit.cub
APIs (#7869) - Add optional argument
device_id=-1
toget_current_stream
(#7885) - Prohibit conversion from Variable to Python scalar in fusion (#7887)
- Add
__slots__
tocupy.ndarray
(#7891) - Lazy import cuBLAS (#7921)
- Allow Jitify to only cache CuPy-owned headers (#7934)
- Ensure D2H copies are stream ordered and by default blocking (#7938)
- Accelerate H2D copies when the source is on pinned memory (#7939)
- Add Linux CI for Python 3.12 (#7940)
- MNT: Suppress CUB compilation warnings (#7943)
- Static link CUDA Runtime (#7954)
- Add debug feature to preloading and softlink (#7977)
- Support cuTensor 2.0 (#7984)
- Bump supported NumPy & SciPy versions (#7992)
- Softlink CUDA Driver (#7994)
- Show local runtime version in
cupy.show_config()
(#7995) - Avoid using
numpy.find_common_type
(#7651) - ENH: Remove
NINF
,PINF
,Inf
,... usages (#7800) - Fix
cupy.empty_like
parameter name toprototype
(#7827) - Make
stream
kwonly argument inndarray.__dlpack__
(#7829) - Remove conversions of array with ndim > 0 to a scalar (#7886)
scipy.linalg.{tri/tril/triu}
are deprecated in SciPy 1.11.0 (#7889)- Fix
signal.medfilt
complex error type for SciPy>=1.11 (#7890) - Fix
cupyx.scipy.sparse._base
tests for SciPy 1.11 (#7905) - Fix return type of division of csr_matrix and dense array for SciPy 1.11 (#7906)
- Fix
maxiter
inTestLOBPCG
(#7908)
Performance Improvements
- Optimize
spmatrix._set_many
(#7888)
Bug Fixes
- Fix csr2dense to avoid race conditions (#7724)
- Fix cuTENSOR contraction descriptor cache (#7814)
- Fix handling of scalars in cupy.r_ (#7815)
- Fix
cupy.r_
for scalar inputs (#7896) - Fixed Improper Method Call: Replaced
NotImplementedError
withNotImplemented
(#7900) - Provide .stop() method for cupyx.distributed._Backend (#7952)
- Fix
NVRTCError
not callinginitialize()
(#7955) - Import cupyx.lapack inside cupy.linalg.solve (#7966)
- Add lazy load for
cupyx.lapack
(#7993) - Fix issues with the initial state when a SOS filter has no IIR part (#7998)
- Avoid using
pkg_resources
for cuTENSOR wheel discovery (#8012)
Code Fixes
- MNT: suppress compiler warning from
cupyx.cusolver
(#7714) - Add type annotation in _creation.basic (#7739)
- Fix nvrtc initialize not inlined for CUDA Python (#7842)
- Fix coding style (#7844)
- Reorganize directory structure around CCCL (#7920)
- Remove deprecated ast expr in CuPy JIT (#7941)
- Reorganize third party code under
third_party
directory (#7956)
Documentation
- Add
-U
to pre-release installation command (#7803) - Fix
get_window
docstring reference (#7835) - Clarify sparse .transpose() return type in docstrings (#7868)
- DOC: cupyx/scipy: add missing names (#7898)
- Fix CUDA 12.2 for Windows notice (#7922)
- Bump CuPy version in install.rst (#8002)
- Update installation guide to note about cuTENSOR 2.0 support (#8003)
- Update wheels list in README (#8006)
Installation
- Avoid warning when uploading packages (#7792)
- Fix ROCm Dockerfile not working (#7797)
- Add cuSignal license (#7816)
- Improve symlink handling and preflight (#7945)
- Bump docker cuda version to 12 (#7973)
Tests
- Add timeout to Windows CI (#7775)
- Fix mypy not installed in pre-review test (#7832)
- Execution tests for typing tests passing rows in
typing_tests
(#7836) - CI: Remove path length limitation on Windows CI image (#7857)
- Fix Windows CI failures (#7862)
- Skip test_pos_boolarray if numpy>=1.25 (#7893)
- Add NumPy 1.25/1.26 & SciPy 1.11 to CI (#7897)
- Skip some LOBPCG tests failing with SciPy 1.11 (#7924)
- Support Python 3.12, add Windows CI (#7947)
- Skip logspace test in NumPy 1.25 & 1.26 (#7946) (#7948)
- Fix Windows test scripts (#7957)
- Skip
test_parameterize_pytest_impl
test for pytest 7.4.3 (#7965) - Fix
TestLOBPCG.test_maxit_None
CUDA 12.2 CI failure (#8000)
Others
- Fix publish workflow permission and output for review (#7788)
- Fix backport workflow (#7831)
- Avoid triggering Project Updates for updates from assignees (#7861)
- Bump version to v13.0.0rc1 (#8015)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@anaruse @andfoy @asi1024 @emcastillo @ev-br @fazledyn-or @kerry-vorticity @kmaehashi @leofang @loganbvh @milesvant @mtsokol @mvnvidia @negin513 @shino16 @takagi
v12.3.0
This is the release note of v12.3.0. See here for the complete list of solved issues and merged PRs.
This is the last planned release for the CuPy v12 series. Please start testing your workload with the v13 release candidate to get ready for the final v13 release. To install: pip install -U --pre cupy-cuda11x -f https://pip.cupy.dev/pre
. See the Upgrade Guide for the list of possible breaking changes in v13.
💬 Join the Matrix chat to talk with developers and users and ask quick questions!
🙌 Help us sustain the project by sponsoring CuPy!
✨ Highlights
Support for Python 3.12
Binary packages are now available for Python 3.12.
📝 Changes
Enhancements
- Add a property to get access to the nccl handle. (#7824)
- Add Linux CI for Python 3.12 (#7949)
- Bump supported NumPy & SciPy versions (#8001)
- ENH: Remove
NINF
,PINF
,Inf
,... usages (#7805) - Avoid using
numpy.find_common_type
(#7810) - Remove conversions of array with ndim > 0 to a scalar (#7895)
scipy.linalg.{tri/tril/triu}
are deprecated in SciPy 1.11.0 (#7902)- Fix
signal.medfilt
complex error type for SciPy>=1.11 (#7909) - Fix return type of division of csr_matrix and dense array for SciPy 1.11 (#7912)
- Skip
TestSpmatrix
on SciPy 1.11 or later (#7918) - Fix test of
product
,cumproduct
,alltrue
andsometrue
for deprecation (#7936) - Skip fusion
round_
tests (#7937)
Bug Fixes
- Fix csr2dense to avoid race conditions (#7808)
- Fix cuTENSOR contraction descriptor cache (#7817)
- Provide .stop() method for cupyx.distributed._Backend (#7960)
Code Fixes
- MNT: suppress compiler warning from
cupyx.cusolver
(#7819) - Fix coding style (#7846)
- Remove deprecated ast expr in CuPy JIT (#7944)
- Remove unnecessary CUB files from CuPy distribution (#7975)
Documentation
Installation
Tests
- Add timeout to Windows CI (#7859)
- CI: Remove path length limitation on Windows CI image (#7860)
- Fix Windows CI failures (#7865)
- Fix Windows CUDA 12.2 CI (#7910)
- Skip test_pos_boolarray if numpy>=1.25 (#7913)
- Skip some LOBPCG tests failing with SciPy 1.11 (#7931)
- Add NumPy 1.25/1.26 & SciPy 1.11 to CI (#7932)
- Skip logspace test in NumPy 1.25 & 1.26 (#7946) (#7951)
- Support Python 3.12, add Windows CI (#7958)
- Fix Windows test scripts (#7961)
- Skip
test_parameterize_pytest_impl
test for pytest 7.4.3 (#7968) - Filter DeprecationWarning for distutils.dep_util used in Cython (#7999)
- Fix
TestLOBPCG.test_maxit_None
CUDA 12.2 CI failure (#8007)
Others
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
v13.0.0b1
This is the release note of v13.0.0b1. See here for the complete list of solved issues and merged PRs.
We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
✨ Highlights
Improved Coverage of cupyx.scipy.signal
and cupyx.scipy.interpolate
APIs (#7507, #7537, #7543 and others)
More than 20 new APIs are now included in cupyx.scipy.signal
.
Acknowledgments: This work was done by Edgar Andrés Margffoy Tuay (@andfoy) and Evgeni Burovski (@ev-br) under the support of the Chan Zuckerberg Initiative's Essential Open Source Software for Science program.
Support for CUDA 12.2
CuPy now supports CUDA 12.2. Note that there is a known issue on CUDA 12.2 for Windows. See #7776 for details.
Removal of cupy-wheel
Package
Due to the recent specification change in Pip 23.1, it became difficult for cupy-wheel
to ensure detecting the CUDA version installed correctly. As discussed in RFC #7628, we have decided to remove this package in CuPy v13. To allow existing projects using cupy-wheel
to continue to work, the package remains available for v12 releases.
Support us via GitHub Sponsors!
As a part of our effort to make CuPy sustainable, we have enrolled in GitHub Sponsors to accept donations. Help us to support CuPy’s development and contribute to ease the required infrastructure costs due to the need of GPU enabled CI platforms and resources to build binary packages.
As a NumFOCUS Sponsored Project, funds sponsored through the GitHub Sponsors are collected and disbursed via NumFOCUS, a 501(c)(3) public charity in the United States, which acts as the fiscal sponsor for the project.
🛠️ Changes without compatibility
- Support for the following platforms are removed in CuPy v13. (#7647)
- CUDA 10.2, 11.0, and 11.1
- Python 3.8
- NumPy 1.21
- cuTENSOR 1.5 or earlier
- NCCL 2.15 or earlier
- cuDNN 8.7 or earlier
- Ubuntu 18.04
- APIs deprecated in NumPy 1.25 (
product
,cumproduct
,alltrue
, andsometrue
) now emitsDeprecationWarning
in CuPy as well. (#7645) cupy.cuda.compile_with_cache
, which is a private API and has been marked deprecated since CuPy v10, has been removed. Please useRawKernel
orRawModule
instead. (#5297, #7734)
📝 Changes
New Features
- Add
cupyx.scipy.ndimage.value_indices
(#7410) - Add Euclidean distance transform (
scipy.ndimage.distance_transform_edt
) (#7413) - Add
cupy.scipy.linalg.bandwidth
functionality (#7507) - cupyx.scipy.signal: add
firls
andfreqz
,freqz_zpk
,sosfreqz
(#7537) - cupyx.scipy.signal: add CZT and ZoomFFT (#7543)
- Add
sosfilt_zi
tocupyx.scipy.signal
(#7552) - filter design "prototypes" (#7553)
- Add
sosfiltfilt
tocupyx.scipy.signal
(#7558) - Add
iirfilter
and related filter design functions (#7591) - cupyx.scipy.signal: add
hilbert
andhilbert2
(#7607) - cupyx/scipy.signal: port
*ord
filter design functions fromscipy.signal
(#7632) - Add
gammatone
,group_delay
tocupyx.scipy.signal
(#7633) - Add
iir{notch,comb,peak}
design functions (#7634) - Add
kaiser{ord,_beta,_atten}
functions (#7635) - cupyx/scipy/signal: add
abcd_normalize
(#7637) - Add
cupyx.scipy.signal.minimum_phase
(#7638) - Add
find_peaks
,peak_prominences
,peak_widths
tocupyx.scipy.signal
(#7640) - Add
cupyx.signal.{freqs, freqs_zpk, findfreqs}
(#7641) - cupyx/scipy/signal: add
unique_roots
,invres{z}
,residue{z}
(#7644) - cupyx/scipy/signal: add missing LTI format conversions (#7652)
- Implement
scipy.linalg.khatri_rao
(#7659) - Add
LTI
class hierarchy andlti/dlti
related functions (#7660) - cupyx/scipy/signal: add
correlation_lags
(#7707) - Add 1D signal b-splines to
cupyx.scipy.signal
(#7715) - Add the matrix exponential
expm
(#7744)
Enhancements
- Let the user specify a starting vector for
eigsh
(#7487) cupy.kron
can accept numeric arguments, replicating numpy.kron behavior (#7608)- Deprecate support for out-dated platforms in CuPy v13 (#7647)
- Add mixed precision (FP16) support for ROCm (#7663)
- Minor updates for cuQuantum/cuTensorNet support (#7723)
- Bump mypy version to 1.4.1 (#7735)
- Support CUDA 12.2 (#7748)
- Avoid overflow warnings in test_astype_strides (#7622)
- Deprecate
cupy.round_
(#7623) - Deprecate
product
,cumproduct
,alltrue
andsometrue
(#7645)
Bug Fixes
- Fix returned CUDA statuses not being checked (#7613)
- Fix memory pool to try resolve fragmentation when limit is set (#7679)
- Fix cuSPARSE error message (#7680)
- Fix type/exception annotations in cuSPARSE binding (#7692)
- Update pylibcugraph weakly connected components call (#7693)
- Fix
aweights
type not checked incupy.cov
(#7701) - Temporarily disable CUB histogram (#7708)
- Improve detection for package installation source on Windows (#7709)
- Revert FP16 headers from CUDA 12.2.0 to CUDA 12.1.1 (#7758)
Code Fixes
- Introduce
cython-lint
(#7508) - Remove
cupy.cuda.compile_with_cache
(#7734) - Cosmetic changes of cupy/typing (#7738)
- MAINT: centralize
np.roots
calls (#7740)
Documentation
- Improve README and Installation Guide (#7580)
- update badges (#7863)
- Fix small typos in docstrings (#7655)
- Fix docstring of
asarray
(#7668) - Remove incorrect
cupyx.distributed.NCCLBackend.all_gather
comment (#7746) - Add CUDA 12.2 to list of supported CUDA (#7753)
- Fix Note highlight sections in README (#7767)
- Note device sync on some cupyx.scipy.signal API documents (#7771)
- Add notes for CUDA 12.2 on Windows support (#7777)
Installation
Tests
- Bump versions of static checkers (#7595)
- Fix build-cuda test
restore-keys
not working (#7610) - Fix
hilbert
andhilbert2
test condition (#7619) - Change test pass condition for TestChoiceChi::test_goodness_of_fit (#7626)
- cupyx/signal: skip tests against older SciPy versions, adjust test tolerances (#7627)
- Fix
test_fht
not to feedcupy.ndarray
toscipy.fft.fhtoffset
(#7643) - Ignore
pkg_resources
deprecation warning on import (#7653) - Skip
TestLOBPCG::test_maxit_None
in CUDA 12.1.1 & cuSOVLER 11.4.5 (#7669) - Bump CUDA minor versions used in CI (#7682)
- XFAIL known test failures in cuSPARSE module (#7688)
- Allow specifying Docker repository for CI images (#7689)
- Use "/test" tag configuration from pull-request base branch (#7705)
- CI: remove explicit Cython installation (#7729)
- Fix
test_sum_duplicates_incompatibility
for SciPy 1.11 (#7763)
Others
- Fix command in issue template for Windows (#7601)
- Fix flake8-cython not working (#7602)
- Add workflow to automatically updating Pull-Request dashboard project (#7631)
- Dump event payload for debugging (#7646)
- Pass pull-request number via artifact (#7648)
- Use GitHub App to update org-wide project (#7649)
- Do not trigger on closed pull-requests and fix to work with
issue_comment
trigger (#7650) - Fix project automation to skip when pull-request is already closed (#7658)
- Add env var to disable
RPATH
(#7691) - Fix project update workflow (#7710)
- Fix
github-token
used in workflow (#7712) - Bump version to v13.0.0b1 (#7754)
- Add workflow to publish to PyPI (#7779)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@12rambau @andfoy @asi1024 @ev-br @grlee77 @jglaser @jmbr @jnke2016 @kmaehashi @KyanCheung @leofang @pelmers @pnunna93 @pri1311 @RandomY-2 @sametz @takagi
v12.2.0
This is the release note of v12.2.0. See here for the complete list of solved issues and merged PRs.
We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
✨ Highlights
Support for CUDA 12.2
CuPy now supports CUDA 12.2. Note that there is a known issue on CUDA 12.2 for Windows. See #7776 for details.
Support us via GitHub Sponsors!
As a part of our effort to make CuPy sustainable, we have enrolled in GitHub Sponsors to accept donations. Help us to support CuPy’s development and contribute to ease the required infrastructure costs due to the need of GPU enabled CI platforms and resources to build binary packages.
As a NumFOCUS Sponsored Project, funds sponsored through the GitHub Sponsors are collected and disbursed via NumFOCUS, a 501(c)(3) public charity in the United States, which acts as the fiscal sponsor for the project.
🛠️ Changes without compatibility
Deprecation of cupy-wheel
Package
Due to the recent specification change in Pip 23.1, it became difficult for cupy-wheel
to ensure detecting the CUDA version installed correctly. As discussed in RFC #7628, we have decided to remove this package in CuPy v13. To allow existing projects using cupy-wheel
to continue to work, the package remains available for v12 releases.
📝 Changes
Enhancements
- Minor updates for cuQuantum/cuTensorNet support (#7730)
- Bump mypy version to 1.4.1 (#7736)
- Support CUDA 12.2 (#7752)
Performance Improvements
- Fix random module performance regression (#7592)
Bug Fixes
- Fix returned CUDA statuses not being checked (#7618)
- Fix cuSPARSE error message (#7684)
- Fix memory pool to try resolve fragmentation when limit is set (#7685)
- Fix type/exception annotations in cuSPARSE binding (#7703)
- Update pylibcugraph weakly connected components call (#7704)
- Improve detection for package installation source on Windows (#7711)
- Temporarily disable CUB histogram (#7716)
- Fix
aweights
type not checked incupy.cov
(#7717) - Revert FP16 headers from CUDA 12.2.0 to CUDA 12.1.1 (#7773)
Code Fixes
- Introduce
cython-lint
(#7612)
Documentation
- Improve README and Installation Guide (#7599)
- update badges (#7600)
- Fix small typos in docstrings (#7657)
- Fix docstring of
asarray
(#7695) - Add CUDA 12.2 to list of supported CUDA (#7756)
- Remove incorrect
cupyx.distributed.NCCLBackend.all_gather
comment (#7765) - Fix Note highlight sections in README (#7770)
- Add notes for CUDA 12.2 on Windows support (#7778)
Installation
- Fix
cupy-wheel
package installation fails with pip 23.1 (#7624)
Tests
- Bump versions of static checkers (#7598)
- Fix build-cuda test
restore-keys
not working (#7614) - [v12] Require numpy<1.25 for
round_
tests (#7642) - Ignore
pkg_resources
deprecation warning on import (#7656) - Skip
TestLOBPCG::test_maxit_None
in CUDA 12.1.1 & cuSOVLER 11.4.5 (#7670) - Bump CUDA minor versions used in CI (#7683)
- [v12] Allow specifying Docker repository for CI images (#7690)
- Use "/test" tag configuration from pull-request base branch (#7706)
- XFAIL known test failures in cuSPARSE module (#7725)
- Fix
test_fht
not to feedcupy.ndarray
toscipy.fft.fhtoffset
(#7728) - CI: remove explicit Cython installation (#7731)
- Fix test_sum_duplicates_incompatibility for SciPy 1.11 (#7768)
Others
- Fix flake8-cython not working (#7606)
- Add env var to disable RPATH (#7718)
- Bump version to v12.2.0 (#7755)
👥 Contributors
The CuPy Team would like to thank all those who contributed to this release!
@12rambau @asi1024 @emcastillo @jnke2016 @kmaehashi @leofang @pelmers @pri1311 @RandomY-2 @takagi
v12.1.0.post1
This is a hot-fix release for v12.1.0 to address an issue reported in #7593 that pip install cupy-wheel
raises an error with Pip v23.1 or later. See here for the complete list of solved issues and merged PRs.
This fix only applies to the cupy-wheel
meta package. As there are no differences in CuPy functionalities with v12.1.0, no releases are made for CuPy's source/binary packages.
We are also considering removing cupy-wheel
meta package in CuPy v13. Join the discussion in #7628 if you have any suggestions or comments.
v13.0.0a1
This is the release note of v13.0.0a1. See here for the complete list of solved issues and merged PRs.
We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
Highlights
CuPy v13 Roadmap and Revised Release Schedule
- We have published a list of feature roadmaps for CuPy v13 planned to be released in October 2023. See #7555 for the details.
- Starting in the CuPy v13 development cycle, we have adjusted our release frequency to once every two months. Mid-term or hot-fix releases may be provided depending on necessity, such as for new CUDA/Python version support or critical bug fixes. This new policy also applies to v12 releases.
- RFC: We plan to drop CUDA 10.2/11.0/11.1 support in CuPy v13. Please leave a comment on #7557 if you have any suggestions.
- RFC: We are thinking of improving PyTorch interoperability features in CuPy. If you are interested, please join the discussion in #7556.
Improved Coverage of cupyx.scipy.signal
and cupyx.scipy.interpolate
APIs (#7442, #7496 and others)
lfilter
, lfilter_zi
, filtfilt
, sosfilt
APIs are now included in cupyx.scipy.signal
, and NdPPoly
in cupyx.scipy.interpolate
modules.
Acknowledgements: This work was done by Edgar Andrés Margffoy Tuay (@andfoy) and Evgeni Burovski (@ev-br) under the support of the Chan Zuckerberg Initiative's Essential Open Source Software for Science program.
Random number generator performance improved (#7517)
Sampling using cupy.random.Generator.*
methods were slower than the cupy.random.*
function calls using the old random API. Now the regression is solved, and performance has increased more than 4X when using the cupy.random.Generator
API.
Changes without compatibility
Drop support for Python 3.8
Getting aligned with NumPy NEP29, Python 3.8 is no longer supported since CuPy v13.
Changes
New Features
- Add
NdPPoly
tocupyx.scipy.interpolate
(#7357) - Implement
delete function
, add documentation (#7359) - add array_api.take function (#7432)
- Add lfilter/IIR utilities to cupyx.scipy.signal (#7442)
- Added
scipy.special.binom
functionality to CuPy (#7463) cupyx/scipy/signal
: add savgol_coeffs and savgol_filter (#7469)- Add
scipy.special.zetac
to cupyx (#7470) - add
cupyx.scipy.special.exprel
(#7474) - Add
lfiltic and lfilter_zi
tocupyx.scipy.signal
(#7477) - Add
filtfilt
tocupyx.scipy.signal
(#7496) - Add
deconvolve
tocupyx.scipy.signal
(#7509) - Add
symiirorder1
tocupyx.scipy.signal
(#7511) - Add
symiirorder2
tocupyx.scipy.signal
(#7518) - Add
scipy.special.spherical_yn
(#7520) - Add
sosfilt
to cupyx.scipy.signal (#7528) - ENH:
scipy.signal
: add detrend (#7536) cupyx.scipy.signal
: addbilinear
&bilinear_zpk
(#7541)
Enhancements
- Support SciPy 1.10 (#7367)
- ROCm5.3.0 rocPrim C 14 extension requirement. (#7412)
- Support cuDNN 8.8 (#7472)
- Support CUDA 12.1 (#7473)
- Support NumPy 1.24:
dtype
andcasting
keyword arguments forhstack
,vstack
,stack
(#7490) - Replace
concatenate
by slice manipulation inlfilter
(#7522) - Support NumPy 1.24: Adding
strict
option totesting.assert_array_equal
(#7481)
Performance Improvements
Bug Fixes
- Fix new strides when array is both C and F-contiguous (#7438)
- Fixup array/asarray call to prefer C order on plain NumPy arrays (#7457)
- Fix cudart errors raised by texture APIs swallowed by Cython (#7540)
- Dispatch ufunc methods (#7572)
Code Fixes
Documentation
- Add comparison table for
scipy.interpolate
module (#7433) - Update list of supported libraries (#7478)
- Update aarch64 install insturctions (#7500)
- Fix RTD build failure (#7547)
Installation
- Bump version to v13.0.0a1 (#7494)
- Use
-Xfatbin=-compress-all
(#7497) - Fix
_depends.json
not included in wheel (#7578)
Tests
- Remove unused test decorators (#7453)
- Remove xfail for invh (#7476)
- Bump platform versions used in actions (#7488)
- Fix TestBSpline::test_design_matrix_same_as_BSpline_call (#7521)
- Mark scipy required in a test (#7523)
- Require newer SciPy in a test (#7524)
- Import SciPy in tests (#7531)
- Restore GitHub Actions cache with prefix match (#7546)
- Try to fix nan value mismatches in filtfilt tests (#7567)
- Fix CUDA Python CI failure (#7574)
Others
Contributors
The CuPy Team would like to thank all those who contributed to this release!
@AdrianAbeyta @Anas20001 @andfoy @arogozhnikov @asi1024 @chettub @emcastillo @ev-br @kmaehashi @KyanCheung @leofang @pri1311 @Raghav323 @seberg @takagi @tysonwu