A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 15, 11:00 UTC
AMD conditional all test execution // new test groups (#17556)
Signed-off-by: Alexei V. Ivanov <alexei.ivanov@amd.com> Signed-off-by: Yida Wu <yidawu@alumni.cmu.edu>
Alexei-V-Ivanov-AMD committed
May 9, 2025 at 17:35 UTC
3b602cdea70f80132a70e051804a1b62cfae925e
3 files changed
+69
-25
.buildkite/scripts/hardware_ci/run-amd-test.sh
+16
@@ -3,6 +3,9 @@
3
# This script runs test inside the corresponding ROCm docker container.
4
set -o pipefail
5
6
+# Export Python path
7
+export PYTHONPATH=".."
8
+
9
# Print ROCm version
10
echo "--- Confirming Clean Initial State"
11
while true; do
@@ -74,6 +77,15 @@ HF_MOUNT="/root/.cache/huggingface"
77
78
commands=$@
79
echo "Commands:$commands"
80
+
81
+if [[ $commands == *"pytest -v -s basic_correctness/test_basic_correctness.py"* ]]; then
82
+ commands=${commands//"pytest -v -s basic_correctness/test_basic_correctness.py"/"VLLM_USE_TRITON_FLASH_ATTN=0 pytest -v -s basic_correctness/test_basic_correctness.py"}
83
+fi
84
+
85
+if [[ $commands == *"pytest -v -s compile/test_basic_correctness.py"* ]]; then
86
+ commands=${commands//"pytest -v -s compile/test_basic_correctness.py"/"VLLM_USE_TRITON_FLASH_ATTN=0 pytest -v -s compile/test_basic_correctness.py"}
87
+fi
88
+
89
#ignore certain kernels tests
90
if [[ $commands == *" kernels/core"* ]]; then
91
commands="${commands} \
@@ -161,6 +173,8 @@ fi
173
174
175
PARALLEL_JOB_COUNT=8
176
+MYPYTHONPATH=".."
177
+
178
# check if the command contains shard flag, we will run all shards in parallel because the host have 8 GPUs.
179
if [[ $commands == *"--shard-id="* ]]; then
180
# assign job count as the number of shards used
@@ -181,6 +195,7 @@ if [[ $commands == *"--shard-id="* ]]; then
195
-e AWS_SECRET_ACCESS_KEY \
196
-v "${HF_CACHE}:${HF_MOUNT}" \
197
-e "HF_HOME=${HF_MOUNT}" \
198
+ -e "PYTHONPATH=${MYPYTHONPATH}" \
199
--name "${container_name}_${GPU}" \
200
"${image_name}" \
201
/bin/bash -c "${commands_gpu}" \
@@ -211,6 +226,7 @@ else
226
-e AWS_SECRET_ACCESS_KEY \
227
-v "${HF_CACHE}:${HF_MOUNT}" \
228
-e "HF_HOME=${HF_MOUNT}" \
229
+ -e "PYTHONPATH=${MYPYTHONPATH}" \
230
--name "${container_name}" \
231
"${image_name}" \
232
/bin/bash -c "${commands}"
.buildkite/test-pipeline.yaml
+51
-25
@@ -32,6 +32,7 @@ steps:
32
##### fast check tests #####
33
34
- label: Documentation Build # 2min
35
+ mirror_hardwares: [amdexperimental]
36
working_dir: "/vllm-workspace/test_docs/docs"
37
fast_check: true
38
no_gpu: True
@@ -42,6 +43,7 @@ steps:
43
- grep \"sig sig-object py\" build/html/api/vllm/vllm.sampling_params.html
44
45
- label: Async Engine, Inputs, Utils, Worker Test # 24min
46
+ mirror_hardwares: [amdexperimental]
47
source_file_dependencies:
48
- vllm/
49
- tests/mq_llm_engine
@@ -62,6 +64,7 @@ steps:
64
- pytest -v -s worker # Worker
65
66
- label: Python-only Installation Test
67
+ mirror_hardwares: [amdexperimental]
68
source_file_dependencies:
69
- tests/standalone_tests/python_only_compile.sh
70
- setup.py
@@ -69,7 +72,7 @@ steps:
72
- bash standalone_tests/python_only_compile.sh
73
74
- label: Basic Correctness Test # 30min
72
- #mirror_hardwares: [amd]
75
+ mirror_hardwares: [amdexperimental, amdproduction]
76
fast_check: true
77
torch_nightly: true
78
source_file_dependencies:
@@ -86,6 +89,7 @@ steps:
89
- VLLM_TEST_ENABLE_ARTIFICIAL_PREEMPT=1 pytest -v -s basic_correctness/test_preemption.py
90
91
- label: Chunked Prefill Test
92
+ mirror_hardwares: [amdexperimental]
93
source_file_dependencies:
94
- vllm/
95
- tests/basic_correctness/test_chunked_prefill
@@ -94,7 +98,7 @@ steps:
98
- VLLM_ATTENTION_BACKEND=FLASH_ATTN pytest -v -s basic_correctness/test_chunked_prefill.py
99
100
- label: Core Test # 10min
97
- mirror_hardwares: [amd]
101
+ mirror_hardwares: [amdexperimental, amdproduction]
102
fast_check: true
103
source_file_dependencies:
104
- vllm/core
@@ -104,10 +108,10 @@ steps:
108
- pytest -v -s core
109
110
- label: Entrypoints Test # 40min
111
+ mirror_hardwares: [amdexperimental]
112
working_dir: "/vllm-workspace/tests"
113
fast_check: true
114
torch_nightly: true
110
- #mirror_hardwares: [amd]
115
source_file_dependencies:
116
- vllm/
117
- tests/entrypoints/llm
@@ -126,6 +130,7 @@ steps:
130
- VLLM_USE_V1=0 pytest -v -s entrypoints/offline_mode # Needs to avoid interference with other tests
131
132
- label: Distributed Tests (4 GPUs) # 10min
133
+ mirror_hardwares: [amdexperimental]
134
working_dir: "/vllm-workspace/tests"
135
num_gpus: 4
136
source_file_dependencies:
@@ -158,7 +163,7 @@ steps:
163
- popd
164
165
- label: Metrics, Tracing Test # 10min
161
- mirror_hardwares: [amd]
166
+ mirror_hardwares: [amdexperimental, amdproduction]
167
num_gpus: 2
168
source_file_dependencies:
169
- vllm/
@@ -172,7 +177,7 @@ steps:
177
##### 1 GPU test #####
178
179
- label: Regression Test # 5min
175
- #mirror_hardwares: [amd]
180
+ mirror_hardwares: [amdexperimental, amdproduction]
181
source_file_dependencies:
182
- vllm/
183
- tests/test_regression
@@ -182,7 +187,7 @@ steps:
187
working_dir: "/vllm-workspace/tests" # optional
188
189
- label: Engine Test # 10min
185
- mirror_hardwares: [amd]
190
+ mirror_hardwares: [amdexperimental, amdproduction]
191
source_file_dependencies:
192
- vllm/
193
- tests/engine
@@ -196,7 +201,7 @@ steps:
201
- pytest -v -s tokenization
202
203
- label: V1 Test
199
- #mirror_hardwares: [amd]
204
+ mirror_hardwares: [amdexperimental]
205
source_file_dependencies:
206
- vllm/
207
- tests/v1
@@ -221,8 +226,8 @@ steps:
226
- pytest -v -s entrypoints/openai/correctness/test_lmeval.py::test_lm_eval_accuracy_v1_engine
227
228
- label: Examples Test # 25min
229
+ mirror_hardwares: [amdexperimental]
230
working_dir: "/vllm-workspace/examples"
225
- #mirror_hardwares: [amd]
231
source_file_dependencies:
232
- vllm/entrypoints
233
- examples/
@@ -246,7 +251,7 @@ steps:
251
- VLLM_USE_V1=0 python3 offline_inference/profiling.py --model facebook/opt-125m run_num_steps --num-steps 2
252
253
- label: Prefix Caching Test # 9min
249
- mirror_hardwares: [amd]
254
+ mirror_hardwares: [amdexperimental, amdproduction]
255
source_file_dependencies:
256
- vllm/
257
- tests/prefix_caching
@@ -254,6 +259,7 @@ steps:
259
- pytest -v -s prefix_caching
260
261
- label: Samplers Test # 36min
262
+ mirror_hardwares: [amdexperimental]
263
source_file_dependencies:
264
- vllm/model_executor/layers
265
- vllm/sampling_metadata.py
@@ -264,7 +270,7 @@ steps:
270
- VLLM_USE_FLASHINFER_SAMPLER=1 pytest -v -s samplers
271
272
- label: LogitsProcessor Test # 5min
267
- mirror_hardwares: [amd]
273
+ mirror_hardwares: [amdexperimental, amdproduction]
274
source_file_dependencies:
275
- vllm/model_executor/layers
276
- vllm/model_executor/guided_decoding
@@ -275,6 +281,7 @@ steps:
281
- pytest -v -s model_executor/test_guided_processors.py
282
283
- label: Speculative decoding tests # 40min
284
+ mirror_hardwares: [amdexperimental]
285
source_file_dependencies:
286
- vllm/spec_decode
287
- tests/spec_decode
@@ -285,7 +292,7 @@ steps:
292
- pytest -v -s spec_decode/e2e/test_eagle_correctness.py
293
294
- label: LoRA Test %N # 15min each
288
- #mirror_hardwares: [amd]
295
+ mirror_hardwares: [amdexperimental]
296
source_file_dependencies:
297
- vllm/lora
298
- tests/lora
@@ -293,6 +300,7 @@ steps:
300
parallelism: 4
301
302
- label: PyTorch Compilation Unit Tests
303
+ mirror_hardwares: [amdexperimental, amdproduction]
304
torch_nightly: true
305
source_file_dependencies:
306
- vllm/
@@ -303,6 +311,7 @@ steps:
311
- pytest -v -s compile/test_sequence_parallelism.py
312
313
- label: PyTorch Fullgraph Smoke Test # 9min
314
+ mirror_hardwares: [amdexperimental, amdproduction]
315
torch_nightly: true
316
source_file_dependencies:
317
- vllm/
@@ -314,6 +323,7 @@ steps:
323
- pytest -v -s compile/piecewise/test_toy_llama.py
324
325
- label: PyTorch Fullgraph Test # 18min
326
+ mirror_hardwares: [amdexperimental, amdproduction]
327
torch_nightly: true
328
source_file_dependencies:
329
- vllm/
@@ -322,7 +332,7 @@ steps:
332
- pytest -v -s compile/test_full_graph.py
333
334
- label: Kernels Core Operation Test
325
- mirror_hardwares: [amd]
335
+ mirror_hardwares: [amdexperimental, amdproduction]
336
source_file_dependencies:
337
- csrc/
338
- tests/kernels/core
@@ -330,7 +340,7 @@ steps:
340
- pytest -v -s kernels/core
341
342
- label: Kernels Attention Test %N
333
- mirror_hardwares: [amd]
343
+ mirror_hardwares: [amdexperimental, amdproduction]
344
source_file_dependencies:
345
- csrc/attention/
346
- vllm/attention
@@ -341,7 +351,7 @@ steps:
351
parallelism: 2
352
353
- label: Kernels Quantization Test %N
344
- mirror_hardwares: [amd]
354
+ mirror_hardwares: [amdexperimental, amdproduction]
355
source_file_dependencies:
356
- csrc/quantization/
357
- vllm/model_executor/layers/quantization
@@ -351,7 +361,7 @@ steps:
361
parallelism: 2
362
363
- label: Kernels MoE Test
354
- #mirror_hardwares: [amd]
364
+ mirror_hardwares: [amdexperimental]
365
source_file_dependencies:
366
- csrc/moe/
367
- tests/kernels/moe
@@ -360,7 +370,7 @@ steps:
370
- pytest -v -s kernels/moe
371
372
- label: Kernels Mamba Test
363
- #mirror_hardwares: [amd]
373
+ mirror_hardwares: [amdexperimental]
374
source_file_dependencies:
375
- csrc/mamba/
376
- tests/kernels/mamba
@@ -368,7 +378,7 @@ steps:
378
- pytest -v -s kernels/mamba
379
380
- label: Tensorizer Test # 11min
371
- # mirror_hardwares: [amd]
381
+ mirror_hardwares: [amdexperimental]
382
soft_fail: true
383
source_file_dependencies:
384
- vllm/model_executor/model_loader
@@ -379,14 +389,15 @@ steps:
389
- pytest -v -s tensorizer_loader
390
391
- label: Benchmarks # 9min
392
+ mirror_hardwares: [amdexperimental, amdproduction]
393
working_dir: "/vllm-workspace/.buildkite"
383
- mirror_hardwares: [amd]
394
source_file_dependencies:
395
- benchmarks/
396
commands:
397
- bash scripts/run-benchmarks.sh
398
399
- label: Benchmarks CLI Test # 10min
400
+ mirror_hardwares: [amdexperimental, amdproduction]
401
source_file_dependencies:
402
- vllm/
403
- tests/benchmarks/
@@ -394,6 +405,7 @@ steps:
405
- pytest -v -s benchmarks/
406
407
- label: Quantization Test
408
+ mirror_hardwares: [amdexperimental]
409
source_file_dependencies:
410
- csrc/
411
- vllm/model_executor/layers/quantization
@@ -402,6 +414,7 @@ steps:
414
- VLLM_TEST_FORCE_LOAD_FORMAT=auto pytest -v -s quantization
415
416
- label: LM Eval Small Models # 53min
417
+ mirror_hardwares: [amdexperimental]
418
working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
419
source_file_dependencies:
420
- csrc/
@@ -411,6 +424,7 @@ steps:
424
- pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-small.txt --tp-size=1
425
426
- label: OpenAI API correctness
427
+ mirror_hardwares: [amdexperimental]
428
source_file_dependencies:
429
- csrc/
430
- vllm/entrypoints/openai/
@@ -419,6 +433,7 @@ steps:
433
- pytest -s entrypoints/openai/correctness/
434
435
- label: Encoder Decoder tests # 5min
436
+ mirror_hardwares: [amdexperimental]
437
source_file_dependencies:
438
- vllm/
439
- tests/encoder_decoder
@@ -426,8 +441,8 @@ steps:
441
- pytest -v -s encoder_decoder
442
443
- label: OpenAI-Compatible Tool Use # 20 min
444
+ mirror_hardwares: [amdexperimental]
445
fast_check: false
430
- #mirror_hardwares: [ amd ]
446
source_file_dependencies:
447
- vllm/
448
- tests/tool_use
@@ -439,6 +454,7 @@ steps:
454
##### models test #####
455
456
- label: Basic Models Test # 24min
457
+ mirror_hardwares: [amdexperimental]
458
torch_nightly: true
459
source_file_dependencies:
460
- vllm/
@@ -454,7 +470,7 @@ steps:
470
- VLLM_USE_V1=0 pytest -v -s models/test_initialization.py -k 'plamo2'
471
472
- label: Language Models Test (Standard)
457
- #mirror_hardwares: [amd]
473
+ mirror_hardwares: [amdexperimental]
474
source_file_dependencies:
475
- vllm/
476
- tests/models/language
@@ -464,6 +480,7 @@ steps:
480
- pytest -v -s models/language -m core_model
481
482
- label: Language Models Test (Extended)
483
+ mirror_hardwares: [amdexperimental]
484
optional: true
485
source_file_dependencies:
486
- vllm/
@@ -474,7 +491,7 @@ steps:
491
- pytest -v -s models/language -m 'not core_model'
492
493
- label: Multi-Modal Models Test (Standard)
477
- #mirror_hardwares: [amd]
494
+ mirror_hardwares: [amdexperimental]
495
source_file_dependencies:
496
- vllm/
497
- tests/models/multimodal
@@ -485,6 +502,7 @@ steps:
502
- cd .. && pytest -v -s tests/models/multimodal/generation/test_whisper.py -m core_model # Otherwise, mp_method="spawn" doesn't work
503
504
- label: Multi-Modal Models Test (Extended) 1
505
+ mirror_hardwares: [amdexperimental]
506
optional: true
507
source_file_dependencies:
508
- vllm/
@@ -494,6 +512,7 @@ steps:
512
- pytest -v -s --ignore models/multimodal/generation/test_common.py --ignore models/multimodal/processing models/multimodal -m 'not core_model'
513
514
- label: Multi-Modal Models Test (Extended) 2
515
+ mirror_hardwares: [amdexperimental]
516
optional: true
517
source_file_dependencies:
518
- vllm/
@@ -503,6 +522,7 @@ steps:
522
- pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=0) and not core_model'
523
524
- label: Multi-Modal Models Test (Extended) 3
525
+ mirror_hardwares: [amdexperimental]
526
optional: true
527
source_file_dependencies:
528
- vllm/
@@ -512,7 +532,7 @@ steps:
532
- pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=1) and not core_model'
533
534
- label: Quantized Models Test
515
- #mirror_hardwares: [amd]
535
+ mirror_hardwares: [amdexperimental]
536
source_file_dependencies:
537
- vllm/model_executor/layers/quantization
538
- tests/models/quantization
@@ -521,7 +541,7 @@ steps:
541
542
# This test is used only in PR development phase to test individual models and should never run on main
543
- label: Custom Models Test
524
- mirror_hardwares: [amd]
544
+ mirror_hardwares: [amdexperimental, amdproduction]
545
optional: true
546
commands:
547
- echo 'Testing custom models...'
@@ -533,7 +553,7 @@ steps:
553
##### multi gpus test #####
554
555
- label: Distributed Comm Ops Test # 7min
536
- mirror_hardwares: [amd]
556
+ mirror_hardwares: [amdexperimental, amdproduction]
557
working_dir: "/vllm-workspace/tests"
558
num_gpus: 2
559
source_file_dependencies:
@@ -544,6 +564,7 @@ steps:
564
- pytest -v -s distributed/test_shm_broadcast.py
565
566
- label: 2 Node Tests (4 GPUs in total) # 16min
567
+ mirror_hardwares: [amdexperimental]
568
working_dir: "/vllm-workspace/tests"
569
num_gpus: 2
570
num_nodes: 2
@@ -562,7 +583,7 @@ steps:
583
- VLLM_TEST_SAME_HOST=0 torchrun --nnodes 2 --nproc-per-node=2 --rdzv_backend=c10d --rdzv_endpoint=192.168.10.10 distributed/test_same_node.py | grep 'Same node test passed'
584
585
- label: Distributed Tests (2 GPUs) # 40min
565
- #mirror_hardwares: [amd]
586
+ mirror_hardwares: [amdexperimental]
587
working_dir: "/vllm-workspace/tests"
588
num_gpus: 2
589
source_file_dependencies:
@@ -599,6 +620,7 @@ steps:
620
- CUDA_VISIBLE_DEVICES=0,1 pytest -v -s v1/shutdown
621
622
- label: Plugin Tests (2 GPUs) # 40min
623
+ mirror_hardwares: [amdexperimental]
624
working_dir: "/vllm-workspace/tests"
625
num_gpus: 2
626
source_file_dependencies:
@@ -618,6 +640,7 @@ steps:
640
- pytest -v -s models/test_oot_registration.py # it needs a clean process
641
642
- label: Multi-step Tests (4 GPUs) # 36min
643
+ mirror_hardwares: [amdexperimental]
644
working_dir: "/vllm-workspace/tests"
645
num_gpus: 4
646
source_file_dependencies:
@@ -638,6 +661,7 @@ steps:
661
- pytest -v -s multi_step/test_correctness_llm.py
662
663
- label: Pipeline Parallelism Test # 45min
664
+ mirror_hardwares: [amdexperimental, amdproduction]
665
working_dir: "/vllm-workspace/tests"
666
num_gpus: 4
667
source_file_dependencies:
@@ -651,6 +675,7 @@ steps:
675
- pytest -v -s distributed/test_pipeline_parallel.py
676
677
- label: LoRA TP Test (Distributed)
678
+ mirror_hardwares: [amdexperimental, amdproduction]
679
num_gpus: 4
680
source_file_dependencies:
681
- vllm/lora
@@ -666,6 +691,7 @@ steps:
691
692
693
- label: Weight Loading Multiple GPU Test # 33min
694
+ mirror_hardwares: [amdexperimental]
695
working_dir: "/vllm-workspace/tests"
696
num_gpus: 2
697
source_file_dependencies:
requirements/rocm-test.txt
+2
@@ -1,3 +1,5 @@
1
+# Common dependencies
2
+-r common.txt
3
4
# entrypoints test
5
# librosa==0.10.2.post1 # required by audio tests in entrypoints/openai