This is the release note of v6.0.0b2. See here for the complete list of solved issues and merged PRs.
Highlights
- Compatibility with NumPy 1.16 and support for the
__array_function__interface allowing CuPy arrays to be passed to NumPy functions.
New Features
- Implement
__array_function__interface (#1650) - Implement SciPy-compatible FFT functions (#1745)
- Add
PlanNdclass for faster 2D and 3D FFTs (#1746, thanks @grlee77!) - Add
orderargument toempty_like,zeros_like, etc. (#1819, thanks @grlee77!) - Add
cupyx.scipy.sparse.diags(#1840, thanks @grlee77!) - Add the
orderkwarg tocupy.reshapeand the underlyingndarraymethod (#1843, thanks @grlee77!) - Support order kwarg in
asarray,asanyarray,ndarray.get,tonumpy(#1845, thanks @grlee77!) cumsum,cumprod: support array-like input (#1847, thanks @grlee77!)- Add sparse option to meshgrid (#1848, thanks @grlee77!)
- Add
attributesproperty toDevice(#1869, thanks @grlee77!) - Support new APIs in cuDNN v7.4.1 (#1884)
- Add
as_strided(#1897, thanks @fujiisoup!) - Add
fncandforctocore.flags.Flags(#1898, thanks @grlee77!) - CuPy external memory pool with memory pool and function pointers (#1904)
- Allow multi-axis
rollas in NumPy 1.12+ (#1818, thanks @grlee77!)
Enhancements
- Add
cupy.util.PerformanceWarning(#1607) - Support NumPy arrays as seeds in
RandomState(#1689, thanks @mrocklin!) - Better support cuda-gdb (#1773)
- Allow
cupy.fusetaking any parameters when fails to fuse (#1817) - Verbose broadcast failure message (#1836)
- Bundle CUDA fp16 headers (#1837)
- Refactor array creation for RNN API (#1842)
- Support for documenting NCCL interfaces (#1857)
- Use
iteminstead ofasscalarto support NumPy 1.16 (#1880) - Support NumPy 1.16 (#1881)
- Allow passing
Noneas parameters ofFusion.__call__(#1965)
Performance Improvements
- Improve
cudnn.pyperformance (#1375) - Improve
matmulperfomance (x3 faster) (#1547) - Improve
matmul(small changes) (#1894) - Improve
Fusion.__call__(#1832)
Bug Fixes
- Fix backward of batch normalization (#1822)
- Fix
RecursionErrorbug inconjmethod of sparse matrix classes (#1846, thanks @grlee77!) - Allow
Noneascxargument in cuDNN RNN functions (#1862) - Fix
ndarrayinitialization bug (#1907) - Set
sizeattribute of externally allocated memory (#1926) - Fix
ndimnot usingcdef(#1935) - Ensure the input to the CUFFT
Plan1Dclass is C contiguous (#1944, thanks @grlee77!) - Fix wrong variable name in
cudnn.pyx(#1966)
Documentation
- Document Numba CUDA array conversion (#1786)
- Align with the latest NumPy docs (#1804)
- Update docs for newly supported libraries (#1854)
- Fix bad hyperlink in
cupy.arounddocumentation (#1856) - Add memory management documentation (#1871)
- Add
diagsto documentation (#1872) - Fix stylecheck installation in contribution guide. (#1873, thanks @crcrpar!)
- Avoid using
_ufunc_wrapperand_reduction_wrapper(#1888) - Rename Code of Conduct filename (#1900)
Tests
- Add tests for complex
minandmax(#1828) - Fix
randinthigh value in test for Windows (#1892) - Fix test to support SciPy 1.12 (#1968)
Code Fixes
- Refactor manipulation routines from
core.pyx(#1620) - Use language level 3 in cythonize (#1792)
- Change argument name of
core.create_comparison(#1829) - Refactor cyclic imports (#1905)
- Refactor math and indexing routines from
core.pyx(#1949) - Clean up
internal.pyx(prod) (#1951) - Fix int types (#1952)
- Rename
External*toCFunction*(#1958) - Refactor logic, sorting and statistics routines from
core.pyx(#1959) - Use LF instead of CR+LF (#1909)
Others
- Ignore W503 and W504 (#1953)