Skip to content

[Kernel] Reject unsupported layouts in CUTLASS 3.x scaled_mm - #55537

Merged
yewentao256 merged 16 commits into
vllm-project:mainfrom
jackLei0901:fix/cutlass-c3x-leading-strides
Oct 19, 2026
Merged

yewentao256 merged 16 commits into
vllm-project:mainfrom
jackLei0901:fix/cutlass-c3x-leading-strides

Conversation

@jackLei0901

@jackLei0901 jackLei0901 commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Reject unsupported padded operands and misaligned pointers before CUTLASS 3.x scaled-mm dispatch (#55534). Packed inputs and CUTLASS 2.x behavior remain unchanged.

Claims

  • Check A, B and output leading strides and 16-byte pointer alignment, preserving the size-one leading-dimension exception.
  • Update the existing subset regression and select it alongside the existing FP8 tests in B200 CI; the revised diff is +34/-1 across three files, including tests and CI.

Validation

.venv/bin/python -m pytest tests/kernels/quantization/test_cutlass_scaled_mm.py::test_cutlass_subset -v -s 
# main
E       AssertionError: Tensor-likes are not close!
E       
E       Mismatched elements: 159110 / 262144 (60.7%)
E       Greatest absolute difference: 9.75 at index (26, 44) (up to 1.0 allowed)
E       Greatest relative difference: inf at index (155, 233) (up to 0.1 allowed)

tests/kernels/quantization/test_cutlass_scaled_mm.py:592: AssertionError
=============================== warnings summary ===============================
.venv/lib/python3.12/site-packages/torch/jit/_script.py:365: 14 warnings
  /root/autodl-tmp/pr55537-validation-20261011/source/.venv/lib/python3.12/site-packages/torch/jit/_script.py:365: DeprecationWarning: `torch.jit.script_method` is deprecated. Please switch to `torch.compile` or `torch.export`.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/kernels/quantization/test_cutlass_scaled_mm.py::test_cutlass_subset
======================== 1 failed, 14 warnings in 1.40s ========================
# Now
======================== 1 passed, 14 warnings in 1.10s ========================

This PR passes the repro by rejecting the padded input, not by supporting it. Reversing the change reproduced the main failure again; the main-repeat log is included.

Raw command/output logs, including all nine benchmark runs: validation evidence.

H800 PCIe (SM90), torch 2.13.0+cu130. Main at 3e8e1364ff was built from source, including its pinned FlashAttention. The H800 results below validate 5b18e7656c on base 3e8e1364ff, before the source-layout refactor in #60721. The subsequent main merge follows the source rename and updates its two include paths; the operand guard and existing subset regression are unchanged. The new layout has not been built or GPU-tested locally; CUDA CI will be the first build validation of this revision. Only the scaled-mm entry object and stable extension were rebuilt when switching between main and this change; every other native library stayed byte-identical.

Historical H800 validation passed 7 boundary cases (the existing subset case plus 6 dedicated cases), 36 packed/output-dtype/CUDA-graph cases, and 11 offline INT8/AZP/size-one/pointer cases. The six dedicated cases were removed from the committed tests at yewentao256's request; their raw logs remain in the linked gist. Every serving run logged Selected CutlassFP8ScaledMMLinearKernel. Only SM90 was tested locally. The B200 selector is now -k 'fp8 or cutlass_subset': it retains the existing FP8 tests and adds the one existing subset regression. This CI result is pending.

Accuracy command and raw lm_eval output

The server command was the same on main and this PR:

vllm serve /root/autodl-tmp/models/Meta-Llama-3-8B-Instruct --served-model-name contract-fp8 --quantization fp8 --dtype bfloat16 --tensor-parallel-size 1 --max-model-len 8192 --gpu-memory-utilization 0.85 --seed 42 --host 127.0.0.1 --port 9256
.venv/bin/python -m lm_eval --model local-completions --model_args base_url=http://127.0.0.1:9256/v1/completions\,model=contract-fp8\,tokenizer=/root/autodl-tmp/models/Meta-Llama-3-8B-Instruct\,num_concurrent=64 --tasks gsm8k --num_fewshot 5 --gen_kwargs temperature=0\,max_gen_toks=512 --seed 42 --log_samples --output_path /root/autodl-tmp/pr55537-validation-20261011/results/main/accuracy 
# main
|Tasks|Version|     Filter     |n-shot|  Metric   |   |Value |   |Stderr|
|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:|
|gsm8k|      3|flexible-extract|     5|exact_match|↑  |0.7475|±  | 0.012|
|     |       |strict-match    |     5|exact_match|↑  |0.7460|±  | 0.012|
# Now
|Tasks|Version|     Filter     |n-shot|  Metric   |   |Value |   |Stderr|
|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:|
|gsm8k|      3|flexible-extract|     5|exact_match|↑  |0.7475|±  | 0.012|
|     |       |strict-match    |     5|exact_match|↑  |0.7460|±  | 0.012|

The output directory changed between main and this PR; all other evaluation arguments stayed fixed. All 1,319 GSM8K examples completed. The full sample JSONL files were byte-identical (SHA-256 08078a7d51736f125add194b827000344c7c6fc5a1bef0a3ca21aa1cbbbc0e0d); the large sample files are retained privately. The API harness used its default 2,047-token context limit.

Benchmark command and raw output from repetition 2

Three repetitions were run on main, then this PR, then main again. All nine command/output logs are included. The first repetition in each group was slower (about 3.0k output tok/s); later repetitions were 6.47-6.66k tok/s. The cause of this warm-state difference was not isolated. Corresponding repetition 2 outputs are shown here; these are not a speedup claim. Benchmark sampling temperature was not explicitly set.

.venv/bin/vllm bench serve --model /root/autodl-tmp/models/Meta-Llama-3-8B-Instruct --served-model-name contract-fp8 --dataset-name random --host 127.0.0.1 --port 9256 --random-input-len 1024 --random-output-len 128 --request-rate inf --num-prompts 128 --num-warmups 16 --seed 42 
# main (repetition 2)
============ Serving Benchmark Result ============
Successful requests:                     128       
Failed requests:                         0         
Benchmark duration (s):                  2.48      
Total input tokens:                      131072    
Total generated tokens:                  16384     
Request throughput (req/s):              51.69     
Output token throughput (tok/s):         6616.12   
Peak output token throughput (tok/s):    7552.00   
Peak concurrent requests:                128.00    
Total token throughput (tok/s):          59545.12  
---------------Time to First Token----------------
Mean TTFT (ms):                          264.56    
Median TTFT (ms):                        251.26    
P99 TTFT (ms):                           472.46    
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          16.20     
Median TPOT (ms):                        16.24     
P99 TPOT (ms):                           16.44     
---------------Inter-token Latency----------------
Mean ITL (ms):                           16.20     
Median ITL (ms):                         16.88     
P99 ITL (ms):                            20.96     
==================================================
# Now (repetition 2)
============ Serving Benchmark Result ============
Successful requests:                     128       
Failed requests:                         0         
Benchmark duration (s):                  2.50      
Total input tokens:                      131072    
Total generated tokens:                  16384     
Request throughput (req/s):              51.22     
Output token throughput (tok/s):         6556.76   
Peak output token throughput (tok/s):    7552.00   
Peak concurrent requests:                128.00    
Total token throughput (tok/s):          59010.88  
---------------Time to First Token----------------
Mean TTFT (ms):                          281.78    
Median TTFT (ms):                        270.78    
P99 TTFT (ms):                           492.78    
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          16.14     
Median TPOT (ms):                        16.18     
P99 TPOT (ms):                           16.36     
---------------Inter-token Latency----------------
Mean ITL (ms):                           16.14     
Median ITL (ms):                         16.95     
P99 ITL (ms):                            18.03     
==================================================

Details

C3x callers reconstruct packed strides from shapes, so incompatible operands can silently address the wrong elements. This change rejects them at dispatch rather than adding stride support. No current in-tree serving caller requiring padded operands has been identified; the model runs check normal packed serving for regressions.

This revises the existing #55537, not a parallel fix. #56248 and #56659 remain open stride-support alternatives. The author closed #56480 on October 8 because its SM100 stride support conflicts with this shared reject-only contract; that is not a maintainer approval of this PR. The architecture-wide contract still needs agreement. INT8/AZP/size-one cases removed from the committed test matrix remain in the offline evidence; the implementation still checks those inputs.

AI assistance was used for diagnosis, patch preparation, validation and this description.


Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).
  • AI assistance was used during the creation of this PR.
  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.
  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.
  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.
  • Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

