This is the release note of v11.0.0rc1. See [here](https://github.com/cupy/cupy/pulls?q=is%3Apr+is%3Aclosed+milestone%3Av11.0.0rc1) for the complete list of solved issues and merged PRs.
**We are going to release v11.0.0 on July 28th. Please start testing your workload with this release candidate (`pip install --pre cupy-cuda11x -f https://pip.cupy.dev/pre`). See the [Upgrade Guide](https://docs.cupy.dev/en/latest/upgrade.html#cupy-v11) for the list of possible breaking changes.**
We are running a [Gitter chat](https://gitter.im/cupy/community) for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
Highlights
Support CUDA 11.7 (6767)
Full support for CUDA 11.7 has been added as of this release. Binary packages can be installed with the following command: `pip install --pre cupy-cuda11x -f https://pip.cupy.dev/pre`
Unified Binary Package for CUDA 11.2 or later (6730)
CuPy v11 provides a unified binary package named `cupy-cuda11x` that supports all CUDA 11.2+ releases. This replaces per-CUDA version binary packages (`cupy-cuda112`, `cupy-cuda113`, …, `cupy-cuda117`) provided in CuPy v10 or earlier.
Note that CUDA 11.1 or earlier still requires per-CUDA version binary packages. `cupy-cuda102`, `cupy-cuda110`, and `cupy-cuda111` will be provided for CUDA 10.2, 11.0, and 11.1, respectively.
Binary Package for Arm Platform (6705)
CuPy v11 provides `cupy-cuda11x` binary package built for aarch64, which supports CUDA 11.2+ Arm SBSA and JetPack 5.
These wheels are available through our Pip index: `pip install --pre cupy-cuda11x -f https://pip.cupy.dev/aarch64`
Support for `ndarray` subclassing (6720, 6755)
This release allows users to subclass `cupy.ndarray`, using the same protocol as NumPy:
python
class C(cupy.ndarray):
def __new__(cls, *args, info=None, **kwargs):
obj = super().__new__(cls, *args, **kwargs)
obj.info = info
return obj
def __array_finalize__(self, obj):
if obj is None:
return
self.info = getattr(obj, 'info', None)
a = C([0, 1, 2, 3], info='information')
assert type(a) is C
assert issubclass(type(a), cupy.ndarray)
assert a.info == 'information'
Note that view casting and new from template mechanisms are also supported as described by the NumPy [documentation](https://numpy.org/doc/stable/user/basics.subclassing.html).
Add Collective Communication APIs in `cupyx.distributed` for Sparse Matrices
All the collective calls implemented for dense matrices now support sparse matrices. Users interested in this feature should install `mpi4py` in order to perform an efficient metadata exchange.
Google Summer of Code 2022
We would like to give a warm welcome to khushi-411 who will be working in adding support for the `cupyx.scipy.interpolate` APIs as part of her GSoC internship!
Changes without compatibility
Bump base Docker image to the latest supported one (6802)
CuPy official Docker images have been upgraded. Users relying on these images may suffer from compatibility issues with preinstalled tools or libraries.
Changes
New Features
- Add `cupy.setxor1d` (6582)
- Add initial `cupyx.spatial.distance` support from pylibraft (6690)
- Support `cupy.ndarray` subclassing - Part 2 - View casting (6720)
- Add sparse `broadcast` (6758)
- Add sparse `reduce` (6761)
- Add sparse `all_reduce` and minor fixes (6762)
- Add sparse `all_to_all`, `reduce_scatter`, `send_recv` (6765)
- Subclass `cupy.ndarray` subclassing - Part 3 - New from template (ufunc) (6775)
- Add `cupyx.scipy.special.log_ndtr` (6776)
- Add `cupyx.scipy.special.expn` (6790)
Enhancements
- Utilize CUDA Enhanced Compatibility (6730)
- Fix to return correct CUDA version when in CUDA Python mode (6736)
- Support CUDA 11.7 (6767)
- Make the warning for cupy.array_api say "cupy" instead of "numpy" (6791)
- Utilize CUDA Enhanced Compatibility in all wrappers (6799)
- Add support for `cupy-cuda11x` wheel (6800)
- Bump base Docker image to the latest supported one (6802)
- Remove `CUPY_CUDA_VERSION` as much as possible (6810)
- Raise UserWarning in `cupy.cuda.compile_with_cache` (6818)
- cupy-wheel: Use NVRTC to infer the toolkit version (6819)
- Support NumPy 1.23 (6820)
- Fix for NumPy 1.23 (6807)
Performance Improvements
- Improved integer matrix multiplication performance by modifying tuning parameters (6703)
- Use fast convolution algorithm in `cupy.poly1d.__pow__` (6770)
Bug Fixes
- Fix polynomial tests (6721)
- Fix batched matmul for integral numbers (6725)
- Fix `cupy.median` for NaN inputs (6759)
- Fix required cusparse symbol not loaded in CUDA 11.1.1 (6806)
Code Fixes
- Add type annotation in `_cuda_types.py` (6726)
- Subclass rename (6746)
- Add type annotation to JIT internal types (6778)
Documentation
- Add CUDA 11.7 on documents (6768)
- Improved NVTX documentation (6774)
- Fix docs to hide `ndarray_base` (6782)
- Update docs for `cupy-cuda11x` wheel (6803)
- Bump NumPy version used in docs (6824)
- Add upgrade guide for CuPy v11 (6826)
Tests
- Fix mempool tests (6591)
- CI: Fix prep script to show build failure details (6781)
- Fix a potential variable misuse bug (6786)
- Fix CI Docker image build failing in head test (6804)
- Tiny clean up in CI script (6809)
Others
- Fix docker workflow to push to latest image (6832)
Contributors
The CuPy Team would like to thank all those who contributed to this release!
andoorve asi1024 asmeurer cjnolet emcastillo khushi-411 kmaehashi leofang LostBenjamin pri1311 rietmann-nv takagi