Skip to content

Releases: cupy/cupy

v13.4.0

28 Feb 06:41
fca48bc
Compare
Choose a tag to compare

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 with cupy.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 of platform.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's cdist 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 of CUPY_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 in TestCopytoFromScalar 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 with ruff (#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 to exec (#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

v13.3.0

22 Aug 07:42
118ade4
Compare
Choose a tag to compare

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 the nvcc.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 from importlib_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 and asfarray 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

13 Jun 05:29
b127fb1
Compare
Choose a tag to compare

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

  • Update fft.rst (#8310)
  • Find and fix typos with codespell (#8344)
  • Add NumPy 2.0 on document (#8371)

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

19 Apr 07:40
4c9821b
Compare
Choose a tag to compare

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_ and numpy.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

18 Jan 05:54
1bdaf31
Compare
Choose a tag to compare

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 and sosfilt_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

  • Refactor convolve1d3o (#8100)
  • Refactor radartools (#8106)

Documentation

  • Generate signature for ufunc documentation (#8044)
  • Use modern dlpack interface in torch interoperability document (#8048)

Installation

  • Skip CUDA_PATH warning in Conda installation (#8076)
  • Bump version to v13.0.0 (#8119)

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

07 Dec 07:58
4c06bf7
Compare
Choose a tag to compare
v13.0.0rc1 Pre-release
Pre-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!

✨ 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 ndarrays 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 to cupyx.scipy.signal (#7563)
  • Port periodogram, welch and csd from cuSignal to cupyx.signal (#7564)
  • Port cusignal windows module to cupyx.scipy.signal (#7568)
  • Add cupy.lib.stride_tricks.sliding_window_view (#7575)
  • cupyx/scipy/signal: add place poles (#7666)
  • Add check_{NOLA, COLA} to cupyx.scipy.signal (#7675)
  • Port argrel{extrema, max, min} to cupyx.scipy.signal from cusignal (#7694)
  • Port waveforms from cusignal to cupyx.scipy.signal (#7696)
  • Port wavelets module from cusignal to cupyx.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 to cupyx.scipy.signal (#7838)
  • Port vectorstrength, coherence and spectrogram from CuSignal to cupyx.scipy.signal (#7853)
  • Port decimate, resample and resample_poly from cuSignal to cupyx.scipy.signal (#7855)
  • Add max_len_seq to cupyx.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 to get_current_stream (#7885)
  • Prohibit conversion from Variable to Python scalar in fusion (#7887)
  • Add __slots__ to cupy.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 to prototype (#7827)
  • Make stream kwonly argument in ndarray.__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 in TestLOBPCG (#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 with NotImplemented (#7900)
  • Provide .stop() method for cupyx.distributed._Backend (#7952)
  • Fix NVRTCError not calling initialize() (#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

07 Dec 07:57
fc5c421
Compare
Choose a tag to compare

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 and sometrue 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

  • Add -U to pre-release installation command (#7806)
  • Fix CUDA 12.2 for Windows notice (#7926)

Installation

  • Fix ROCm Dockerfile not working (#7799)
  • Avoid warning when uploading packages (#7807)

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

  • Fix backport workflow (#7833)
  • Bump version to v12.3.0 (#8016)

👥 Contributors

The CuPy Team would like to thank all those who contributed to this release!

@asi1024 @emcastillo @kmaehashi @leofang @mtsokol @mvnvidia

v13.0.0b1

08 Aug 08:39
e296f22
Compare
Choose a tag to compare
v13.0.0b1 Pre-release
Pre-release

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, 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)

📝 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 and freqz, freqz_zpk, sosfreqz (#7537)
  • cupyx.scipy.signal: add CZT and ZoomFFT (#7543)
  • Add sosfilt_zi to cupyx.scipy.signal (#7552)
  • filter design "prototypes" (#7553)
  • Add sosfiltfilt to cupyx.scipy.signal (#7558)
  • Add iirfilter and related filter design functions (#7591)
  • cupyx.scipy.signal: add hilbert and hilbert2 (#7607)
  • cupyx/scipy.signal: port *ord filter design functions from scipy.signal (#7632)
  • Add gammatone, group_delay to cupyx.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 to cupyx.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 and lti/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 and sometrue (#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 in cupy.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 (#7594)
  • 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

  • Fix cupy-wheel package installation fails with pip 23.1+ (#7597)
  • Remove cupy-wheel package (#7745)

Tests

  • Bump versions of static checkers (#7595)
  • Fix build-cuda test restore-keys not working (#7610)
  • Fix hilbert and hilbert2 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 feed cupy.ndarray to scipy.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

08 Aug 08:41
46f6ed6
Compare
Choose a tag to compare

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 in cupy.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 feed cupy.ndarray to scipy.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

13 Jun 11:06
f2cbff8
Compare
Choose a tag to compare

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.