BEFORE SUBMITTING, PLEASE READ https://docs.vllm.ai/en/latest/contributing (anything written below this line will be removed by GitHub Actions)

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@coderabbitai

coderabbitai Bot commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: 37a6d014-6c3c-4686-9f3d-df3142f8bc46

📥 Commits

Reviewing files that changed from the base of the PR and between 108463797f3e3ec88465136ca79ce55bcbdecc7a and 20917ae2164efe6e9b20aacd66c9f0ed6388e15e.

📒 Files selected for processing (4)
  • csrc/libtorch_stable/quantization/w8a8/cutlass/c3x/cutlass_gemm_caller.cuh
  • csrc/libtorch_stable/quantization/w8a8/cutlass/c3x/scaled_mm_sm90_fp8_dispatch.cuh
  • csrc/libtorch_stable/quantization/w8a8/cutlass/scaled_mm_entry.cu
  • tests/kernels/quantization/test_cutlass_scaled_mm.py

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

The CUTLASS 3.x scaled matrix multiplication callers now preserve runtime leading strides for supported padded views. Entry points validate A-stride alignment. Tests cover int8, FP8, strided views, and invalid alignment.

Changes

CUTLASS stride propagation

Layer / File(s) Summary
Forward runtime leading strides
csrc/libtorch_stable/quantization/w8a8/cutlass/c3x/cutlass_gemm_caller.cuh, csrc/libtorch_stable/quantization/w8a8/cutlass/c3x/scaled_mm_sm90_fp8_dispatch.cuh
The callers forward runtime leading strides for A, B, C, and D. The SM90 FP8 path selects the correct output stride component when swap_ab is enabled.
Validate aligned input layouts
csrc/libtorch_stable/quantization/w8a8/cutlass/scaled_mm_entry.cu
cutlass_scaled_mm and cutlass_scaled_mm_azp require the A leading stride to be 16-byte aligned.
Validate strided subsets
tests/kernels/quantization/test_cutlass_scaled_mm.py
Parameterized tests cover int8 and FP8 inputs, padded A, B, and output views, and rejection of misaligned A strides.

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

