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:
- 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.
- 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:
The current lower bound for
cupyacross RAPIDS projects is13.6.0. What is the appetite for us bumping that lower-bound to>=14?In
14.0.0,cupyadded actkinstall extra, that handles installing all the requiredcuda-toolkitpackages 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 requiredcuda-toolkitshared objects).For wheel-based ci tests, raising the lower-bound of
cupywould also allow us to swap the base image for ourcitestwheelfromcuda-devel-*tocuda-base-*. We currently use thedevelas the base image because we need to bundle the shared objects that can now be installed using thectkextra incupy.If we can swap the base image, it would help with CI spin-up times -- currently, the
citestwheelimages are on the order of around 11GB. Switching tobasereduces the image size to ~420MB . This saving in image size IS slightly offset by the size of thectkextra downloads, but it is still a smaller amount of data to transfer, and not every RAPIDS project will end up pullingcupy[ctk].The downsides I can think of are:
cupy-cuda12x[ctk]is a dependency of, say,cudf, they'll download an additional copy of some pretty hefty libraries.cupy<14for some reason, they won't be able to use newer versions of RAPIDSI believe the current projects with direct
cupyruntime dependencies (so the projects that might incur the "extra CTK download" penalty) are:cucimcudfcugraph-pygcugraphcumlcuoptcuxfilterkvikionvforestnx-cugraphrapidsmpfLibraries that depend directly on
cupyfor tests:cuvsraftrmmucxx