This is the release of CuPy v2.0.0rc1. See here for the complete list of solved issues and merged PRs.
Changes that break compatibility
- Change the default value of the
orderargument ofcopyfrom’C’to’K’(#159) - Add
orderandsubokarguments toarray(#167). It breaks the compatibility of positional arguments.
New features
- Complex numbers (#232)
- Memory hook (#264). It can be used to observe the memory allocation/deallocation events.
- New functions
- New features in sparse matrices
- Support
dia_matrix(#313, #321, #320, #450) - Sparse matrix creation methods:
eye(#399),spdiags(#388) andidentity(#358) csr_matrixandcsc_matrixare improved:__mul__(#239),__rmul__(#300),__getitem__(#240, #301, #302),dot(#351, #352)- Initializers of
csr_matrix,csc_matrix, andcoo_matrixsupportshapeargument (#316, #375) - Sparse matrices can have duplicated elements (#326, #371)
orderargument intoarraymethod of csc and csr (#311)__pow__(#359)- Conversion from a dense array to a sparse matrix (#335)
- Support conversion from
scipy.sparsematrix tocupy.sparse(#370)
- Support
- Added supports of new libraries
argsortfor arrays of rank two or more (#288)- Fix race-condition on memory pool (#382)
- Implemented copy option of array conversion methods and wrote tests (#408)
- Enable saving CUDA source with environment variable (#415)
- Basic support of CUDA unified memory (#447)
- Use original function name as fusion kernel name (#448)
- Support
replace=Falseinrandom.choice(#453) - Add a
syncoption totime_range(#474, thanks @anaruse!)
Bug fixes
- Fix bug of empty
coo_matrix(#328) - Fix default behavior of methods in
spmatrix(#356) - Made dummy implementation to prevent infinite loop (#364)
- Avoid to call python methods in
__dealloc__(), use__del__()instead. (#381) - Fix race-condition on memory pool (#382)
- Fix view when the itemsize of the dtype changes (#406, thanks @boeddeker!)
- Use double backslash in str literal (#418)
- Improved
powtest (#421) - Use
randintinstead ofrandom_integer, which is deprecated (#425) - Fix
diagonal(#428, thanks @fukatani!) - Use
six.assertRegex(#432) - Fix for numpy1.13 (#445)
- Fix tocsc behavior for an empty dia matrix (#451)
Improvements
- Tell the memory size when
cudaErrorMemoryAllocationoccurred (#314) - Simplify nogil (#164)
- Skip cross compile on
setup.pydevelop to build faster (#309) - Remove device memory allocation out of memory pool (#337)
- Avoid importing NumPy docstring (#355)
- Improve header handling (#367)
- Remove redundant code in
cupy_thrust.cu(#369) - Improve
_tril()and_triu()with anElementwiseKernel(#377) - Remove unnecessary condition (#383)
- Add semicolons to the reduction kernel template (#386)
- Remove redundant transpose (#390)
- Fix usage about
ElementwiseKernel(#391) - Remove duplicated preamble definition. (#402)
- Fix
cumsum(#414) - Use
AxisErrorto maintain compatibility to multiple versions of NumPy (#437) - doc: Sort out navigation menu (#444)
- Improve
tensordot_core(#465) - Simplify
flip(#468) - Use
Noneinstead ofset()to improve memory allocation performance (#475)
Installation
- Skip cross compile on
setup.py developto build faster (#309) - Fix double declaration of
tuple_less(#368) - Made a cutomized version of sdist command to use cython (#446)
Documentation
- Fix a grammatical error in tutorial (#267)
- Add
cupy.sparsereference (#299, #303) - Cleanup
README.md(#334) - Hide source link for alien objects (#354)
- Avoid importing NumPy docstring (#355)
- Remove unsupported
stridesargument from docstring (#361) - Fix
matmularguments (#384, thanks @hvy!) - Add link to our contribution guide (#392)
- Update docstring of
linalg.einsum(#405) - Write docstring of A property and its test (#407)
- Use double backslash in str literal (#418)
- Fix typo in
sparse.spdiagsdocstring. (#426) - Remove "Edit on GitHub" link (#434)
- Reorganize navigation menu (#444)
- Clear doctest warnings (#455)
- Add documents of
linalg(#456) - Write docstring of
sparse.issparse(#470)
Examples
- Conjugate Gradient (#94, thanks @KotaroSetoyama!)
Tests
- Example test (#297)
- Add test for
cuda.cusolver_enabledflag (#374) - Write tests for operators for sparse matrices (#401)
- Write docstring of
Aproperty and its test (#407) - Fix test for random generator (#413)
- Fix
cumsumtest (#414) - Add test for
transposewhen axes is notNone(#420) - Improved
powtest (#421) - Changed order argument for unknown order test as SciPy causes DeprecationWarning (#422)
- Add tests for
asfptype(#423) - Add
assert_warns(#424) - Use
randintinstead ofrandom_integerthat is deprecated (#425) - Use
six.assertRegex(#432) - Show error message when an error occurs on example test (#433)
- Fix tests on Windows (#435)
- Fix tolerance of arithmetic tests (#443)
- Added test for
__iter__ofcsr_matrix(#449) - Fix
tocscbehavior for an emptydiamatrix (#451) - Fix test for
tensorsolve(#454) - Skip NumPy
cliptests in Windows (#467) - Fix typo in test function names (#394)
Others
- Configure flake8 to ignore the .git directory (#339)