Sequence Diagram(s)

sequenceDiagram
  participant Test
  participant ScaledMMEntry
  participant GEMMCaller
  participant CUTLASS
  Test->>ScaledMMEntry: submit aligned or padded tensors
  ScaledMMEntry->>ScaledMMEntry: validate A, B, and output strides
  ScaledMMEntry->>GEMMCaller: dispatch scaled matrix multiplication
  GEMMCaller->>CUTLASS: pass runtime leading strides
  CUTLASS-->>Test: write strided output
Loading
Merge Risk: ⚪ Minimal · up to 20917

This change fixes incorrect scaled GEMM addressing for supported padded tensor views while retaining packed-layout behavior and adds targeted regression coverage. No merge-blocking risk remains.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 2 files. (2 skipped: 2 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Linked Issues check Passed The PR satisfies the addressed requirements in issue #55534: it forwards runtime leading strides for the common C3x and SM90 FP8 callers, handles swap_ab output strides, preserves packed layouts witho…
Out of Scope Changes check Passed All changes support the linked issue. The A-stride validation and regression tests directly enforce and verify CUTLASS alignment requirements; no unrelated code changes are present.
Title check Passed The title describes the added rejection of unsupported or misaligned layouts, which is part of the changes, but it does not capture the main objective of forwarding runtime strides for padded tensor v…
Description check Passed The description is directly related to the CUTLASS 3.x scaled_mm stride handling, validation checks, tests, and benchmark results.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 2 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

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.

@jackLei0901
jackLei0901 force-pushed the fix/cutlass-c3x-leading-strides branch from 1084637 to 20917ae Compare September 6, 2026 08:44
@jackLei0901 jackLei0901 changed the title [Kernel] Honor leading strides in CUTLASS 3.x scaled_mm [Kernel] Honor leading strides in SM90 tensorwise CUTLASS scaled_mm Sep 6, 2026
Comment thread csrc/libtorch_stable/quantization/w8a8/cutlass/scaled_mm_entry.cu Outdated
Comment thread csrc/libtorch_stable/quantization/w8a8/cutlass/scaled_mm_entry.cu Outdated
Comment thread tests/kernels/quantization/test_cutlass_scaled_mm.py Outdated
@jackLei0901

Copy link
Copy Markdown
Contributor Author

@mgoin @tlrmchlsmth, could one of you please take a look at this PR when convenient?
@liulanze’s three review findings—raw pointer alignment, overlapping leading dimensions, and architecture-specific test gating—have all been addressed, with the corresponding threads resolved.
The current head is mergeable and the diff is frozen. Validation on H800/SM90 includes:

  • focused regression suite: 22 passed;
  • full CUTLASS scaled-mm suite: 688 passed, 54 skipped;
  • paired bitwise comparison: all 30 cases equal;
  • repository-pinned ruff, formatting, typos, clang-format, mypy, and git diff --check: passed.
    The scope remains intentionally limited to the validated tensorwise C3x/SM90 paths; SM100 and blockwise callers remain tracked in [Bug]: CUTLASS 3.x scaled_mm ignores leading strides of sliced tensors #55534.
    If the direction looks appropriate, could you provide a code-owner review or enable CI?

Assisted-by: OpenAI Codex <codex@openai.com>
Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901
jackLei0901 force-pushed the fix/cutlass-c3x-leading-strides branch from 4c9d129 to 7b054ac Compare September 21, 2026 16:57
@mergify mergify Bot added the ci/build label Sep 21, 2026
@jackLei0901 jackLei0901 changed the title [Kernel] Honor leading strides in SM90 tensorwise CUTLASS scaled_mm [Kernel] Reject unsupported layouts in CUTLASS 3.x scaled_mm Sep 21, 2026
@jackLei0901

Copy link
Copy Markdown
Contributor Author

@tlrmchlsmth Following our Slack discussion, I rewrote this PR around the reject-only contract and force-pushed the revised version as a single commit (7b054ac).
The new implementation rejects non-packed leading dimensions and misaligned pointers at the CUTLASS 3.x scaled_mm and scaled_mm_azp dispatch sites, while leaving CUTLASS 2.x behavior unchanged. It adds focused contract coverage and wires the tests into the B200 CI shard. The final files were also built and tested on H800/SM90: all 12 contract cases and 32 existing packed-layout regression cases passed.
The updated description documents the direction change and the overlap with #56248, #56480, and #56659. Could you please take another look at the revised implementation?
The current pre-run-check failure is the contributor label gate (ready / verified / ready-run-all-tests), not the change itself—it also blocks the Buildkite build, so B200 coverage has not run yet.

@ptimizeroracle

Copy link
Copy Markdown

i read the revised contract in #55537. it changes the integration plan for #56480: the shared entry guard would reject its sm100 padded-layout cases before they reach the callers, so a rebase would not make the two approaches work together

my b300 runs show the sm100 callers can honor padded strides, including a deliberately padded qwen weight view. i haven't found an in-tree serving path that needs that layout. @tlrmchlsmth is reject-only the intended contract for sm100 too? if so i'll close #56480 and keep the regression evidence available. holding off on rebase and more gpu work meanwhile

Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94797 for commit a4a6bcf50398.

@jackLei0901

Copy link
Copy Markdown
Contributor Author

@yewentao256, a quick update on 94797 (a4a6bcf): all three B200 kernel shards passed, including test_cutlass_subset. The earlier failures have cleared.
Three failures remain: test_deepseek_v41_mxfp8_scale_loading still patches an import removed by #57797, and the Kimi metadata test is missing dtype after #60645 (fix in #61650). Both follow changes merged from main. The DP-supervisor test also exceeded its 5-second shutdown wait; that may be timing-related.
Five L4 jobs are still reserved without an assigned agent, so the build hasn’t fully finished. I haven’t queued another retry.

Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #95028 for commit de68d85ce211.

@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 2 failed job(s) for retry in Buildkite CI #95028.

@jackLei0901

Copy link
Copy Markdown
Contributor Author

@yewentao256, a quick update on 94797 (a4a6bcf): all three B200 kernel shards passed, including test_cutlass_subset. The earlier failures have cleared. Three failures remain: test_deepseek_v41_mxfp8_scale_loading still patches an import removed by #57797, and the Kimi metadata test is missing dtype after #60645 (fix in #61650). Both follow changes merged from main. The DP-supervisor test also exceeded its 5-second shutdown wait; that may be timing-related. Five L4 jobs are still reserved without an assigned agent, so the build hasn’t fully finished. I haven’t queued another retry.

A final update on build 95028 (de68d85): build 95028 on de68d85 has finished. All three B200 kernel shards passed, the queued jobs completed successfully, and MI355 mono-decode passed on retry.
H200 Quantization 4/4 is the only remaining failure. Both attempts crashed in hadacore::hadamard_transform_kernel during the same INT4 KV-cache test. I also found the same crash on another runner in build 95120 for #61817, which only changes CI YAML. It also appears in #61689’s build 95010, so it occurs without this PR’s guard.
I haven’t established the root cause and won’t queue more retries or update the branch for now. Does this remaining failure need to be resolved before merging?

@yewentao256
yewentao256 enabled auto-merge (squash) October 17, 2026 18:35
@yewentao256

Copy link
Copy Markdown
Member

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 1 failed job(s) for retry in Buildkite CI #95028.

@jackLei0901

jackLei0901 commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor Author

Update: the retry hit the same hadacore MMU fault. I merged main in b1fd28c to pick up #61944 and started a new CI run.

Bring in the upstream hadacore partial-warp fix. The CUTLASS guard and subset regression are unchanged. No new local GPU validation was run; validation of the updated base is pending CI.

Assisted-by: OpenAI Codex
Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci run --allow-stale

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #95613 for commit b1fd28c1d618.

⚠️ This PR is 1 commit behind upstream main. Running CI at your own risk because --allow-stale was requested; outdated CI configuration may cause failures. Before merging, merge or rebase onto the latest main, then rerun /ci run on the latest PR commit.

@jackLei0901

Copy link
Copy Markdown
Contributor Author

Update: the retry hit the same hadacore MMU fault. I merged main in b1fd28c to pick up #61944 and started a new CI run.

@yewentao256 Build 95613 (b1fd28c) has finished. All three B200 kernel shards and all four H200 quantization shards passed, including the previously failing hadacore test.
The three failing jobs also fail on main: the two Rust frontend version checks (fix in vllm-project/vllm#62214) and the MI355 aiter sampler test (fix in vllm-project/vllm#62198 / vllm-project/vllm#62213).
I’ll leave the branch unchanged for now. Would you prefer that I wait for those fixes to land, then merge main and rerun CI?

…roject#62221

Assisted-by: OpenAI Codex
Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #95695 for commit 9d8986899480.

@yewentao256

Copy link
Copy Markdown
Member

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #95726 for commit 5e56514014df.

@jackLei0901

Copy link
Copy Markdown
Contributor Author

@yewentao256 Thanks for updating the branch and rerunning CI! 95726 is done. All three B200 kernel shards, all four H200 quantization shards, the Rust frontend jobs and the MI355 sampler job passed.
13 jobs failed:

  • Nine AMD jobs hit the missing batch_invariant option. [Bugfix][ROCm] Only set inductor batch_invariant when torch has it #62274 addresses that but hasn’t merged yet.
  • Two MoRIIO shards hit the same P/D log-prob mismatch seen on main in 95663.
  • H200 KV-offload scored 0.44 on the first pass and 0.395 on the second, below the 0.40 floor.
  • MI355 DP+EP aborted with SIGABRT.
    KV-offload and DP+EP both passed in 95695. An older main run, 88554, also hit 0.395, though on the first pass rather than the second.
    I’ll leave the branch as is and won’t queue another rerun.

Include vllm-project#62274, vllm-project#62280, vllm-project#62286 and vllm-project#62241. The CUTLASS PR diff is unchanged; updated-base runtime validation is left to CI.

Assisted-by: OpenAI Codex
Signed-off-by: jackLei0901 <42642542+jackLei0901@users.noreply.github.com>
@jackLei0901

Copy link
Copy Markdown
Contributor Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #95816 for commit 3deba467b655.

@yewentao256
yewentao256 merged commit bbf59fb into vllm-project:main Oct 19, 2026
499 checks passed
@github-project-automation github-project-automation Bot moved this from Ready to Done in NVIDIA Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build nvidia ready ONLY add when PR is ready to merge/full CI is needed

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants