Skip to content

feat(deps): raise cupy lower bound to >=14 #279

Description

@gforsyth

The current lower bound for cupy across RAPIDS projects is 13.6.0. What is the appetite for us bumping that lower-bound to >=14?

In 14.0.0, cupy added a ctk install extra, that handles installing all the required cuda-toolkit packages from PyPI. If we bump the lower-bound, it becomes (more) possible for users to have a single install command that leaves them with a fully-formed installation (not missing required cuda-toolkit shared objects).

For wheel-based ci tests, raising the lower-bound of cupy would also allow us to swap the base image for our citestwheel from cuda-devel-* to cuda-base-*. We currently use the devel as the base image because we need to bundle the shared objects that can now be installed using the ctk extra in cupy.

If we can swap the base image, it would help with CI spin-up times -- currently, the citestwheel images are on the order of around 11GB. Switching to base reduces the image size to ~420MB . This saving in image size IS slightly offset by the size of the ctk extra downloads, but it is still a smaller amount of data to transfer, and not every RAPIDS project will end up pulling cupy[ctk].

The downsides I can think of are:

  1. For users who already have a local CTK installed, if cupy-cuda12x[ctk] is a dependency of, say, cudf, they'll download an additional copy of some pretty hefty libraries.
  2. If there are users who are constrained to cupy<14 for some reason, they won't be able to use newer versions of RAPIDS

I believe the current projects with direct cupy runtime dependencies (so the projects that might incur the "extra CTK download" penalty) are:

  • cucim
  • cudf
  • cugraph-pyg
  • cugraph
  • cuml
  • cuopt
  • cuxfilter
  • kvikio
  • nvforest
  • nx-cugraph
  • rapidsmpf

Libraries that depend directly on cupy for tests:

  • cuvs
  • raft
  • rmm
  • ucxx

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions