Skip to content

ci: add an RTX PRO 6000 (SM120) GPU test lane - #7493

Open
dierksen wants to merge 1 commit into
mainfrom
jdierksen/ci-infra-rtx-pro-6000-f04d7e
Open

dierksen wants to merge 1 commit into
mainfrom
jdierksen/ci-infra-rtx-pro-6000-f04d7e

Conversation

@dierksen

@dierksen dierksen commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

📌 Description

This PR adds an RTX PRO 6000 (SM120) GPU lane to PR Test, set up like the H100 lane. It uses the on-demand g7e runner pool added in flashinfer-ai/ci-infra#3, with labels [self-hosted, linux, x64, gpu, rtx-pro-6000, on-demand].

New jobs

  • JIT Unittest (RTX PRO 6000): the full task_run_unit_tests.sh suite on cu130, with a 480-minute timeout (the same as H100).
  • Targeted Unittest (RTX PRO 6000): for @flashinfer-bot run <paths>. Like H100, it takes the requested paths as-is, and tests skip themselves on archs they don't support.

Ways it differs from H100

  • One runner per host. Each g7e instance has a single GPU, so the lane uses the full Docker cleanup that the A10G/T4 lanes use, and runs one test worker per GPU. H100 runs two.
  • cu130 only. The pool's AMI ships a 595 driver, which can't start the cu134 image. cu129 is already covered by the other GPU lanes.
  • Model label, not sm120. It targets the rtx-pro-6000 label so that a future GeForce SM120 pool can't pick up these jobs.

Results

  • JUnit artifacts for the single-lane kinds are now named by kind (junit-h100-*, junit-rtx-pro-6000-*). The A10G/T4 names are unchanged.
  • The summary job downloads the RTX results and passes its run-summary.json to check_skip_all.py together with H100's. A changed test file that runs only on SM120 now counts as executed.

🔍 Related Issues

🚀 Pull Request Checklist

Thank you for contributing to FlashInfer! Before we review your pull request, please make sure the following items are complete.

✅ Pre-commit Checks

  • I have installed pre-commit by running pip install pre-commit (or used your preferred method).
  • I have installed the hooks with pre-commit install.
  • I have run the hooks manually with pre-commit run --all-files and fixed any reported issues. (Ran on the changed file only; all hooks passed.)

If you are unsure about how to set up pre-commit, see the pre-commit documentation.

🧪 Tests

  • Tests have been added or updated as needed.
  • All tests are passing (unittest, etc.).

The step that builds the job list was run locally for both a full run and a targeted run (tests/attention/test_hopper.py). Both produce the RTX PRO 6000 entry with the expected labels, CUDA version and test path. The lane has not yet run on the g7e runners; this PR's own CI run will be its first test.

🔬 Experimental Track

  • This PR is experimental: it adds or changes code under flashinfer/experimental/ and/or an @flashinfer_experimental_api. Tracking issue: #
    • The tracking issue names an owner, the reason for the experimental path, and a graduation plan with a target release.
    • Core changes are limited to a thin entry point (signature, shared validation, feature-gate check, backend selection, handoff).
    • Tests live in tests/experimental/ and were validated on the intended hardware; a runnable example is included.
    • Nothing is registered in flashinfer/aot.py, and no experimental backend is reachable from backend="auto" without FLASHINFER_ALLOW_EXPERIMENTAL_AUTO_BACKENDS=1. (Calling an @flashinfer_experimental_api or naming a backend explicitly is itself the opt-in and needs no environment variable.)
    • Test scope declared below. The experimental CI lane runs exactly these targets, so keep them as narrow as the change allows.
# One target per line: a directory or a file. (A pytest ::selector is not
# supported -- the sharding runner cannot consume one.) Must be under
# tests/experimental/ and must exist. Delete these comment lines and add yours, e.g.
#
#   tests/experimental/test_my_backend.py
#   tests/experimental/my_backend/
#
# Declaring the whole tree (tests/experimental/) is allowed but means every
# experimental PR pays for every other feature's tests, in every matrix cell.

