This is the release note of v9.0.0b1. See here for the complete list of solved issues and merged PRs.
Changes without compatibility
Deprecations
As announced in #4300, CuPy v9 no longer supports the following out-dated components:
- Python 3.5
- CUDA 9.0 (
cupy-cuda90will not be released for v9) - cuDNN v7.5 (or earlier) and NCCL v2.3 (or earlier)
- NumPy 1.16 and SciPy 1.3
Removal of older pre-release packages from PyPI
As announced in #4360, we are going to remove pre-release wheels earlier than v6.0.0rc1 from PyPI on 2021-01-28. 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
- Adding
cupyx.scipy.signal.fftconvolve(#3828) - Add
cupyx.scipy.sparse.linalg.gmres(#4236) - Add
cupyx.scipy.sparse.linalg.interfacethat exposesLinearOperatorFeature (#4258) - Add
cupyx.scipy.sparse.csr_matrix.diagonalandcupyx.scipy.sparse.csr_matrix.setdiag(#4284) - Support CUB-backed
cupy.ReductionKerneland@cupy.fuse(#4289) - Add batched cholesky solver (#4291)
cupyx.ndimage.measurements: addcenter_of_mass,histogram,labeled_comprehension(#4311)- Add
cudaLaunchHostFunc(#4338) - Add
cupyx.scipy.sparse.linalg.spsolve_triangular(#4356) - Add
cupyx.scipy.ndimage.fourier_ellipsoid(#4361) - Add
cupyx.scipy.stats.entropy(#4369) - Add
cupy.quantile(#4370) - Add
cupyx.scipy.sparse.linalg.spsolve(#4375) - Add
tril,triuandfindtocupyx.scipy.sparse(#4382) - Add
cupy.interp(#4418) - Add support for
LinearOperatortocgandgmresincupyx.scipy.sparse.linalg(#4422)
Enhancements
- Adding C++ constructors for
CArrayandCIndexer(#3683) - Fix ndarray binary operations with non-CuPy arrays to return
NotImplemented(#4198) - Change the wrapper arguments for cuBLAS L3 functions (#4263)
- Revise dtype handling in
cupyx.scipy.ndimage.spline_filter(#4314) - Update CUDA Array Interface to v3 - Part 1 (#4357)
- Inherit environment variable and detect cl.exe automatically (#4397)
- Fix
poly1d(#4399) ndimage: support all interpolation boundary modes (#4400)ndimage: add grid_mode option to zoom (#4401)- Add support for
LinearOperatortoeigshandsvdsincupyx.scipy.sparse.linalg(#4428) - Update to use the new CArray and CIndexer constructors (#4463)
- Deprecations for v9 (#4479)
- Disable
__cuda_array_interface__for HIP (#4482)
Performance Improvements
- Improve
scan_corein cupy/core/_routines_math.pyx (#4316) - Improve
scanin cupy/core/_routines_math.pyx (#4366) - Fixing minor TODO in
scan(#4464)
Bug Fixes
- Apply fixes to the FFT callback module (#4355)
- Fix
rcondarg oflinalg.lstsq(#4365) - Fix cufft callback manager error in Windows (#4377)
- Fix
linalg.lstsqfor complex types (#4390) - Fix
cupy.searchsortedon HIP (#4437) - Fix out-of-bound access in ndimage rank filters (#4439)
- Support complex types in
solve_triangular(#4452) - Eliminate read past end of array in percentile_weightnening (#4453)
cupy.random.normalfix broadcasting of scale and loc arguments (#4457)- Fix
__cuda_array_interface__for HIP (#4458) - Fix overwritten issue in
cumsumandcumprod(#4460) - Fix dev info allocation (#4491)
Code Fixes
- Rename submodules under
cupy.lib(#3713) - Clean up
cupy_backends(#4088) - Replace stubs in ndimage by Jitify (#4264)
- Refactor
cupyx.scipy.sparse.linalg.eigsh(#4275) - Simplify
cupy.linalg.inv(#4293) - Make names of test classes start with
Test(#4320) - Refactor traceback in
testing.helper(#4442)
Documentation
- Add
scipy.fftmodule to the API comparison table (#4278) - Fix docs of
cupy.randomfunctions/methods (#4319) - Update links to forums in README (#4345)
- Incorrect environment variable description (#4410)
- Add
spsolve_triangularto the reference (#4438) - Fix doc of
LinearOperator(#4441)
Installation
- Remove broken support for macOS (#3857)
- Fix parallel build (#4348)
- Add support for cuTENSOR 1.2.2 (#4404)
- Disentangle HIP from CUDA in the build script (#4416)
Tests
- Set
__module__attr to parameterized class (#4239) testing.numpy_cupy_allclosewith per-dtype tolerance (#4269)- Refactor
fft_tests: unittest -> pytest (#4287) - Fix
testing.helperto work withoutunittest(#4304) - Refactor ndimage_tests (#4307)
- Update
[jenkins]requirement (#4325) - Add broadcast test for
cupy.vectorize(#4341) - Parameterize sparse matrix tests (#4368)
- Remove travis (#4373)
- Fix some FFT test issues (#4385)
- Refactor test of
linalg.lstsq(#4388) - Require SciPy >= 1.4 in
TestGmres(#4394) - Run FFT callback test only on Linux (#4411)
- Refactor
TestLinearOperator(#4413) - Require SciPy 1.4 in
TestLinearOperator(#4420) - Fix
RawKerneltest (#4472) - Exclude unsupported dtypes for TestOrderFilter (#4477)
- Fix
TestEntropy: Requiresscipy>=1.4.0foraxisparameter (#4481) - Skip large size test for hip (#4461)
Others
- Drop support for Python 3.5 in CuPy v9 (#4340)
- Configure Mergify to check GitHub Actions instead of Travis (#4378)
- Bump version to v9.0.0b1 (#4499)
Contributors
The CuPy Team would like to thank all those who contributed to this release!
@anaruse @carterbox @coderforlife @dmargala @grlee77 @leofang @mor2code @venkywonka @wphicks