This is the release of CuPy v2.0.0a1. See here for the complete list of solved issues and merged PRs.
Release Notes
Important updates
- We start using NVRTC instead of NVCC for kernel compilation. This change enables CuPy to run on an environment where CUDA is installed but NVCC is not available. Note that some features depending on Thrust (e.g. sorting functions) cannot be used if NVCC is not available at the installation.
- Many functions for sorting, linear algebra, and others are added
New features
- Use NVRTC instead of NVCC to compile kernels (#33, #62)
- Sorting functions
- Linear algebra functions
- Preliminary features to support sparse matrices
cupy.mgridandcupy.ogrid(#145, thanks @iory!)cupy.random.multinomial(#85)cupy.cumprod(#110, thanks @ronekko!)- Support cuDNN v6 dilated convolution (#133, thanks @anaruse!)
- Add
total_bytes(),free_bytes(), andused_bytes()methods to memory pool (#184) - Support
orderoption inastype(#111) andcopy(#112) cupy.fusenow does not require parentheses (#43)- Add
ndimtoCArrayandCIndexer(#160, #161)
Enhancement
- Improve memory deallocation (#174)
- Skip installing thrust support in case nvcc not found in PATH. (#91)
- Improve asynchronous host to device copy (#123)
- Change the allocation unit size from 256 to 512 (#176)
- Workaround to "No supported gcc/g++ host compiler found” error in Ubuntu 17.04 (#198)
- Avoid synchronization in
cupy.arrayfor 0-dim values (#157) - Make
cupy.count_nonzeroreturn an array instead ofintto avoid device-to-host synchronization (#154) - Check type in
assert_array_list_equal(#205) - Improve performance (#169, #171, #172, #193, #206)
- Improve testing utility (#218, #231)
- Refactor
cupy.atleast_ndfunctions (#142)
Bug fixes
- Fix
outargument in fusion (#209, #213) - Fix
cupy.arrayon multiple GPU environment (#122, #135) - Fix usages of
copyargument ofndarray.astype(#118, #121) - Make memory pool thread-safe (#105, thanks @kmaehashi!)
- Fix fusion to reject NumPy arrays (#151)
- Fix thread safety of
cupy.random.get_random_state(#77, #78)
Documents
- Fix tutorial (#93, thanks @hvy!)
- Add links to GitHub source pages (#131)
- Fix typo (#148, thanks @ignisan!)
- Write about advanced indexing support (#88, thanks @yuyu2172!)
- Remove description about discrepancy with NumPy regarding exponential of boolean arrays, which was resolved in NumPy 1.13.0 (#140)
- Add missing documentation of
cupy.cumsum(#90, thanks @ronekko!) - Add documentation of
__getitem__and__setitem__for ndarray (#89, thanks @yuyu2172!) - Minor improvement for README and the document (#45, #49, #117, #134, #138, #155 thanks @ClimbsRocks!, #165, #177, #166)
Examples
Tests
- Stabilize
cupy.random.choicetest (#98, #104) - Fix Numpy
VisibleDeprecationWarningin indexing tests (#202) - Make random tests deterministic (#81, #82)
- Retry unit tests of decomposition functions (#129)
- Fix bug of histogram in
RandomState.intervaltest (#175)