Reviewer Notes

  • The pool is capped at 4 runners for the pilot, and a full SM120 run is expected to take about 5 hours. With this lane on every PR, RTX jobs may queue until the cap is raised in ci-infra.
  • Fail-fast applies across lanes: a failure in any other lane cancels the RTX job, and an RTX failure cancels the others.
  • This branch is on flashinfer-ai rather than a fork so its CI run gets the sccache credentials, and its timings will reflect PR runs.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Expanded automated GPU testing to cover RTX PRO 6000 hardware in full-suite and targeted runs.
    • Updated test-result summaries to include JUnit artifacts and skip information for RTX PRO 6000 and H100 lanes.
    • Non-GPU test lanes now label JUnit artifacts by test matrix type.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ad77a7c9-1817-418b-a779-0c43d9d8a239
Commits

Reviewing files that changed from the base of the PR and between 83afeff and 445ba9a.

Files selected for processing: 1
  • .github/workflows/pr-test.yml

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.

Walkthrough

The PR test workflow adds full-suite and targeted RTX PRO 6000 lanes using CUDA cu130. The summary job downloads the lane’s JUnit artifacts and includes its run summary and JUnit directory in skip-all analysis.

Changes: RTX PRO 6000 CI lanes

Layer / File(s) Summary
Configure full-suite and targeted test lanes
.github/workflows/pr-test.yml
Adds full-suite and targeted RTX PRO 6000 entries using the rtx-pro-6000 runner, CUDA cu130, and task_run_unit_tests.sh. Targeted requests pass through the test runner’s path handling.
Collect and analyze JUnit artifacts
.github/workflows/pr-test.yml
Uses matrix-kind JUnit artifact names for non-gpu lanes. Downloads RTX PRO 6000 artifacts and passes summary and JUnit-directory arguments for RTX PRO 6000 and H100 to skip-all analysis.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Possibly related issues

  • flashinfer-ai/flashinfer#7118: Adds RTX PRO 6000 CI lanes relevant to the issue’s request for validation, but does not change backend dispatch or establish validation of the experimental backend.

Suggested reviewers: alex-ameen

Merge Risk: Minimal · up to 445ba

The workflow contracts align; runner availability remains an ordinary first-run validation concern, not a confirmed merge blocker.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the main change: adding an RTX PRO 6000 GPU test lane to CI.
Description check Passed The description follows the repository template and explains the implementation, related issue, test scope, known limitations, checklist status, and reviewer considerations. It also clearly states tha…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description follows the repository template and explains the implementation, related issue, test scope, known limitations, checklist status, and reviewer considerations. It also clearly states that the new lane has not yet run on g7e runners.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@dierksen

Copy link
Copy Markdown
Collaborator Author

@flashinfer-bot run

@coderabbitai coderabbitai Bot mentioned this pull request Oct 26, 2026
5 tasks done
Add full-suite and targeted RTX PRO 6000 lanes to PR Test, mirroring
the H100 lanes. They run task_run_unit_tests.sh on cu130 on the
on-demand g7e pool from flashinfer-ai/ci-infra#3
([self-hosted, linux, x64, gpu, rtx-pro-6000, on-demand]).

- Each g7e instance has one GPU, so the lane uses the single-runner
  cleanup and one test worker per GPU.
- cu130 only: the pool's 595 driver cannot start the cu134 image, and
  cu129 is covered by the other GPU lanes.
- JUnit artifacts for single-lane kinds are named by kind, and the
  summary job feeds the RTX run-summary.json to the skip-all check
  alongside H100's.

AI-assisted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dierksen
dierksen force-pushed the jdierksen/ci-infra-rtx-pro-6000-f04d7e branch from 83afeff to 445ba9a Compare October 28, 2026 21:33
@dierksen

Copy link
Copy Markdown
Collaborator Author

@flashinfer-bot run

This branch has not been deployed

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants