NumPy & SciPy for GPU
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!
CuPy now supports CUDA 12.3 and 12.4. Binary packages are available for Linux (x86_64/aarch64) and Windows as cupy-cuda12x
.
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.
cupyx.signal.{complex_cepstrum,real_cepstrum,inverse_complex_cepstrum,minimum_phase}
(#8096)cupyx.signal.{firfilter,firfilter_zi,firfilter2}
(#8107)cupyx.signal.freq_shift
(#8131)cupyx.signal.channelize_poly
(#8148)cupyx.signal.ca_cfar
(#8167)numpy.float_
and numpy.complex_
(#8181)expm(complex matrix)
(#8214)scp.signal.{medfilt,medfilt2d}
to raise ValueError for complex64 inputs (#8084)boxcox_llf
for SciPy 1.12 changes (#8132)cupyx.scipy
wavelet functions (#8139)_nccl_comm.py
(#8112)-arch
in the compiler options unconditionally (#8161)cupy.show_config()
without CUDA (#8192)min
/max
initial values (#8266)cupyx.scipy.special.betainc
for invalid inputs (#8098)vectorstength
tests (#8145)cupy.show_config()
pass without CUDA installed (#8195)The CuPy Team would like to thank all those who contributed to this release!
@andfoy @asi1024 @emcastillo @ev-br @jemiryguo @kmaehashi @leofang @takagi
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!
For all changes in v13, please refer to the release notes of the pre-releases (alpha1, beta1, rc1).
cupyx.signal.pulse_compression
from cuSignal's non SciPy-compat API (#8039)cupyx.signal.convolve1d3o
from cuSignal's non SciPy-compat API (#8067)cupyx.signal.{pulse_doppler, cfar_alpha}
(#8069)cupyx.signal.convolve1d2o
(#8113)cupyx.signal.radartools
private (#8053)csrmatrix.__pow__
to raise ValueError for non-int other (#8085)lfilter_zi
and sosfilt_zi
when any IIR coefficient is zero (#8036)argmax/argmin
for large reduction axis (#8041)cupyx.scipy.fft.{dst,dstn}
in type 2/3 (#8082)from-import
(#8114)convolve1d3o
(#8100)radartools
(#8106)CUDA_PATH
warning in Conda installation (#8076)signal.vectorstrength
xfail tests (#8083)scipy.linalg
not to raise DeprecationWarning for zero-size inputs (#8086)scipy.special.{btdtr,btdtri}
are deprecated since SciPy (#8094)@andfoy @asi1024 @emcastillo @hauntsaninja @kmaehashi @takagi
The CuPy Team would like to thank all those who contributed to this release!
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!
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.
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.
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.
Binary packages are now available for Python 3.12.
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.
lombscargle
from cuSignal to cupyx.scipy.signal
(#7563)periodogram
, welch
and csd
from cuSignal to cupyx.signal
(#7564)cusignal
windows module to cupyx.scipy.signal
(#7568)cupy.lib.stride_tricks.sliding_window_view
(#7575)cupyx/scipy/signal
: add place poles (#7666)check_{NOLA, COLA}
to cupyx.scipy.signal
(#7675)argrel{extrema, max, min}
to cupyx.scipy.signal from cusignal
(#7694)waveforms
from cusignal to cupyx.scipy.signal
(#7696)wavelets
module from cusignal to cupyx.scipy.signal
(#7700)cupyx.scipy.signal
(#7721)firwin/firwin2
from cuSignal (#7722)upfirdn
from cuSignal (#7749)gauss_spline
from cuSignal (#7837)stft/istft
from CuSignal to cupyx.scipy.signal
(#7838)vectorstrength
, coherence
and spectrogram
from CuSignal to cupyx.scipy.signal
(#7853)decimate
, resample
and resample_poly
from cuSignal to cupyx.scipy.signal
(#7855)max_len_seq
to cupyx.scipy.signal
(#7867)cupy_backends.cuda.libs.nvrtc
(#7621)cusolver_enabled
, cub_enabled
, thrust_enabled
flags (#7840)cupyx.jit.cub
APIs (#7869)device_id=-1
to get_current_stream
(#7885)__slots__
to cupy.ndarray
(#7891)cupy.show_config()
(#7995)numpy.find_common_type
(#7651)NINF
, PINF
, Inf
,... usages (#7800)cupy.empty_like
parameter name to prototype
(#7827)stream
kwonly argument in ndarray.__dlpack__
(#7829)scipy.linalg.{tri/tril/triu}
are deprecated in SciPy 1.11.0 (#7889)signal.medfilt
complex error type for SciPy>=1.11 (#7890)cupyx.scipy.sparse._base
tests for SciPy 1.11 (#7905)maxiter
in TestLOBPCG
(#7908)spmatrix._set_many
(#7888)cupy.r_
for scalar inputs (#7896)NotImplementedError
with NotImplemented
(#7900)NVRTCError
not calling initialize()
(#7955)cupyx.lapack
(#7993)pkg_resources
for cuTENSOR wheel discovery (#8012)cupyx.cusolver
(#7714)third_party
directory (#7956)-U
to pre-release installation command (#7803)get_window
docstring reference (#7835)typing_tests
(#7836)test_parameterize_pytest_impl
test for pytest 7.4.3 (#7965)TestLOBPCG.test_maxit_None
CUDA 12.2 CI failure (#8000)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
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!
Binary packages are now available for Python 3.12.
NINF
, PINF
, Inf
,... usages (#7805)numpy.find_common_type
(#7810)scipy.linalg.{tri/tril/triu}
are deprecated in SciPy 1.11.0 (#7902)signal.medfilt
complex error type for SciPy>=1.11 (#7909)TestSpmatrix
on SciPy 1.11 or later (#7918)product
, cumproduct
, alltrue
and sometrue
for deprecation (#7936)round_
tests (#7937)cupyx.cusolver
(#7819)-U
to pre-release installation command (#7806)test_parameterize_pytest_impl
test for pytest 7.4.3 (#7968)TestLOBPCG.test_maxit_None
CUDA 12.2 CI failure (#8007)The CuPy Team would like to thank all those who contributed to this release!
@asi1024 @emcastillo @kmaehashi @leofang @mtsokol @mvnvidia
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!
CuPy now supports CUDA 12.2. Note that there is a known issue on CUDA 12.2 for Windows. See #7776 for details.
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.
cupy-wheel
PackageDue 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.
aweights
type not checked in cupy.cov
(#7717)cython-lint
(#7612)asarray
(#7695)cupyx.distributed.NCCLBackend.all_gather
comment (#7765)cupy-wheel
package installation fails with pip 23.1+ (#7624)restore-keys
not working (#7614)round_
tests (#7642)pkg_resources
deprecation warning on import (#7656)TestLOBPCG::test_maxit_None
in CUDA 12.1.1 & cuSOVLER 11.4.5 (#7670)test_fht
not to feed cupy.ndarray
to scipy.fft.fhtoffset
(#7728)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
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!
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.
CuPy now supports CUDA 12.2. Note that there is a known issue on CUDA 12.2 for Windows. See #7776 for details.
cupy-wheel
PackageDue 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.
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.
product
, cumproduct
, alltrue
, and sometrue
) now emits DeprecationWarning
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 use RawKernel
or RawModule
instead. (#5297, #7734)cupyx.scipy.ndimage.value_indices
(#7410)scipy.ndimage.distance_transform_edt
) (#7413)cupy.scipy.linalg.bandwidth
functionality (#7507)firls
and freqz
, freqz_zpk
, sosfreqz
(#7537)sosfilt_zi
to cupyx.scipy.signal
(#7552)sosfiltfilt
to cupyx.scipy.signal
(#7558)iirfilter
and related filter design functions (#7591)hilbert
and hilbert2
(#7607)*ord
filter design functions from scipy.signal
(#7632)gammatone
, group_delay
to cupyx.scipy.signal
(#7633)iir{notch,comb,peak}
design functions (#7634)kaiser{ord,_beta,_atten}
functions (#7635)abcd_normalize
(#7637)cupyx.scipy.signal.minimum_phase
(#7638)find_peaks
, peak_prominences
, peak_widths
to cupyx.scipy.signal
(#7640)cupyx.signal.{freqs, freqs_zpk, findfreqs}
(#7641)unique_roots
, invres{z}
, residue{z}
(#7644)scipy.linalg.khatri_rao
(#7659)LTI
class hierarchy and lti/dlti
related functions (#7660)correlation_lags
(#7707)cupyx.scipy.signal
(#7715)expm
(#7744)eigsh
(#7487)cupy.kron
can accept numeric arguments, replicating numpy.kron behavior (#7608)cupy.round_
(#7623)product
, cumproduct
, alltrue
and sometrue
(#7645)aweights
type not checked in cupy.cov
(#7701)cython-lint
(#7508)cupy.cuda.compile_with_cache
(#7734)np.roots
calls (#7740)asarray
(#7668)cupyx.distributed.NCCLBackend.all_gather
comment (#7746)cupy-wheel
package installation fails with pip 23.1+ (#7597)cupy-wheel
package (#7745)restore-keys
not working (#7610)hilbert
and hilbert2
test condition (#7619)test_fht
not to feed cupy.ndarray
to scipy.fft.fhtoffset
(#7643)pkg_resources
deprecation warning on import (#7653)TestLOBPCG::test_maxit_None
in CUDA 12.1.1 & cuSOVLER 11.4.5 (#7669)test_sum_duplicates_incompatibility
for SciPy 1.11 (#7763)issue_comment
trigger (#7650)RPATH
(#7691)github-token
used in workflow (#7712)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
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.
This is the release note of v12.1.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!
array_api.take
function (#7513)-Xfatbin=-compress-all
(#7505)_depends.json
not included in wheel (#7584)The CuPy Team would like to thank all those who contributed to this release!
@andfoy @arogozhnikov @asi1024 @kmaehashi @leofang @seberg @takagi
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!
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.
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.
Getting aligned with NumPy NEP29, Python 3.8 is no longer supported since CuPy v13.
NdPPoly
to cupyx.scipy.interpolate
(#7357)delete function
, add documentation (#7359)scipy.special.binom
functionality to CuPy (#7463)cupyx/scipy/signal
: add savgol_coeffs and savgol_filter (#7469)scipy.special.zetac
to cupyx (#7470)cupyx.scipy.special.exprel
(#7474)lfiltic and lfilter_zi
to cupyx.scipy.signal
(#7477)filtfilt
to cupyx.scipy.signal
(#7496)deconvolve
to cupyx.scipy.signal
(#7509)symiirorder1
to cupyx.scipy.signal
(#7511)symiirorder2
to cupyx.scipy.signal
(#7518)scipy.special.spherical_yn
(#7520)sosfilt
to cupyx.scipy.signal (#7528)scipy.signal
: add detrend (#7536)cupyx.scipy.signal
: add bilinear
& bilinear_zpk
(#7541)dtype
and casting
keyword arguments for hstack
, vstack
, stack
(#7490)concatenate
by slice manipulation in lfilter
(#7522)strict
option to testing.assert_array_equal
(#7481)symiirorder2
performance (#7526)type_test
to type_testing
(#7456)scipy.interpolate
module (#7433)-Xfatbin=-compress-all
(#7497)_depends.json
not included in wheel (#7578)master
to main
(#7448)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
This is the release note of v12.0.0. See here for the complete list of solved issues and merged PRs.
This release note only covers changes made since the v12.0.0rc1 release. Check out our blog for highlights of the v12 release!
We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
CuPy now supports CUDA 12.1 and cuDNN 8.8. Binary packages are available for Linux (x86_64/aarch64) and Windows as cupy-cuda12x
.
$ pip install cupy-cuda12x
Binary packages for aarch64 (Jetson and Arm servers) can now be installed from PyPI.
$ pip install cupy-cuda102
$ pip install cupy-cuda11x
$ pip install cupy-cuda12x
~Note: At the time of the release, Arm wheel of cupy-cuda11x
for Python 3.8 (cupy_cuda11x-12.0.0-cp38-cp38-manylinux2014_aarch64.whl
) is not available on PyPI. We are working on resolving this issue. Meanwhile, this wheel can be installed from the CuPy index. $ pip install cupy-cuda11x -f https://pip.cupy.dev/aarch64
~ This issue was resolved on 2023-04-03.
For all changes in v12, please refer to the release notes of the pre-releases (alpha1, alpha2, beta1, beta2, beta3, rc1).
type_test
to type_testing
(#7461)scipy.interpolate
module (#7450)xfail
for invh
(#7485)The CuPy Team would like to thank all those who contributed to this release!
@AdrianAbeyta @asi1024 @emcastillo @kmaehashi @seberg