Skip to content

Adopt a "latest stable" numba-cuda pinning strategy #245

@brandon-b-miller

Description

@brandon-b-miller

Summarizing various discussions over the past few days here.

Historically we've needed to advance the lower bound quite often as numba-cuda features were created to serve cuDF specifically, while maintaining a tight upper bound due to the instability of those APIs as we got things working, bumping as needed. As more libraries that RAPIDS wants compatibility with have adopted numba-cuda however, it's become common for those libraries to be ahead of where rapids pins numba-cuda. This makes it difficult for those libraries to be coinstalled with the latest RAPIDS version. After discussion with the cudf python and numba-cuda teams, the best idea moving forward seem to be to approach the numba-cuda dependency as follows:

  • Open the upper bound for numba-cuda for regular development, allowing RAPIDS to be worked on against the latest stable numba-cuda release
  • At release time, add an upper bound restricting that RAPIDS release to, at latest, the most recent release of numba-cuda that exists

We won't bump the lower bound unless necessary and we'll respond to issues with numba-cuda that surface through rapids with patch releases, these will hopefully be relatively infrequent and addressable quickly.

To get this off the ground, let's migrate rapids to >=0.24.0,<0.25.0, the lower bound getting us a version containing the latest import warning fixes and the upper bound mimicking what we'd have if things were running automatically as this proposal envisions. After that, we'll:

  • Update release scripts to figure out the latest numba-cuda version and adjust the bounds on release
  • Remove the upper bound on development branches

PRs doing the former:
rapidsai/cudf#21117
rapidsai/cuml#7706
rapidsai/dask-cuda#1610
rapidsai/cuxfilter#759
rapidsai/rmm#2218
rapidsai/ucxx#573

cc @bdice @vyasr @jameslamb

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