Skip to content

[CI][ROCm] Check skinny-GEMM guard dispatch without torch.profiler - #64655

Merged
AndreasKaratzas merged 2 commits into
vllm-project:mainfrom
AndreasKaratzas:akaratza_skinny_guard_kernrec
Oct 30, 2026
Merged

AndreasKaratzas merged 2 commits into
vllm-project:mainfrom
AndreasKaratzas:akaratza_skinny_guard_kernrec

Conversation

@AndreasKaratzas

Copy link
Copy Markdown
Member
  • Detect whether rocm_unquantized_gemm_impl took the skinny path by wrapping ops.wvSplitK, instead of reading kernel names from torch.profiler
  • Drop the profiler capture retry loop and the kernel-name matchers that worked around empty captures
  • Check numerics on the same call whose dispatch was asserted, under both caps

The four dispatch tests added in #63179 fail with kernels=[] on the daily Full CI run on MI300 (build 98403, both attempts) but pass on per-commit builds. Only the daily run arms the kernel recorder from vllm-project/ci-infra#685, which registers its own ROCProfiler SDK tool through ROCP_TOOL_LIBRARIES. With that set, the SDK configures only the listed tool. Kineto's rocprofiler_configure in libtorch_cpu.so never registers, and torch.profiler records nothing, not even a plain a @ a. The guard's contract is which branch runs, so the test now checks that directly, regardless of what else is profiling the process.

Validation on MI355X, with the ci-infra recorder built from source and armed the way the daily run arms it:

  • Before: pytest tests/model_executor/layers/test_lmhead_skinny_gemm_guard.py passes 9/9 without the recorder and fails the same 4 tests as CI with it.
  • After: 9/9 passed in 10/10 runs without the recorder, 10/10 with it, and with VLLM_ROCM_USE_AITER=1.
  • Mutation check: removing the guard from the dispatch fails test_n5_big_weight_dispatch[None-False]; removing the n=1 carve-out fails test_n1_big_weight_dispatch_unchanged.
  • Full pytest -v -s model_executor -m '(not slow_test) and (not distributed)' under the recorder: 1403 passed, 90 skipped, 0 failed (same count as per-commit CI).

No open PR touches this test (searched test_lmhead_skinny_gemm_guard, skinny gemm guard, kernrec). MI300 was not available locally; the CI group runs there.

AI assistance (Claude Code) was used to draft this change. Every line was reviewed by the submitter.

The daily Full CI run arms the ci-infra kernel recorder, which registers
its own ROCProfiler SDK tool via ROCP_TOOL_LIBRARIES. kineto then never
registers, torch.profiler records nothing, and the profiler-based
dispatch checks fail with kernels=[]. Spy on ops.wvSplitK instead.

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Andreas Karatzas <akaratza@amd.com>
@mergify mergify Bot added the rocm Related to AMD ROCm label Oct 30, 2026
@github-project-automation github-project-automation Bot moved this to Todo in AMD Oct 30, 2026
@AndreasKaratzas

Copy link
Copy Markdown
Member Author

/ci run

@AndreasKaratzas
AndreasKaratzas marked this pull request as ready for review October 30, 2026 04:42

@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.

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #98564 for commit f96f8a73631a.

@micah-wil micah-wil left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@AndreasKaratzas
AndreasKaratzas merged commit 8730884 into vllm-project:main Oct 30, 2026
26 checks passed
@AndreasKaratzas
AndreasKaratzas deleted the akaratza_skinny_guard_kernrec branch October 30, 2026 05:38
@github-project-automation github-project-automation Bot moved this from Todo to Done in AMD Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rocm Related to AMD ROCm

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants