This is the release of v4.0.0b4. See here for the complete list of solved issues and merged PRs.
Important Changes
Starting from this release, CuPy supports wheel packages. The packages have different names depending on the CUDA versions. Installation is much faster with wheel packages than with the conventional installation from source.
To install CuPy from a wheel package, first uninstall the existing CuPy if you have, and then type the following command with appropriate CUDA version.
$ pip install --pre cupy-cuda80
$ # or
$ pip install --pre cupy-cuda90
Note: the wheel packages include cuDNN and NCCL2 binaries. These included binaries are automatically used by CuPy instead of those prepared by yourselves.
New Features
- Implement
isclose(#825) - Introduce
cupyxnamespace (#894)cupy.scatter_addis marked as deprecated. Usecupyx.scatter_addinstead.
- Add logic type tests:
iscomplex,iscomplexobj,isfortran,isreal,isrealobj(#904) - Import numpy complex dtypes into cupy namespace. (#907, thanks @ericmjl!)
- Simplify
free_all_blocksinterface (#918) - Support CUDA stream on FFT (#926)
- Add forward/backward support for cuDNN clipped ReLU and ELU (#938, thanks @tkerola!)
Improvements
- Simplify
__getitem__and__setitem__(#724) - Fix concatenate bug and improve performance (#747)
- Improve
cupy.partitionperformance (#763) - Support memory pool for FFT functions (#910)
- Implement memory pool index compaction (#912)
- Enable complex tensors for
cupy.matmulandcupy.einsum(#921, thanks @hknerdgn!) - Move
cupy.cufftto internal functions ofcupy.fft.fft(#924) - Use
cublas*gemmStridedBatchedAPIs in matmul (#930, thanks @anaruse!) - Use
__dealloc__in memory object (#934) - Embed build-time version of CUDA/cuDNN (#937)
- Remove unnecessary code in
cupy.fft(#951) - Prefer data type objects over character codes (#956)
- Prefer double quoted docstring to single quoted docstring (#957)
- Simplify chained comparisons (#958 )
- Remove warning in
cupy.core.fusion(#960)
Bug Fixes
- Fix
concatenatebug and improve performance (#747) - Fix scalar broadcast (#789)
- Test sparse with many types of sparse matrices (#833)
- Fix array iteration index overflow (#882)
- Fix get and set method with async mode (#900)
- Fix bug about stream deletion (#917)
- Fix test failure in cuDNN v5 which does not support
CUDNN_ACTIVATION_ELU(#959)
Installation
- Improve message during installation (#762)
- Support wheel build (#899)
- Exclude Cython files from sdist (#920)
- Add
--cupy-long-descriptionoption to inject long description for wheels (#953)
Documentation
- Improve the document of
rand/randnwith examples (#908) - Fix typo:
nestead->nested(#943, thanks @rcalland!) - Use https in supported websites (#948)