Skip to content

[cuda.compute]: add CI job for minimal cuda-cccl extra#9434

Open
NaderAlAwar wants to merge 8 commits into
NVIDIA:mainfrom
NaderAlAwar:test-minimal-cuda-cccl-extra
Open

[cuda.compute]: add CI job for minimal cuda-cccl extra#9434
NaderAlAwar wants to merge 8 commits into
NVIDIA:mainfrom
NaderAlAwar:test-minimal-cuda-cccl-extra

Conversation

@NaderAlAwar

Copy link
Copy Markdown
Contributor

Description

closes #9433

This also decouples our tests from numba.cuda further since minimal does not install that package. We do this by switching to CuPy and cuda.core where necessary. Also, this ensures that each algorithm has at least one test that can run with the minimal extra

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 June 12, 2026 21:26
@NaderAlAwar NaderAlAwar requested a review from jrhemstad June 12, 2026 21:26
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jun 12, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jun 12, 2026
@coderabbitai

coderabbitai Bot commented Jun 12, 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

important:

Walkthrough

Adds a minimal Python CI job and runner script; applies no_numba markers and guarded imports across many compute tests; converts device memory movement to CuPy and switches compute-capability probes to cuda.core.Device(); and adds RawOp-based minimal tests for select and three-way-partition.

Changes

Python compute minimal CI and test execution path

Layer / File(s) Summary
Minimal CI job wiring and runner script
ci/matrix.yaml, ci/test_cuda_compute_minimal_python.sh
Adds a PR matrix/job test_py_compute_minimal and a script that prepares Python, resolves/installs the minimal wheel with CuPy/pytest, and runs the compute test subset with conditional marker selection.
No-numba markers and import guards
python/cuda_cccl/tests/compute/*
Applies pytest.mark.no_numba at module or per-test level, moves eager numba imports into guarded branches or pytest.importorskip, and reduces the no-numba module to a fast-fail import test.
CuPy device buffers and Device capability queries
python/cuda_cccl/tests/compute/*
Replaces numba.cuda.to_device/copy_to_host with cp.asarray/.get() and cp.empty, and switches compute-capability checks to cuda.core.Device().compute_capability across sorts/reduce/scan/unique/zip/iterators tests.
RawOp minimal predicate tests
python/cuda_cccl/tests/compute/test_select.py, test_three_way_partition.py
Adds inline C++ compile helpers and RawOp predicates plus minimal tests exercising cuda.compute.select and cuda.compute.three_way_partition with explicit CuPy buffers.
Binary-search test adjustment
python/cuda_cccl/tests/compute/test_binary_search.py
Marks the explicit OpKind.LESS comparator test with @pytest.mark.no_numba.

Assessment against linked issues

Objective Addressed Explanation
Add CI job for minimal cuda-cccl extra [#9433]

Suggested reviewers

  • jrhemstad
  • davebayer
  • miscco

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

@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: 2

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

22-23: 📐 Maintainability & Code Quality | ⚡ Quick win

suggestion: Line 22 and Line 23 hardcode /home/coder/cccl even though repo_root is already available; use ${repo_root} for artifact download and wheelhouse_dir to avoid CI workspace-path coupling.

As per coding guidelines, ci/**/* should focus on environment setup and clear failures; removing hardcoded workspace paths improves that reliability.

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7f0b31eb-d63b-4174-870b-b82feb8faae3

📥 Commits

Reviewing files that changed from the base of the PR and between 809e315 and 230bfad.

📒 Files selected for processing (26)
  • ci/matrix.yaml
  • ci/test_cuda_compute_minimal_python.sh
  • python/cuda_cccl/cuda/compute/algorithms/_binary_search.py
  • python/cuda_cccl/tests/compute/test_binary_search.py
  • python/cuda_cccl/tests/compute/test_bindings.py
  • python/cuda_cccl/tests/compute/test_deferred_annotations.py
  • python/cuda_cccl/tests/compute/test_func_caching.py
  • python/cuda_cccl/tests/compute/test_histogram.py
  • python/cuda_cccl/tests/compute/test_iterators.py
  • python/cuda_cccl/tests/compute/test_merge_sort.py
  • python/cuda_cccl/tests/compute/test_nested_struct.py
  • python/cuda_cccl/tests/compute/test_no_numba.py
  • python/cuda_cccl/tests/compute/test_permutation_iterator.py
  • python/cuda_cccl/tests/compute/test_radix_sort.py
  • python/cuda_cccl/tests/compute/test_reduce.py
  • python/cuda_cccl/tests/compute/test_scan.py
  • python/cuda_cccl/tests/compute/test_segmented_reduce.py
  • python/cuda_cccl/tests/compute/test_segmented_sort.py
  • python/cuda_cccl/tests/compute/test_select.py
  • python/cuda_cccl/tests/compute/test_shuffle_iterator.py
  • python/cuda_cccl/tests/compute/test_struct_field_validation.py
  • python/cuda_cccl/tests/compute/test_three_way_partition.py
  • python/cuda_cccl/tests/compute/test_transform.py
  • python/cuda_cccl/tests/compute/test_unique_by_key.py
  • python/cuda_cccl/tests/compute/test_void_ptr_wrapper_validation.py
  • python/cuda_cccl/tests/compute/test_zip_iterator.py

Comment thread python/cuda_cccl/tests/compute/test_binary_search.py
Comment thread python/cuda_cccl/tests/compute/test_three_way_partition.py
@NaderAlAwar

Copy link
Copy Markdown
Contributor Author

pre-commit.ci autofix

@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


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6ed5e7f1-eb57-4e74-9b43-32332ab11d65

📥 Commits

Reviewing files that changed from the base of the PR and between c564d3e and dd27462.

📒 Files selected for processing (1)
  • python/cuda_cccl/tests/compute/test_binary_search.py

Comment thread python/cuda_cccl/tests/compute/test_binary_search.py Outdated
@NaderAlAwar

Copy link
Copy Markdown
Contributor Author

pre-commit.ci autofix

@NaderAlAwar

Copy link
Copy Markdown
Contributor Author

/ok to test c2e7c01

@copy-pr-bot

copy-pr-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

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.

@NaderAlAwar

Copy link
Copy Markdown
Contributor Author

/ok to test b09c9c6

@github-actions

Copy link
Copy Markdown
Contributor

😬 CI Workflow Results

🟥 Finished in 2h 29m: Pass: 96%/504 | Total: 4d 09h | Max: 51m 30s | Hits: 95%/667616

See results here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

[cuda.compute]: add CI job for minimal cuda-cccl extra

1 participant