Skip to content

[cuda.compute]: Add tests that depend on the system CTK instead of a pip installed one - #10500

Merged
NaderAlAwar merged 10 commits into
NVIDIA:mainfrom
NaderAlAwar:add-sysctk-ci-testing
Aug 3, 2026
Merged

[cuda.compute]: Add tests that depend on the system CTK instead of a pip installed one#10500
NaderAlAwar merged 10 commits into
NVIDIA:mainfrom
NaderAlAwar:add-sysctk-ci-testing

Conversation

@NaderAlAwar

Copy link
Copy Markdown
Contributor

Description

closes #10060

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@NaderAlAwar
NaderAlAwar requested review from a team as code owners July 27, 2026 17:27
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jul 27, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jul 27, 2026
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Added configurable CUDA toolkit modes for pinned, latest, and system-provided toolkits across Python and Windows CI workflows.
    • Added free-threaded Python test coverage across multiple CUDA toolkit versions.
    • Added system-toolkit dependency options for CUDA 12 and CUDA 13 environments.
  • Bug Fixes
    • Improved dependency selection so tests install packages matching the selected toolkit mode.
    • Added validation for unsupported or empty toolkit mode values.

Walkthrough

Changes

The CI matrix now defines pinned, latest, and sysctk toolkit modes. Workflow generation forwards the mode to Unix and Windows tests. Test scripts select matching toolkit constraints and cuda_cccl extras. Sysctk package extras no longer request pip CUDA toolkit variants.

Python CTK modes

Layer / File(s) Summary
Matrix mode propagation
.github/actions/workflow-build/build-workflow.py, ci/matrix.yaml
Matrix entries define latest and sysctk lanes. Dispatch names and commands include py_ctk_mode. Two-stage producers remove this consumer-only tag.
CTK mode contracts and helpers
ci/util/python/common_arg_parser.sh, ci/pyenv_helper.sh, ci/windows/build_common_python.psm1
Argument parsing, toolkit pinning, mode validation, and pip-extra flavor mapping now use explicit CTK modes.
Unix test dependency selection
ci/test_cuda_*_python.sh
Unix tests pass ctk_mode to toolkit setup and install mode-specific cuda_cccl extras.
Windows test wiring and sysctk extras
ci/windows/test_cuda_*_python.ps1, python/cuda_cccl/pyproject.toml
Windows tests accept ctk-mode and select matching extras. sysctk12 and sysctk13 use plain numba-cuda.

Assessment against linked issues

Objective Addressed Explanation
Add CI jobs for sysctk and minimal-sysctk extras, and use system-toolkit dependency selection [#10060]
Remove [cu12] and [cu13] from the sysctk dependency definitions [#10060]

Suggested reviewers: wmaxey


Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
ci/test_cuda_cccl_examples_python.sh (1)

31-32: 🩺 Stability & Availability | 🔵 Trivial

suggestion: Run the targeted pinned, latest, and sysctk lanes, including the corresponding minimal/header/compute jobs, and run pre-commit run --all-files; no GPU/Windows validation results are included here. As per coding guidelines, changes must be validated with relevant builds/tests and pre-commit; as per path instructions, CI scripts should use targeted build/test behavior.

Sources: Coding guidelines, Path instructions


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 734bfd9a-f2a5-4d2d-92aa-b0ec6a938e40

📥 Commits

Reviewing files that changed from the base of the PR and between 2cb708a and 82914ca.

📒 Files selected for processing (14)
  • .github/actions/workflow-build/build-workflow.py
  • ci/matrix.yaml
  • ci/pyenv_helper.sh
  • ci/test_cuda_cccl_examples_python.sh
  • ci/test_cuda_cccl_headers_python.sh
  • ci/test_cuda_compute_minimal_python.sh
  • ci/test_cuda_compute_python.sh
  • ci/util/python/common_arg_parser.sh
  • ci/windows/build_common_python.psm1
  • ci/windows/test_cuda_cccl_examples_python.ps1
  • ci/windows/test_cuda_cccl_headers_python.ps1
  • ci/windows/test_cuda_compute_minimal_python.ps1
  • ci/windows/test_cuda_compute_python.ps1
  • python/cuda_cccl/pyproject.toml

Comment thread ci/util/python/common_arg_parser.sh
Comment thread ci/test_cuda_compute_python.sh
@github-actions

This comment has been minimized.

@NaderAlAwar
NaderAlAwar force-pushed the add-sysctk-ci-testing branch from 848ff7c to 2a1a460 Compare July 28, 2026 00:26
@NaderAlAwar

Copy link
Copy Markdown
Contributor Author

/ok to test d903dc4

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
ci/matrix.yaml (1)

149-150: 🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

important: The global exclusion at Lines 451-452 removes every test job with msvc2022, so the full sysctk rows create no Windows coverage. The test_py_compute_minimal rows are not excluded and still request gpu: 'l4', although the matrix states that Windows GPU runners are unavailable. Use a Windows GPU-capable lane, or remove the unsupported Windows combinations. Apply the same platform rule to both full and minimal sysctk jobs.

  • ci/matrix.yaml#L149-L150: Correct the pull-request sysctk Windows lane behavior.
  • ci/matrix.yaml#L295-L296: Correct the nightly sysctk Windows lane behavior.
  • ci/matrix.yaml#L392-L393: Correct the weekly sysctk Windows lane behavior.

As per path instructions, focus on matrix correctness and GPU availability assumptions.

Source: Path instructions


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2c78a346-3dcb-4d73-98a5-4ebd20f46fb0

📥 Commits

Reviewing files that changed from the base of the PR and between 848ff7c and d903dc4.

📒 Files selected for processing (1)
  • ci/matrix.yaml

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

⏱️ CCCL compile-time benchmark comparison: Public headers compile-time bench

Result: 1 regression row(s), 10 improvement row(s) above threshold.

Run Value
Config public-headers-gcc13
Baseline origin/main
Preset all-dev
Targets cub.headers.base, thrust.cpp.cuda.headers.base, libcudacxx.test.public_headers
GPU / launch args rtx2080 / --cuda 13.3 --host gcc13

Artifacts: reports and traces

TU total compilation

-f total-compilation inclusive --sort total

🟢 TU total compilation — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 3.966160 -3.966160 13.315969 9.349809 Total Compilation Time: thrust/fill.h 1
2 3.427344 -3.427344 17.655111 14.227767 Total Compilation Time: thrust/device_vector.h 1
3 3.188338 -3.188338 19.081187 15.892849 Total Compilation Time: cub/cub.cuh 1
4 3.055851 -3.055851 11.009715 7.953864 Total Compilation Time: cub/device/dispatch/dispatch_select_if.cuh 1

Direct file processing

-f file-processing exclusive --sort total

🔴 Direct file processing — Regressions
Rank Regression impact Selected Δ Baseline Current Event Matched traces
1 1.053958 1.053958 21.197551 22.251509 Processing Header File: libcudacxx/include/cuda/__device/physical_device.h 94
🟢 Direct file processing — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 1.255461 -1.255461 9.962178 8.706717 Processing Header File: libcudacxx/include/cuda/std/__cccl/prologue.h 548
2 0.622186 -0.622186 3.654748 3.032562 Processing Header File: libcudacxx/include/cuda/std/__cccl/epilogue.h 548
3 0.393773 -0.393773 11.872543 11.478770 Processing Header File: libcudacxx/include/cuda/std/__iterator/concepts.h 436
4 0.236856 -0.236856 3.329322 3.092466 Processing Header File: libcudacxx/include/cuda/std/__ranges/concepts.h 404
5 0.229529 -0.229529 0.558630 0.329101 Processing Header File: libcudacxx/include/cuda/__memory_resource/any_resource.h 6
6 0.209039 -0.209039 1.778567 1.569528 Processing Header File: libcudacxx/include/cuda/std/__limits/numeric_limits_ext.h 407

@github-actions

This comment has been minimized.

@NaderAlAwar
NaderAlAwar enabled auto-merge (squash) August 3, 2026 19:02
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🥳 CI Workflow Results

🟩 Finished in 7h 40m: Pass: 100%/534 | Total: 17d 14h | Max: 2h 37m | Hits: 35%/1944623

See results here.

@NaderAlAwar
NaderAlAwar merged commit fd8c64e into NVIDIA:main Aug 3, 2026
1229 of 1232 checks passed
davebayer pushed a commit to davebayer/cccl that referenced this pull request Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[cuda.compute]: add CI jobs that test the sysctk and minimal-sysctk extras

4 participants