[ROCm][CI] Stage G gating (#50922)
Signed-off-by: Andreas Karatzas <akaratza@amd.com> Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com> Co-authored-by: OpenAI Codex <codex@openai.com>
Andreas Karatzas committed
Sep 22, 2026 at 21:04 UTC
e581e14002a0f3688c161fecc0ce36edc6866b69
7 files changed
+250
.buildkite/test_areas/benchmarks.yaml
+15
@@ -34,3 +34,18 @@ steps:
34
- vllm/v1/attention/
35
commands:
36
- python3 benchmarks/attention_benchmarks/benchmark.py --backends flash flashinfer --batch-specs "8q1s1k"
37
+ mirror:
38
+ amd:
39
+ label: ":amd: (MI355) Attention Benchmark Smoke"
40
+ dind: false
41
+ device: mi355_2
42
+ timeout_in_minutes: 25
43
+ depends_on:
44
+ - image-build-amd
45
+ source_file_dependencies:
46
+ - benchmarks/attention_benchmarks/
47
+ - vllm/v1/attention/
48
+ - vllm/_aiter_ops.py
49
+ - vllm/platforms/rocm.py
50
+ commands:
51
+ - python3 benchmarks/attention_benchmarks/benchmark.py --backends ROCM_ATTN ROCM_AITER_FA ROCM_AITER_UNIFIED_ATTN --batch-specs "8q1s1k"
.buildkite/test_areas/disaggregated.yaml
+19
@@ -205,6 +205,25 @@ steps:
205
commands:
206
- bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
207
- bash v1/kv_connector/nixl_integration/run_multi_connector_accuracy_test.sh
208
+ mirror:
209
+ amd:
210
+ label: ":amd: (MI355) MultiConnector (Nixl+Offloading) PD accuracy"
211
+ dind: false
212
+ device: mi355_2
213
+ timeout_in_minutes: 40
214
+ depends_on:
215
+ - image-build-amd
216
+ source_file_dependencies:
217
+ - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
218
+ - vllm/distributed/kv_transfer/kv_connector/v1/multi_connector.py
219
+ - vllm/distributed/kv_transfer/kv_connector/v1/offloading_connector.py
220
+ - vllm/distributed/kv_transfer/kv_connector/v1/offloading/
221
+ - tests/v1/kv_connector/nixl_integration/
222
+ - requirements/kv_connectors_rocm.txt
223
+ - vllm/platforms/rocm.py
224
+ commands:
225
+ - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
226
+ - ATTENTION_BACKEND=TRITON_ATTN bash v1/kv_connector/nixl_integration/run_multi_connector_accuracy_test.sh
227
228
- label: ":nvidia: (A100) NixlConnector PD + Spec Decode acceptance"
229
key: nixlconnector-pd-spec-decode-acceptance-2-gpus
.buildkite/test_areas/distributed.yaml
+52
@@ -219,6 +219,41 @@ steps:
219
# default does not fit an L4.
220
- bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
221
- RDT_MODEL=hmellor/tiny-random-DeepseekV2ForCausalLM python3 examples/rl/rlhf_sharded_rdt_small_ep.py
222
+ mirror:
223
+ amd:
224
+ label: ":amd: (MI355) Distributed Torchrun + Examples"
225
+ dind: false
226
+ device: mi355_4
227
+ timeout_in_minutes: 45
228
+ depends_on:
229
+ - image-build-amd
230
+ source_file_dependencies:
231
+ - vllm/distributed/
232
+ - "!vllm/distributed/kv_transfer/"
233
+ - tests/distributed/test_torchrun_example.py
234
+ - tests/distributed/test_torchrun_example_moe.py
235
+ - examples/rl/
236
+ - examples/features/data_parallel/data_parallel_offline.py
237
+ - .buildkite/scripts/install-kv-connectors.sh
238
+ - requirements/kv_connectors_rocm.txt
239
+ - requirements/test/rocm.in
240
+ - requirements/test/rocm.txt
241
+ - vllm/platforms/rocm.py
242
+ commands:
243
+ # Sharded RDT needs Ray >= 2.56; keep the ROCm image's dependencies.
244
+ - uv pip install --system --no-deps 'ray==2.56.1'
245
+ - export NCCL_CUMEM_HOST_ENABLE=0
246
+ - torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example.py
247
+ - PP_SIZE=2 torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example.py
248
+ - TP_SIZE=4 torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example_moe.py
249
+ - PP_SIZE=2 TP_SIZE=2 torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example_moe.py
250
+ - DP_SIZE=4 ENABLE_EP=1 torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example_moe.py
251
+ - TP_SIZE=2 DP_SIZE=2 ENABLE_EP=1 torchrun --nproc-per-node=4 tests/distributed/test_torchrun_example_moe.py
252
+ - python3 examples/features/data_parallel/data_parallel_offline.py --enforce-eager
253
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 examples/rl/rlhf_http_nccl.py
254
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 examples/rl/rlhf_http_ipc.py
255
+ - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
256
+ - RDT_MODEL=hmellor/tiny-random-DeepseekV2ForCausalLM python3 examples/rl/rlhf_sharded_rdt_small_ep.py
257
258
- label: ":nvidia: (L4) Distributed DP Extended"
259
key: distributed-dp-tests-4-gpus
@@ -291,6 +326,23 @@ steps:
326
- export NCCL_CUMEM_HOST_ENABLE=0
327
# test with torchrun tp=2 and dp=4 with ep
328
- torchrun --nproc-per-node=8 ../examples/features/torchrun/torchrun_dp_example_offline.py --tp-size=2 --pp-size=1 --dp-size=4 --enable-ep
329
+ mirror:
330
+ amd:
331
+ label: ":amd: (MI355) Distributed DP + EP"
332
+ dind: false
333
+ device: mi355_8
334
+ timeout_in_minutes: 50
335
+ depends_on:
336
+ - image-build-amd
337
+ source_file_dependencies:
338
+ - examples/features/torchrun/torchrun_dp_example_offline.py
339
+ - vllm/config/parallel.py
340
+ - vllm/distributed/
341
+ - "!vllm/distributed/kv_transfer/"
342
+ - vllm/v1/engine/llm_engine.py
343
+ - vllm/v1/executor/uniproc_executor.py
344
+ - vllm/v1/worker/gpu_worker.py
345
+ - vllm/platforms/rocm.py
346
347
- label: ":nvidia: (A100) Distributed"
348
key: distributed-tests-4xa100
.buildkite/test_areas/e2e_integration.yaml
+79
@@ -11,6 +11,28 @@ steps:
11
working_dir: "/vllm-workspace"
12
commands:
13
- bash .buildkite/scripts/scheduled_integration_test/deepseek_v2_lite_ep_eplb.sh 0.25 200 8010
14
+ mirror:
15
+ amd:
16
+ label: ":amd: (MI355) DeepSeek V2-Lite Sync EPLB Accuracy"
17
+ dind: false
18
+ device: mi355_4
19
+ timeout_in_minutes: 40
20
+ env:
21
+ VLLM_ENGINE_READY_TIMEOUT_S: "1800"
22
+ depends_on:
23
+ - image-build-amd
24
+ source_file_dependencies:
25
+ - vllm/model_executor/models/
26
+ - vllm/model_executor/model_loader/
27
+ - vllm/distributed/eplb
28
+ - vllm/model_executor/layers/fused_moe/
29
+ - vllm/model_executor/layers/quantization/
30
+ - vllm/v1/attention/backends/
31
+ - vllm/v1/attention/backends/mla/
32
+ - vllm/v1/attention/selector.py
33
+ - .buildkite/scripts/scheduled_integration_test/
34
+ - vllm/_aiter_ops.py
35
+ - vllm/platforms/rocm.py
36
37
- label: ":nvidia: (H100) Qwen3-30B-A3B-FP8-block Sync EPLB Accuracy"
38
key: qwen3-30b-a3b-fp8-block-sync-eplb-accuracy-4xh100
@@ -21,6 +43,25 @@ steps:
43
working_dir: "/vllm-workspace"
44
commands:
45
- bash .buildkite/scripts/scheduled_integration_test/qwen30b_a3b_fp8_block_ep_eplb.sh 0.8 200 8020
46
+ mirror:
47
+ amd:
48
+ label: ":amd: (MI355) Qwen3-30B-A3B-FP8-block Sync EPLB Accuracy TP2"
49
+ dind: false
50
+ device: mi355_4
51
+ timeout_in_minutes: 30
52
+ depends_on:
53
+ - image-build-amd
54
+ source_file_dependencies:
55
+ - vllm/model_executor/models/
56
+ - vllm/model_executor/model_loader/
57
+ - vllm/model_executor/layers/quantization/
58
+ - vllm/distributed/eplb
59
+ - vllm/model_executor/layers/fused_moe/
60
+ - vllm/v1/attention/backends/
61
+ - vllm/v1/attention/selector.py
62
+ - .buildkite/scripts/scheduled_integration_test/
63
+ - vllm/_aiter_ops.py
64
+ - vllm/platforms/rocm.py
65
66
- label: ":nvidia: (B200) Qwen3-30B-A3B-FP8-block Sync EPLB Accuracy"
67
key: qwen3-30b-a3b-fp8-block-sync-eplb-accuracy-2xb200
@@ -31,6 +72,25 @@ steps:
72
working_dir: "/vllm-workspace"
73
commands:
74
- bash .buildkite/scripts/scheduled_integration_test/qwen30b_a3b_fp8_block_ep_eplb.sh 0.8 200 8020 2 1
75
+ mirror:
76
+ amd:
77
+ label: ":amd: (MI355) Qwen3-30B-A3B-FP8-block Sync EPLB Accuracy TP1"
78
+ dind: false
79
+ device: mi355_2
80
+ timeout_in_minutes: 25
81
+ depends_on:
82
+ - image-build-amd
83
+ source_file_dependencies:
84
+ - vllm/model_executor/models/
85
+ - vllm/model_executor/model_loader/
86
+ - vllm/model_executor/layers/quantization/
87
+ - vllm/model_executor/layers/fused_moe/
88
+ - vllm/distributed/eplb
89
+ - vllm/v1/attention/backends/
90
+ - vllm/v1/attention/selector.py
91
+ - .buildkite/scripts/scheduled_integration_test/
92
+ - vllm/_aiter_ops.py
93
+ - vllm/platforms/rocm.py
94
95
- label: ":nvidia: (H100) Qwen3-30B-A3B-FP8 DP4 Async EPLB Accuracy"
96
key: qwen3-30b-a3b-fp8-dp4-async-eplb-accuracy
@@ -41,6 +101,25 @@ steps:
101
working_dir: "/vllm-workspace"
102
commands:
103
- bash .buildkite/scripts/scheduled_integration_test/qwen30b_a3b_fp8_dp4_async_eplb.sh 0.8 200 8050
104
+ mirror:
105
+ amd:
106
+ label: ":amd: (MI355) Qwen3-30B-A3B-FP8 DP4 Async EPLB Accuracy"
107
+ dind: false
108
+ device: mi355_4
109
+ timeout_in_minutes: 30
110
+ depends_on:
111
+ - image-build-amd
112
+ source_file_dependencies:
113
+ - vllm/model_executor/models/
114
+ - vllm/model_executor/model_loader/
115
+ - vllm/model_executor/layers/quantization/
116
+ - vllm/distributed/eplb
117
+ - vllm/model_executor/layers/fused_moe/
118
+ - vllm/v1/attention/backends/
119
+ - vllm/v1/attention/selector.py
120
+ - .buildkite/scripts/scheduled_integration_test/
121
+ - vllm/_aiter_ops.py
122
+ - vllm/platforms/rocm.py
123
124
- label: ":nvidia: (H100) DeepSeek V2-Lite Prefetch Offload Accuracy"
125
key: deepseek-v2-lite-prefetch-offload-accuracy-h100
.buildkite/test_areas/expert_parallelism.yaml
+13
@@ -40,6 +40,19 @@ steps:
40
commands:
41
- pytest -v -s distributed/test_eplb_execute.py
42
- pytest -v -s distributed/test_eplb_spec_decode.py
43
+ mirror:
44
+ amd:
45
+ label: ":amd: (MI355) EPLB Execution"
46
+ dind: false
47
+ device: mi355_4
48
+ timeout_in_minutes: 35
49
+ depends_on:
50
+ - image-build-amd
51
+ source_file_dependencies:
52
+ - vllm/distributed/eplb
53
+ - tests/distributed/test_eplb_execute.py
54
+ - tests/distributed/test_eplb_spec_decode.py
55
+ - vllm/platforms/rocm.py
56
57
- label: ":nvidia: (H100) Elastic EP Scaling"
58
key: elastic-ep-scaling-test
.buildkite/test_areas/lm_eval.yaml
+48
@@ -114,6 +114,27 @@ steps:
114
commands:
115
- export VLLM_USE_DEEP_GEMM=0 # We found Triton is faster than DeepGEMM for H100
116
- pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large-hopper.txt --tp-size=4
117
+ mirror:
118
+ amd:
119
+ label: ":amd: (MI355) LM Eval Large Models FP8"
120
+ dind: false
121
+ device: mi355_4
122
+ timeout_in_minutes: 45
123
+ depends_on:
124
+ - image-build-amd
125
+ source_file_dependencies:
126
+ - csrc/
127
+ - vllm/model_executor/layers/quantization
128
+ - vllm/model_executor/models/
129
+ - vllm/model_executor/model_loader/
130
+ - vllm/v1/attention/backends/
131
+ - vllm/v1/attention/selector.py
132
+ - .buildkite/lm-eval-harness/
133
+ - vllm/_aiter_ops.py
134
+ - vllm/platforms/rocm.py
135
+ commands:
136
+ - export VLLM_USE_DEEP_GEMM=0
137
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large-rocm-tp4.txt --tp-size=4
138
139
- label: ":nvidia: (B200) LM Eval Small Models"
140
key: lm-eval-small-models-1xb200
@@ -342,6 +363,33 @@ steps:
363
- vllm/third_party/flash_linear_attention/ops/
364
commands:
365
- pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-qwen35-blackwell.txt
366
+ mirror:
367
+ amd:
368
+ label: ":amd: (MI355) LM Eval Qwen3.5 Models"
369
+ dind: false
370
+ device: mi355_2
371
+ timeout_in_minutes: 40
372
+ depends_on:
373
+ - image-build-amd
374
+ source_file_dependencies:
375
+ - vllm/model_executor/models/qwen3_5.py
376
+ - vllm/model_executor/models/qwen3_5_mtp.py
377
+ - vllm/transformers_utils/configs/qwen3_5.py
378
+ - vllm/transformers_utils/configs/qwen3_5_moe.py
379
+ - vllm/model_executor/models/qwen2.py
380
+ - vllm/model_executor/models/qwen3.py
381
+ - vllm/model_executor/models/qwen3_next.py
382
+ - vllm/model_executor/models/qwen3_next_mtp.py
383
+ - vllm/third_party/flash_linear_attention/ops/
384
+ - tests/evals/gsm8k/configs/models-qwen35-mi355.txt
385
+ - tests/evals/gsm8k/configs/Qwen3.5-35B-A3B-DEP2.yaml
386
+ - tests/evals/gsm8k/configs/Qwen3.5-35B-A3B-MXFP4-AITER-TP2.yaml
387
+ - tests/evals/gsm8k/configs/Qwen3.5-35B-A3B-MXFP4-EMU-TP2.yaml
388
+ - tests/evals/gsm8k/test_gsm8k_correctness.py
389
+ - vllm/_aiter_ops.py
390
+ - vllm/platforms/rocm.py
391
+ commands:
392
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-qwen35-mi355.txt
393
394
- label: ":nvidia: (H200) LM Eval DeepSeek R1 TP"
395
key: lm-eval-deepseek-r1-tp-8xh200
.buildkite/test_areas/rust_frontend.yaml
+24
@@ -204,3 +204,27 @@ steps:
204
- TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_internal_lb_dp.py -k "not 4 and not server_info"
205
- TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py -k "not 4 and not server_info"
206
- TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_hybrid_lb_dp.py -k "not 4 and not server_info"
207
+ mirror:
208
+ amd:
209
+ label: ":amd: (MI355) Rust Frontend Distributed"
210
+ dind: false
211
+ device: mi355_4
212
+ timeout_in_minutes: 45
213
+ env:
214
+ VLLM_ENGINE_READY_TIMEOUT_S: "1800"
215
+ depends_on:
216
+ - image-build-amd
217
+ source_file_dependencies:
218
+ - rust/
219
+ - vllm/distributed/
220
+ - "!vllm/distributed/kv_transfer/"
221
+ - vllm/engine/
222
+ - vllm/v1/executor/
223
+ - vllm/v1/engine/
224
+ - vllm/v1/worker/
225
+ - tests/utils.py
226
+ - tests/v1/distributed/test_dense_dp_world_size.py
227
+ - tests/v1/distributed/test_external_lb_dp.py
228
+ - tests/v1/distributed/test_hybrid_lb_dp.py
229
+ - tests/v1/distributed/test_internal_lb_dp.py
230
+ - vllm/platforms/rocm.py