Skip to content

Fix automatic sharding for standalone AMD jobs and selected tests - #871

Merged
khluu merged 1 commit into
mainfrom
codex/fix-native-amd-sharding
Oct 29, 2026
Merged

khluu merged 1 commit into
mainfrom
codex/fix-native-amd-sharding

Conversation

@khluu

@khluu khluu commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Overview

Standalone AMD jobs return from the generator before automatic sharding is applied. Also, an explicitly selected parametrized test is always kept whole, even when the exact command has per-test timings. Together these prevent the two AMD fusion jobs in vllm-project/vllm#64181 from splitting.

Route standalone native AMD jobs through the existing planner and allow selected tests to split when timings match the exact command. Keep the original pytest arguments, explicit parallelism, and unsupported-runtime exclusions.

Validation

  • Pipeline generator suite: 428 passed (python -m pytest buildkite/tests/pipeline_generator -q, run with the existing virtual environment).
  • New regressions failed before the fixes. The subprocess pytest check confirms selected parametrized cases run exactly once across shards, with the original node ID and keyword filter; an unselected failing test never runs.
  • GPU validation at this PR's exact head: Buildkite #98259, using vLLM PR #64181 head 124170fbf4daf8d9433dad22bf1a9e7f5a7565e2. All six test jobs passed.
    • Dynamo fusion: 16m14s / 16m24s, total 32m37s versus 31m12s on main #98037 (allowed 35m12s).
    • Inductor fusion: 16m21s / 16m06s, total 32m27s versus 31m19s on main #98037 (allowed 35m19s).
    • MiniMax: 20m21s / 2m28s, total 22m48s versus 20m46s on main #98037. Total cost passes, but the slow shard exceeds 20 minutes. The enrollment batch is therefore not ready under the requested timing rule; this routing fix does not guarantee every job meets it.
  • Focused Ruff E4/E7/E9/F checks and git diff --check passed. Broader Ruff rules report pre-existing findings; unrelated formatting was excluded.

Scope and review

This is a prerequisite for part of vllm-project/vllm#64181, not a claim that the whole enrollment batch is ready. Script-based jobs, pooling overhead, and the indivisible DeepSeek evaluation remain separate work.

Searched open ci-infra sharding PRs; #855 changes timing terminology and #825 fixes plugin import paths, neither addresses these execution paths. No duplicate fix found.

AI assistance: Codex prepared this change and ran the local checks. Human review is pending; measured GPU timing limitations are documented above. No model behavior or evaluation thresholds change.

Co-authored-by: Codex <noreply@openai.com>

Signed-off-by: khluu <khluu000@gmail.com>
@khluu
khluu marked this pull request as ready for review October 29, 2026 21:45
@AndreasKaratzas

Copy link
Copy Markdown
Member

Agent said that "It silently turns MI300 Model Executor (amd-model-executor) from 1 job into 4 shards on every vLLM build, and that has never run on GPU" and that this particularly sharding layout has not been tested yet, but I think that this is exactly what this PR is trying to do 😅

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants