Skip to content

Honor mirror.amd.parallelism so NVIDIA sharding cannot multiply AMD mirrors - #473

Draft
khluu wants to merge 1 commit into
mainfrom
amd-mirror-parallelism-override
Draft

Honor mirror.amd.parallelism so NVIDIA sharding cannot multiply AMD mirrors#473
khluu wants to merge 1 commit into
mainfrom
amd-mirror-parallelism-override

Conversation

@khluu

@khluu khluu commented Aug 14, 2026

Copy link
Copy Markdown
Member

What

The AMD mirror step always inherited step.parallelism. Sharding an NVIDIA job with parallelism: N therefore scheduled N copies of its AMD mirror, and mirrors with custom unsharded commands would run their full suite N times.

mirror.amd.parallelism now overrides the inherited value when set. Unset mirrors keep the inherited behavior, so every existing job renders identically.

Why

Prerequisite for sharding NVIDIA jobs that carry AMD mirrors (e.g. language-models-test-extended-pooling, vllm-project/vllm#52322) without changing AMD scheduling. The mirrored job can then declare NVIDIA parallelism: 4 with mirror.amd.parallelism: 1.

Testing

  • New parametrized regression test_amd_mirror_parallelism_override covering inherit (unset -> parent value), override to 1, and independent override to 2, on a pooling-shaped mirror with a custom unsharded AMD command (asserts the AMD command stays unsharded).
  • Full generator suite: 75/75 pass.

AI assistance was used for this change.

🤖 Generated with Claude Code

…irrors

The AMD mirror step previously always inherited step.parallelism, so
sharding an NVIDIA job with parallelism: N scheduled N copies of its AMD
mirror, and mirrors with custom unsharded commands would run the full
suite N times. mirror.amd.parallelism now overrides when set; unset
mirrors keep the inherited behavior for every existing job.

Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
khluu added a commit to vllm-project/vllm that referenced this pull request Sep 1, 2026
…roups

Split hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (~45.7m wall in
build 83851) into parallelism: 3 via a new opt-in CONFIG_INDICES env in
config_sweep_accuracy_test.sh that selects configs from the chosen array
by zero-based index. Unset means run everything, so the other jobs
sharing the sweep script (tp/dp_ep/sw_attn variants and the AMD mirrors)
are unchanged. CONFIG_EXPECTED_COUNT=7 makes each shard fail loudly if
the hybrid config array changes without rebalancing the index lists.

Buckets are balanced on measured per-config runtime: shard 0 = configs
0,4 (~14.5m), shard 1 = configs 5,6 (~13.2m), shard 2 = configs 1,2,3
(~16.3m); expected wall ~18m incl. ~1.7m install/canary per shard.
Timeout 60 -> 30. The AMD mirror keeps its own unchanged command and is
pinned to parallelism: 1 (stays a single unsharded job; requires the
pipeline generator change in vllm-project/ci-infra#473).

Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
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.

1 participant