This is the release note of v7.0.0rc1. See [here](https://github.com/cupy/cupy/milestone/60?closed=1) for the complete list of solved issues and merged PRs.
Announcements
This time, we will keep the current branches for active development (`master` for v7.x, `v6` for v6.x) after the RC. We will maintain v6.x series until Python2 EOL, so we do not cut the new development version for now to avoid increasing the number of branches to maintain. New features will be included directly into v7 for a while, and maintenance changes will be backported to v6.
Highlights
- Experimental support of AMD GPUs are added (1094). See [the installation guide](https://docs-cupy.chainer.org/en/latest/install_rocm.html) for how to install CuPy with AMD support. Note that this feature is still experimental, and we do not guarantee the API stability.
Changes without compatibility
- Avoid casting inputs to `cupy.ndarray` in `cupy.pad` (2504)
- From this release, `cupy.pad` does no longer convert the input to `cupy.ndarray` automatically. This is done under the design principle of not implicitly synchronizing the host and the device, which most of the other APIs are also following.
New Features
- Experimental support of AMD GPU via HIP (ROCm2.7.0+) (1094)
- Adds `nvcc` as a `RawKernel` backend (1941, thanks sjperkins and leofang!)
- Support cuTENSOR 0.2 (2341)
- Implement `isin` and `in1d` (2388, thanks UmashankarTriforce!)
- Support `scipy.ndimage` compatible `convolve` and `correlate` (2483)
- Added `cupy.cuda.memory.get_allocator` interface (2489)
- Handle PCI bus ID (2531, thanks jameshclrk!)
- Expand coverage of cuSolverSP APIs (2539)
- Add cuSPARSE routines for preconditioners (2542)
Enhancements
- Fix division by zero in mean/std/var functions for 0-length dimensions (2201, thanks pentschev!)
- Improve error message in `cupy.linalg.inv` (2342)
- Replace `cupy.pad` with a heavily refactored version from NumPy 1.17 (2399, thanks grlee77!)
- Fix `cupy.repeat` error message about `repeats` argument type (2400)
- Ignore warning caused by `fastrlock` (2488)
- Update `__cuda_array_interface__` to protocol version 2 (2491, thanks leofang!)
- Allow `axis=None` in concatenate (2496, thanks liwt31!)
- Fix `testing.numpy_cupy_` decorators for skips (2498)
- Avoid implicit cast inputs to `cupy.ndarray` in `cupy.pad` (2504)
- Cholesky decomposition to support complex values (2509)
- Enhance shuffle-test of `testing.for_dtypes_combination` (2511)
- Allow to use `real` and `imag` on CUDA kernels (2520)
- Support complex numbers in `cupy.linalg.qr()` (2526, thanks leofang!)
- Fix bug in CUB + Native support of complex numbers in CUB (2538, thanks leofang!)
- Support `cupyx.fallback_mode` as an experimental feature (2541)
- Support stream in CUB (2555, thanks leofang!)
Performance Improvements
- Performance improvement for `cupy.var` complex inputs (2484)
- Enable fast CUB-based reductions in more cases (`cupy.linalg.norm`, etc.) (2517, thanks grlee77!)
Code Fixes
- Remove unnecessary check of cuSOLVER (2529, thanks grlee77!)
Documentation
- Fix dead links in NumPy docs in random functions (2384)
- Update `install_rocm.rst` (2512)
- Fix some typo (2523, thanks garanews!)
Tests
- Fix memory pool disabled during tests (2452)
- Skip bool-bool inputs in `cupy.cross` test (2503)
- Fix error in `test_build.py` (2514, thanks leofang!)
- Move CI requirements to CuPy repository (2533)
- Fix for NumPy 1.14.x compatibility (2544)
- Workaround bug in NumPy 1.12.x or earlier (2545)