Skip to content

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

@gforsyth

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

Assignees

No one assigned

    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