pypi cupy 12.0.0rc1
v12.0.0rc1

latest releases: 14.2.0, 14.1.1, 14.1.0...
3 years ago

This is the release note of v12.0.0rc1. See here for the complete list of solved issues and merged PRs.

This is a release candidate of the CuPy v12 series. Please start testing your workload with this release to prepare for the final v12 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 v12.

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.interpolate

The following interpolators have been implemented: BPoly, Akima1DInterpolator, PchipInterpolator.

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.

DLPack v0.8 Support

CuPy is now compatible with DLPack v0.8 to allow importing/exporting bool arrays.

Fixed Performance Issue with CUDA 12.0

This release fixes a critical performance regression in CUDA 12.0 that the on-disk kernel cache is ineffective, causing kernels to be recompiled for each python process. Users with CUDA 12.0 are strongly suggested to upgrade to this release.

Changes without compatibility

Change cupy.cuda.Device Behavior (#7427)

The CUDA current device (set via cupy.cuda.Device.use() or underlying CUDA API cudaSetDevice()) will now be reactivated when exiting a cupy.cuda.Device context manager. This reverts the change introduced in CuPy v10, making the behavior identical to the one in CuPy v9 or earlier. Please refer to the Upgrade Guide for the background of this decision.

Requirement Changes (#7405)

As per NEP 29, CuPy v12 drops support for Python 3.7 and NumPy 1.20. Support for SciPy 1.6 has been dropped as well.

Remove Texture Reference APIs (#7308)

Texture reference features (RawModule.get_texref() and TextureReference), which were marked deprecated in CUDA 10.1 and removed in CUDA 12.0, have been removed from CuPy.

Changes

New Features

  • Initial experimental & private cupyx.distributed._array implementation (#7040)
  • Add PchipInterpolator to cupyx.scipy.interpolate (#7255)
  • Add Akima1DInterpolator to cupyx.scipy.interpolate (#7260)
  • Add cached_code to ElementwiseKernel and ReductionKernel (#7265)
  • Enable spline methods on RegularGridInterpolator (#7334)
  • Add BPoly to cupyx.scipy.interpolate module (#7343)

Enhancements

  • Use NumPy 1.24 in CI and bump baseline API (#7248)
  • Use warp size from runtime.getDeviceProperties (#7302)
  • Update DLPack to v0.8 to support bool arrays (#7307)
  • Remove texture reference completely (#7308)
  • Work around a potential OOM error raised by CUB histogram (#7316)
  • Mark cupy.cuda.profiler.initialize deprecated as it is removed in CUDA 12 (#7377)
  • Drop support for Python 3.7, NumPy 1.20, and SciPy 1.6 (#7405)
  • Raise RuntimeError if pylibraft is unavailable (#7411)
  • Revert cupy.cuda.Device behavior to v9 (#7427)
  • Fix ndarray.fill to raise ComplexWarning (#7393)
  • Fix arange() to raise TypeError in boolean case (#7394)

Performance Improvements

  • Change implementation of fftshift and ifftshift (#7399)

Bug Fixes

  • Fix kernel cache not working in CUDA 12.0 (#7345)
  • Imporves stability of orthogonization step in cupyx.scipy.sparse.eigsh (#7356)
  • Do not test NumPy version for private APIs (#7368)

Code Fixes

  • Small fixes and refactor of casting related things (#7322)

Documentation

  • Doc: fix wrong time unit (#7312)
  • Doc: add docs for contiguity policy (#7344)
  • Doc: downgrade pydata-sphinx-theme to v0.11.0 (#7375)
  • Fix typo in docstring (#7402)
  • DOC: cupyx.interpolate: document limitations on ROCm (#7419)
  • Add upgrade guide for v12 (#7430)

Installation

  • Add CUPY_INCLUDE_PATH and CUPY_LIBRARY_PATH env vars (#7305)
  • Bump docker image to CUDA 11.8.0 (#7429)
  • Bump version to v12.0.0rc1 (#7434)

Tests

  • CI: tentatively use SciPy 1.9 in Windows (#7326)
  • CI: Add optuna 3.0 (#7333)
  • Avoid int8 overflow warning in TestRoundHalfway (#7338)
  • Avoid int8 overflow in some tests (#7339)
  • Fix int8 overflow in vectorize tests (#7340)
  • Avoid casting nan value to integer type in nanargmin/max tests (#7341)
  • Add CI for CUDA 12.0 on Windows (#7349)
  • Remove invalid pytest markers and turn on strict mode (#7350)
  • Drop support for Optuna v2 (#7363)
  • Filter SQLAlchemy 2.0 warnings raised from Optuna v2 (#7364)
  • Fix pre-commit configuration error (#7369)
  • Avoid int8 overflow in core test (#7387)
  • Fix sumprod test to avoid uint overflow (#7395)
  • Avoid fillvalue overflow in cupyx.scipy.signal test (#7397)

Contributors

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

Contributors:
@andfoy @asi1024 @emcastillo @ev-br @kmaehashi @leofang @Nordicus @Raghav323 @RisaKirisu @seberg @wstolp

Don't miss a new cupy release

NewReleases is sending notifications on new releases.