These are the release notes for v5.0.0rc1. See [here](https://github.com/cupy/cupy/milestone/35?closed=1) for the complete list of solved issues and merged PRs.
Highlights
- Many routines, esp. for sampling from various distributions, are added.
- We now support SciPy 1.0+.
New Features
- New sampling routines for various distributions
- Multivariate normal distribution (1320)
- Chi-square distribution (1414)
- Gamma distribution (1416, 1616)
- Student’s t distribution (1417)
- Poisson distribution (1418)
- Cauchy distribution (1419)
- Exponential distribution (1420, 1624)
- F distribution (1421)
- Geometric distribution (1422)
- Pareto distribution (1423)
- von Mises distribution (1623)
- Zipf distribution (1634)
- New routines
- Add sparse cholesky decomposition (1075, thanks chengts95!)
- Implement round function (1499)
- Add `cbrt` (1559)
- Add `nan_to_num` (1562)
- Add `erf`, `erfc`, and `erfcx` to `cupyx` (1570)
- Add `ndtr` (1571)
- Add `erfinv` and `erfcinv` (1590)
- Add new APIs for RNN (1572)
- Support complex in `eigh` and `svd` (1518, thanks infrub!)
- Add `cupy.cublas.dgetrfBatched` (1608)
- General support for external memory pointer (1610)
- Add `cupy.cublas.dgetriBatched` (1617)
Enhancements
- Improve exception handling performance in Cython (919)
- Improve `cudnn.pyx` to up speed (1378)
- Improve `take` function (1505)
- Improve view method performance (1543)
- Split `core.pyx` to improve maintainability (1550)
- Improve memory pool performance (1544)
- Make `ElementwiseKernel` emit immutable `in_params` (1554)
- Use bit operation when the divisor is a power of 2 on GPU (1555)
- Use cuBLAS 9.1+ algorithm names (1561)
- Improve error messages for complex arguments of bessel functions (1569)
- Support SciPy 1.0+ (1573)
- Fix result dtypes of special functions (1577)
- Improve usability of special functions (1578)
- Improve readability of reduction kernel (only python) (1580)
- Fallback to synchronous transfer if pinned memory could not be allocated (1593)
- Unify fusion (1599)
- Add `strides` option in `cupy.ndarray` (1611)
- Fix laplace distribution (1645)
Bug Fixes
- Fix invalid exception propagation in `getDropoutReserveSpaceSize` (919, 1344)
- Fix CuPy not working in thread other than one imported CuPy (1581)
- Reset cuda runtime error (1592)
- Fix `cupy.random.standard_exponential` bug (1642)
- Support non-tuple size in random distribution generators (1648)
- Fix `random.exponential` (1649)
Documentation
- Add documentation to sqrt (1560)
- Add interoperability docs (1565)
- Fix docstring of modified bessel function (1567)
- Add comparison table generator (1582)
- Support cuDNN v7.2 (1584)
- Update contribution guide to align with Chainer's one (1604)
- Rename `my_sum` to `my_add` in docs (1612)
Tests
- Import `scipy.special` to use it in test (1568)
- Use `assertIsNone` in `test_interpolation.py` (1587)
- Add test for thread use case of fusion (1589)
- Test reproducibility for any seed (1613)
- Fix invalid escape sequence warnings in Python 3.6 (1619)
- Improve boundary tests of `erfinv` (1646)
Others
- Fix around style checking (1605)