-
Notifications
You must be signed in to change notification settings - Fork 4
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
Generalize GHA select
statements (to avoid hard-coding versions)
#25
Comments
Here is another hard-coding example in cuDF |
Also some relevant discussion in this thread: rapidsai/cudf#15174 (comment) |
I worked through a bit of jq and I think I have a decent solution. Case 1: Pure Python, for each CUDA major versionFor pure Python packages that need to build for each CUDA major version, like map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))])) This was originally posted here: rapidsai/cudf#15174 (comment) Case 2: Pure Python, no CUDA dependencyFor jobs that only need a single matrix entry (no dependence on a specific Python or CUDA version), we should use the highest (Python, CUDA) pair. map(select(.ARCH == "amd64")) | max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]) | [.] Optionally, you can drop the These expressions assume that we do not care what OS value ( |
@bdice I tried the "Pure Python, no CUDA dependency" example in rapidsai/rapids-dask-dependency#28 Worked perfectly, thank you 😊 |
Contributes to rapidsai/build-planning#25. Contributes to rapidsai/build-planning#3. This project uses a `jq` filter in its GitHub Actions configuration to select exactly 1 combination of `(architecture, Python version, CUDA version)` for each of its CI jobs. This PR proposes removing string literals referencing specific versions, so that the configuration won't have to be updated in the future as RAPIDS changes its supported matrix of Python and CUDA versions. Credit for this to @bdice / @ajschmidt8 : rapidsai/build-planning#25 (comment). I'm just clicking the buttons 😁
I did cudf as well. rapidsai/cudf#15191 There are some hardcoded references remaining but they're not really used in the same way as the cases we've addressed above. Docker needs something like cuGraph has some PyG tests that only run on CUDA 11. I don't think these are worth modifying since it's pinning to an older version. There is some open work needed to upgrade to PyTorch 2, which I think may open up the ability to use CUDA 12 here. |
To eliminate hard-coding, generalize the GHA workflow logic to select one build for testing. This should simplify future cuxfilter updates. xref: rapidsai/build-planning#25 Authors: - https://github.com/jakirkham - Ajay Thorve (https://github.com/AjayThorve) Approvers: - Ray Douglass (https://github.com/raydouglass) - Ajay Thorve (https://github.com/AjayThorve) URL: #575
Thanks Bradley! 🙏 Yeah think we can close this once cuDF is fixed |
To eliminate hard-coding, generalize the GHA workflow logic to select one build for testing. This should simplify future Dask-CUDA updates. xref: rapidsai/build-planning#25 Authors: - https://github.com/jakirkham Approvers: - AJ Schmidt (https://github.com/ajschmidt8) - Ray Douglass (https://github.com/raydouglass) URL: #1318
To eliminate hard-coding, generalize the GHA workflow logic to select one build for testing. This should simplify future updates. This is a follow-up to #15174. xref: rapidsai/build-planning#25 Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Jake Awe (https://github.com/AyodeAwe) - https://github.com/jakirkham URL: #15191
cuDF's PR is merged: rapidsai/cudf#15191 This should be safe to close now. |
To eliminate hard-coding, generalize the GHA workflow logic to select one build for testing. This should simplify future Dask-CUDA updates. xref: rapidsai/build-planning#25 Authors: - https://github.com/jakirkham Approvers: - AJ Schmidt (https://github.com/ajschmidt8) - Ray Douglass (https://github.com/raydouglass) URL: rapidsai#1318
As there is only need of Dask-CUDA build, we filter out one architecture, Python version, and CUDA version in GHA. So as to only build the package once
https://github.com/rapidsai/dask-cuda/blob/1eecb1b2ac79ae9aaff9c26d0a3c93dd57f859f3/.github/workflows/build.yaml#L69-L70
However this currently hard-codes the versions of each in the selection logic, which means it can go stale as new versions are added and old ones dropped. Potentially resulting in the build being lost altogether (maybe even silently)
To avoid pinning to a specific version, @ajschmidt8 made several suggestions in this thread: rapidsai/dask-cuda#1294 (comment)
Filing this to track for follow-up
The text was updated successfully, but these errors were encountered: