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

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions