This is the release of v4.0.0b4. See [here](https://github.com/cupy/cupy/milestone/20?closed=1) 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.
shell-session
$ 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 `cupyx` namespace (894)
- `cupy.scatter_add` is marked as deprecated. Use `cupyx.scatter_add` instead.
- Add logic type tests: `iscomplex`, `iscomplexobj`, `isfortran`, `isreal`, `isrealobj` (904)
- Import numpy complex dtypes into cupy namespace. (907, thanks ericmjl!)
- Simplify `free_all_blocks` interface (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.partition` performance (763)
- Support memory pool for FFT functions (910)
- Implement memory pool index compaction (912)
- Enable complex tensors for `cupy.matmul` and `cupy.einsum` (921, thanks hknerdgn!)
- Move `cupy.cufft` to internal functions of `cupy.fft.fft` (924)
- Use `cublas*gemmStridedBatched` APIs 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 `concatenate` bug 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-description` option to inject long description for wheels (953)
Documentation
- Improve the document of `rand`/`randn` with examples (908)
- Fix typo: `nestead` -> `nested` (943, thanks rcalland!)
- Use https in supported websites (948)
Tests
- Test sparse with many types of sparse matrices (833)
- Fix test failure in cuDNN v5 which does not support `CUDNN_ACTIVATION_ELU` (959)