This is the release note of v9.0.0b2. See here for the complete list of solved issues and merged PRs.
Highlights
Support for NumPy 1.17 New Random API (#4177)
This release adds preliminary support for the new random API introduced in NumPy 1.17.
Since our implementation is based on cuRAND, we currently support the following BitGenerator objects: XORWOW, MRG32k3a, and Philox4x3210. Notice that they are different from NumPy ones. The new random module is currently in development and only a few distributions are supported in this first release (#4557). Please check the documentation for further reference.
AMD/HIP support improved
Several bugs have been corrected for AMD devices and added support for ROCm 3.9. Now almost all the CuPy core functionalities are checked to work with HIP/ROCm. However, there are still some issues that require support from AMD such as using arrays with a size larger than 2^32 elements in element-wise and reduction routines.
Gitter Community
We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!
Changes without compatibility
Removal of older pre-release packages from PyPI
As announced in #4360, we have removed pre-release wheels earlier than v6.0.0rc1 from PyPI. Those version wheels can be found at the GitHub release page of every version, and can be installed by specifying -f option:
pip install --pre cupy-cuda101 -f https://github.com/cupy/cupy/releases/v6.0.0rc1
Changes
New Features
- Add NumPy v1.17 new random API with
Generator(#4177) - Add
cufftXtMakePlanManyandcufftXtExec(#4407) - Support texture object in
cupy.ElementwiseKernel(#4433) - Add
cupyx.scipy.signal.oaconvolve(#4468) - Add
cupy.round(#4539)
Enhancements
- ndimage: implement higher order spline interpolation (#4402)
- ndimage: complex dtype support in filters and interpolation (#4444)
- Fix potential race when compiling cuFFT callbacks (#4508)
- Import DLPack header file & Fix multiple issues (#4517)
- Remove experimental warnings from cupyx.scipy.ndimage (#4518)
- Add complex support to
cupyx.scipy.signalfunctions (#4525) - Implement
__format__inndarray(#4544) - Fix DLPack header version (#4559)
- Support passing pointers as integers in memory copy routines (#4562)
- Fix sparse format of
kron(#4536) - Fix return type of
polynomial.__eq__(#4554) - ROCm: Improve compiler (#4102)
- ROCm: Cover more new BLAS/SOLVER functions (#4217)
- Fixes a bunch of AMD issues (#4485)
- Fix fusion tests for HIP (#4521)
- ROCm: skip multi-GPU FFT tests (#4553)
Performance Improvements
- Improve
cupy.argwhereandcupy.nonzero(#4367)
Bug Fixes
- Use
--device-cfor RDC compile (#4470) - Fix integer GEMM (#4512)
- Fix
axisofcupy.gradient(#4523) - Fix bug on bad interaction between
__cuda_array_interface__and__array_ufunc__on HIP (#4524) - Fix
cupy.concatenatetypecheck for out with different dtype (#4527) - Fix
cupy.takefrom an empty array (#4530) - Fix windows build of random module (#4543)
- ndimage: coordinate rounding fix for
order=0interpolation (#4552) - Fix return type of
polynomial.__eq__tonumpy.bool_(#4563) - Remove dependency on CUDA's math_constants.h (#4565)
- Fix
cupyx.scipy.ndimage.zoomfor outputs of size 1 (#4568) - Fix
cupy.arrayfrom nested list of zero-dimndarray(#4569) - Fix Windows build failure in new random API (#4574)
Code Fixes
Documentation
- Document
random.uniformmay return high (#4509)
Tests
- Test
FutureWarning(#4226) - Show type of error in
numpy_cupy_*decorators (#4403) - Update PyTest (#4507)
- Remove unnecessary
returnstatements (#4519) - Check if the
accept_errorwas not raised from test code (#4566)
Contributors
The CuPy Team would like to thank all those who contributed to this release!