pypi cupy 10.0.0
v10.0.0

latest releases: 14.2.0, 14.1.1, 14.1.0...
4 years ago

This is the release note of v10.0.0. See here for the complete list of solved issues and merged PRs.

This release note only covers changes made since v10.0.0rc1 release. Check out our blog for highlights in the v10 release!

We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!

Highlights

Support all advanced indexing (#6196)

The support for advanced indexing using boolean masks has been completed in CuPy v10.
Now it is possible to index arrays using combinations of Ellipsis, boolean flags and regular indexes such as a[[[1, 1, -3], [0, 2, 2]], [True, False, True, True]] and a[..., [[False, True]]]

Support lambda functions in cupy.vectorize (#6217)

A long-awaited feature to ensure compatibility with NumPy vectorize has been implemented. In this release, it is now possible to transpile lambda functions. This is especially handy when using JIT in conjunction with cupy.vectorize:

import cupy

a = cupy.array([0.4, -0.2, 1.8, -1.2])
relu = cupy.vectorize(lambda x: (x > 0.0) * x)
print(relu(a))  # [ 0.4 -0.   1.8 -0. ]

Announcements

Drop support for CUDA 10.1 or earlier (#5770)

As per the RFC in #5717 and Twitter, the minimum CUDA version that is supported by CuPy v10 is CUDA 10.2.

Drop support for NCCL 2.6 and 2.7 (#5855)

The minimum supported version for CuPy v10 is NCCL 2.8 as it implements the required primitives for cupyx.distributed to work.

Drop support for Python 3.6 (#5771)

Following the Python 3.6 sunset on December 2021, and the compatibility lines with NumPy, starting CuPy v10, Python 3.6 will no longer be supported.

Drop support for NumPy 1.17 (#5857)

As per NEP29, NumPy 1.17 support has been dropped on July 26, 2021.

Changes

New Features

  • Add cupy.array_api.linalg (#6199)

Enhancements

  • Add more aliases for compatibility with NumPy (#6080)
  • Raise better message when importing CPU array via DLPack (#6097)
  • Apply upstream patch to cupy.array_api (#6105)
  • Borrow more non-GPU APIs from NumPy (#6109)
  • Import more dtype aliases from NumPy (#6110)
  • Borrow indexing APIs from NumPy (#6111)
  • Compile cub/thrust with no unique symbol (#6140)
  • Support cuDNN 8.3.0 (#6150)
  • Support eigenvalue solver 64bit API (#6192)
  • Support all advanced indexing (#6196)
  • Support lambda functions in cupy.vectorize (#6217)
  • Deprecate MachAr (support NumPy 1.22) (#6189)

Performance Improvements

  • Avoid 64bit division to reduce register consumption (#6102)

Bug Fixes

  • Fix __all__ in cupyx.scipy.fft (#6083)
  • Detect repeated axis in reduction (#6103)
  • Fix __getitem__ on Ellipsis and advanced indexing dimension (#6113)
  • Allow leading unit dimensions in copy source (#6153)
  • Always test broadcast in copyto (#6155)
  • Handles infinities of the same sign in logaddexp and logaddexp2 (#6176)
  • Fix empty solve (#6183)
  • Fix empty Cholesky (#6184)
  • Fix #4675 on resolving TODO in #4198 (#6204)
  • Eigenvalue solver 64bit API on CUDA 11.1 (#6220)

Code Fixes

  • Avoid from os import path (#6165)

Documentation

  • Update stable branch (#6065)
  • Update labels of Docs column (#6068)
  • Add more footnotes to comparison table (#6079)
  • Exclude kernel_version from comparison table (#6090)
  • Remove LLVM_PATH note on document (#6101)
  • Add polynomial modules to comparison table (#6122)
  • Add link to compatibility matrix (#6135)
  • Update footnotes in comparison table (#6143)
  • Update conda-forge installation guide (#6200)
  • Update upgrade guide (#6203)
  • Update linkcode implementation (#6206)
  • Revise Overview for CuPy v10 (#6215)

Installation

  • Replace distutils with setuptools in Windows cl.exe detection (#6138)
  • Bump version to v10.0.0 (#6224)

Tests

  • Fix CI cannot override cuSPARSELt/cuTENSOR version preinstalled (#6087)
  • Workaround DeprecationWarning raised from pkg_resources (#6095)
  • Fix testing.multi_gpu to add pytest marker (#6096)
  • Fix missing multi_gpu annotation in tests (#6100)
  • Fix exception handling in cupyx.distributed (#6116)
  • Improve FlexCI test scripts (#6119)
  • Fix CI result notification message format (#6124)
  • CI: Add timeout to show_config (#6132)
  • CI: use separate project for multi-GPU tests (#6145)
  • CI: Need to update CUDA driver in cuda115.multi (#6146)
  • CI: Fix package override sometimes fails in CentOS (#6147)
  • CI: add link to ROCm projects in CI coverage matrix (#6148)
  • CI: Fix unquoted specifiers (#6182)
  • CI: Update limits to reduce cache size (#6185)
  • Trigger FlexCI from GitHub Actions (#6191)
  • Support pre-release NumPy version in tests (#6193)

Contributors

The CuPy Team would like to thank all those who contributed to this release!

@asi1024 @emcastillo @eternalphane @kmaehashi @leofang @okuta @takagi @toslunar @twmht @Yutaro-Sanada

Don't miss a new cupy release

NewReleases is sending notifications on new releases.