Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add wheel tests to CI #1416

Open
wants to merge 6 commits into
base: branch-25.02
Choose a base branch
from

Conversation

gforsyth
Copy link

@gforsyth gforsyth commented Dec 13, 2024

Adding this now that wheels are available

  • deps(kvikio): add kvikio to CUDA version matrices
  • test(wheels): enable wheel tests in CI

Resolves #1344

@gforsyth gforsyth requested review from a team as code owners December 13, 2024 19:21
@gforsyth gforsyth requested a review from msarahan December 13, 2024 19:21
Copy link

copy-pr-bot bot commented Dec 13, 2024

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@gforsyth gforsyth changed the title deps(kvikio): add kvikio to CUDA version matrices test(wheels): add wheel tests to CI Dec 13, 2024
@gforsyth gforsyth added the non-breaking Non-breaking change label Dec 13, 2024
Copy link
Member

@pentschev pentschev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks @gforsyth !

@gforsyth gforsyth added the improvement Improvement / enhancement to an existing function label Dec 13, 2024
@pentschev pentschev added 3 - Ready for Review Ready for review by team ci improvement Improvement / enhancement to an existing function and removed improvement Improvement / enhancement to an existing function ci labels Dec 13, 2024
@pentschev
Copy link
Member

/ok to test

@pentschev
Copy link
Member

@gforsyth I've triggered CI manually now but FYI going forward you'll need to setup GitHub commit signing to ensure CI runs automatically.

We want a name like:

`dask_cuda_wheel_python_dask_cuda_py312_x86_64.tar.gz`

from these environment variables
@pentschev pentschev changed the title test(wheels): add wheel tests to CI Add wheel tests to CI Dec 16, 2024
@pentschev
Copy link
Member

We don't currently use tags/keyword in the PR titles, so as a nit I just changed its title to contain only the message, this is really just a nit, hope you don't mind Gil. 🙂

Copy link
Member

@jameslamb jameslamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this! Left some suggestions.

Can you please also add a similar entry in https://github.com/rapidsai/dask-cuda/blob/branch-25.02/.github/workflows/test.yaml? You can follow the patterns from other repos, like https://github.com/rapidsai/cudf/blob/branch-25.02/.github/workflows/test.yaml

Those .github/workflows/test.yaml workflow configs define which tests run in 3 scenarios:

@ me if you want some helping resolving the CI failures.

Comment on lines +64 to +65
# This selects "ARCH=amd64 + the latest supported Python + CUDA".
matrix_filter: map(select(.ARCH == "amd64")) | max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]) | [.]
Copy link
Member

@jameslamb jameslamb Dec 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# This selects "ARCH=amd64 + the latest supported Python + CUDA".
matrix_filter: map(select(.ARCH == "amd64")) | max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]) | [.]

I think we should cover the full RAPIDS PR CI matrix here.

Even though the dask-cuda wheels are pure-Python and not CPU architecture or CUDA-version dependent, with tags like this:

dask_cuda-25.2.0a10-py3-none-any.whl

... some of its dependencies do produce different variants for those different environments, and it's possible dask-cuda could interact with them in different ways that we'd want to catch. I'm reminded for example of microsoft/LightGBM#6509 and microsoft/LightGBM#6654, where I found that there was some aarch64-specific issue whose resolution was "load OpenMP as early as possible".

By the way, for PRs that matrix is only 2 jobs. You can find them here:

https://github.com/rapidsai/shared-workflows/blob/3313dce51b2cfea4601c30a986cd5980087fe2c1/.github/workflows/wheels-test.yaml#L81-L85

@@ -0,0 +1,11 @@
#!/bin/bash
# Copyright (c) 2023, NVIDIA CORPORATION.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Copyright (c) 2023, NVIDIA CORPORATION.
# Copyright (c) 2024, NVIDIA CORPORATION.

This is a brand new file, so the copyright date should be 2024. In a follow-up PR, could you add the verify-copyright pre-commit hook here to catch and fix stuff like this?

ref: https://github.com/rapidsai/cuspatial/blob/ad2900ded3c4a855774fc47dcec9a22323f07c0b/.pre-commit-config.yaml#L48


set -eou pipefail

RAPIDS_PY_VERSION="312" RAPIDS_PY_WHEEL_NAME="dask-cuda" rapids-download-wheels-from-s3 ./dist
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
RAPIDS_PY_VERSION="312" RAPIDS_PY_WHEEL_NAME="dask-cuda" rapids-download-wheels-from-s3 ./dist
RAPIDS_PY_WHEEL_NAME="dask-cuda" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-s3 python ./dist

Let's match the way this is spelled in other pure-Python cases like:

Keeping these scripts looking similar is helpful when we do touch-all-the-repos types of migrations.

- ucx-py-cu12==0.42.*,>=0.0.0a0
- matrix:
cuda: "11.*"
cuda_suffixed: "true"
packages:
- cudf-cu11==25.2.*,>=0.0.0a0
- dask-cudf-cu11==25.2.*,>=0.0.0a0
- kvikio-cu11==25.2.*,>=0.0.0a0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh nice, thank you!

@jameslamb jameslamb removed the request for review from msarahan December 18, 2024 23:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 - Ready for Review Ready for review by team ci improvement Improvement / enhancement to an existing function non-breaking Non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[CI] add wheel tests in CI
3 participants