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 14, 05:30 UTC
[ci] Adding the test-amd.yaml for test definitions for the AMD backend. (alternative PR) (#26718)
Signed-off-by: Alexei V. Ivanov <alexei.ivanov@amd.com>
Alexei-V-Ivanov-AMD committed
Oct 14, 2025 at 01:10 UTC
d3cc8427c0a930937389d0ce6ec99405e7117929
1 file changed
+1265
.buildkite/test-amd.yaml
new
+1265
@@ -0,0 +1,1265 @@
1
+# In this file, you can add more tests to run either by adding a new step or
2
+# adding a new command to an existing step. See different options here for examples.
3
+
4
+# This script will be feed into Jinja template in `test-template-aws.j2` at
5
+# https://github.com/vllm-project/buildkite-ci/blob/main/scripts/test-template-aws.j2
6
+# to generate the final pipeline yaml file.
7
+
8
+# Documentation
9
+# label(str): the name of the test. emojis allowed.
10
+# fast_check(bool): whether to run this on each commit on the fastcheck pipeline.
11
+# torch_nightly(bool): whether to run this on vllm against the torch nightly pipeline.
12
+# fast_check_only(bool): run this test on the fastcheck pipeline only
13
+# optional(bool): never run this test by default (i.e. need to unblock manually) unless it's a scheduled nightly run.
14
+# soft_fail(bool): allow this step to fail without failing the entire pipeline (useful for flaky or experimental tests).
15
+# command(str): the single command to run for tests. incompatible with commands.
16
+# commands(list): the list of commands to run for the test. incompatible with command.
17
+# mirror_hardwares(list): the list of hardware to run the test on as well. currently only supports [amdexperimental]
18
+# gpu(str): override the GPU selection for the test. default is L4 GPUs. supports a100, b200, h200
19
+# num_gpus(int): override the number of GPUs for the test. defaults to 1 GPU. currently supports 2,4.
20
+# num_nodes(int): whether to simulate multi-node setup by launching multiple containers on one host,
21
+# in this case, commands must be specified. the first command runs on the first host, the second
22
+# command runs on the second host.
23
+# timeout_in_minutes(int): sets a timeout for the step in minutes. if not specified, uses the default timeout.
24
+# parallelism(int): number of parallel jobs to run for this step. enables test sharding using $$BUILDKITE_PARALLEL_JOB
25
+# and $$BUILDKITE_PARALLEL_JOB_COUNT environment variables.
26
+# working_dir(str): specify the place where the command should execute, default to /vllm-workspace/tests
27
+# source_file_dependencies(list): the list of prefixes to opt-in the test for, if empty, the test will always run.
28
+
29
+# When adding a test
30
+# - If the test belongs to an existing group, add it there
31
+# - If the test is short, add to any existing step
32
+# - If the test takes more than 10min, then it is okay to create a new step.
33
+# Note that all steps execute in parallel.
34
+
35
+steps:
36
+##### fast check tests #####
37
+
38
+- label: Pytorch Nightly Dependency Override Check # 2min
39
+ # if this test fails, it means the nightly torch version is not compatible with some
40
+ # of the dependencies. Please check the error message and add the package to whitelist
41
+ # in /vllm/tools/generate_nightly_torch_test.py
42
+ mirror_hardwares: [amdexperimental]
43
+ agent_pool: mi325_1
44
+ # grade: Blocking
45
+ soft_fail: true
46
+ source_file_dependencies:
47
+ - requirements/nightly_torch_test.txt
48
+ commands:
49
+ - bash standalone_tests/pytorch_nightly_dependency.sh
50
+
51
+- label: Async Engine, Inputs, Utils, Worker Test # 36min
52
+ timeout_in_minutes: 50
53
+ mirror_hardwares: [amdexperimental]
54
+ agent_pool: mi325_1
55
+ # grade: Blocking
56
+ source_file_dependencies:
57
+ - vllm/
58
+ - tests/multimodal
59
+ - tests/utils_
60
+ commands:
61
+ - pytest -v -s -m 'not cpu_test' multimodal
62
+ - pytest -v -s utils_
63
+
64
+- label: Async Engine, Inputs, Utils, Worker Test (CPU) # 4 mins
65
+ timeout_in_minutes: 10
66
+ mirror_hardwares: [amdexperimental]
67
+ agent_pool: mi325_1
68
+ # grade: Blocking
69
+ source_file_dependencies:
70
+ - vllm/
71
+ - tests/test_inputs.py
72
+ - tests/test_outputs.py
73
+ - tests/multimodal
74
+ - tests/standalone_tests/lazy_imports.py
75
+ - tests/transformers_utils
76
+ no_gpu: true
77
+ commands:
78
+ - python3 standalone_tests/lazy_imports.py
79
+ - pytest -v -s test_inputs.py
80
+ - pytest -v -s test_outputs.py
81
+ - pytest -v -s -m 'cpu_test' multimodal
82
+ - pytest -v -s transformers_utils
83
+
84
+- label: Python-only Installation Test # 10min
85
+ timeout_in_minutes: 20
86
+ mirror_hardwares: [amdexperimental]
87
+ agent_pool: mi325_1
88
+ # grade: Blocking
89
+ source_file_dependencies:
90
+ - tests/standalone_tests/python_only_compile.sh
91
+ - setup.py
92
+ commands:
93
+ - bash standalone_tests/python_only_compile.sh
94
+
95
+- label: Basic Correctness Test # 20min
96
+ timeout_in_minutes: 30
97
+ mirror_hardwares: [amdexperimental, amdproduction]
98
+ agent_pool: mi325_1
99
+ # grade: Blocking
100
+ fast_check: true
101
+ torch_nightly: true
102
+ source_file_dependencies:
103
+ - vllm/
104
+ - tests/basic_correctness/test_basic_correctness
105
+ - tests/basic_correctness/test_cpu_offload
106
+ - tests/basic_correctness/test_cumem.py
107
+ commands:
108
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
109
+ - pytest -v -s basic_correctness/test_cumem.py
110
+ - pytest -v -s basic_correctness/test_basic_correctness.py
111
+ - pytest -v -s basic_correctness/test_cpu_offload.py
112
+
113
+- label: Entrypoints Unit Tests # 5min
114
+ mirror_hardwares: [amdexperimental, amdproduction]
115
+ agent_pool: mi325_1
116
+ # grade: Blocking
117
+ timeout_in_minutes: 10
118
+ working_dir: "/vllm-workspace/tests"
119
+ fast_check: true
120
+ source_file_dependencies:
121
+ - vllm/entrypoints
122
+ - tests/entrypoints/
123
+ commands:
124
+ - pytest -v -s entrypoints/openai/tool_parsers
125
+ - pytest -v -s entrypoints/ --ignore=entrypoints/llm --ignore=entrypoints/openai --ignore=entrypoints/offline_mode --ignore=entrypoints/test_chat_utils.py --ignore=entrypoints/pooling
126
+
127
+- label: Entrypoints Integration Test (LLM) # 30min
128
+ timeout_in_minutes: 40
129
+ mirror_hardwares: [amdexperimental, amdproduction]
130
+ agent_pool: mi325_1
131
+ # grade: Blocking
132
+ working_dir: "/vllm-workspace/tests"
133
+ fast_check: true
134
+ torch_nightly: true
135
+ source_file_dependencies:
136
+ - vllm/
137
+ - tests/entrypoints/llm
138
+ - tests/entrypoints/offline_mode
139
+ commands:
140
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
141
+ - pytest -v -s entrypoints/llm --ignore=entrypoints/llm/test_generate.py --ignore=entrypoints/llm/test_collective_rpc.py
142
+ - pytest -v -s entrypoints/llm/test_generate.py # it needs a clean process
143
+ - pytest -v -s entrypoints/offline_mode # Needs to avoid interference with other tests
144
+
145
+- label: Entrypoints Integration Test (API Server) # 100min
146
+ timeout_in_minutes: 130
147
+ mirror_hardwares: [amdexperimental]
148
+ agent_pool: mi325_1
149
+ # grade: Blocking
150
+ working_dir: "/vllm-workspace/tests"
151
+ fast_check: true
152
+ torch_nightly: true
153
+ source_file_dependencies:
154
+ - vllm/
155
+ - tests/entrypoints/openai
156
+ - tests/entrypoints/test_chat_utils
157
+ commands:
158
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
159
+ - PYTHONPATH=/vllm-workspace pytest -v -s entrypoints/openai/test_collective_rpc.py # PYTHONPATH is needed to import custom Worker extension
160
+ - pytest -v -s entrypoints/openai --ignore=entrypoints/openai/test_chat_with_tool_reasoning.py --ignore=entrypoints/openai/test_oot_registration.py --ignore=entrypoints/openai/test_tensorizer_entrypoint.py --ignore=entrypoints/openai/correctness/ --ignore=entrypoints/openai/test_collective_rpc.py --ignore=entrypoints/openai/tool_parsers/
161
+ - pytest -v -s entrypoints/test_chat_utils.py
162
+
163
+- label: Entrypoints Integration Test (Pooling)
164
+ timeout_in_minutes: 50
165
+ mirror_hardwares: [amdexperimental]
166
+ agent_pool: mi325_1
167
+ # grade: Blocking
168
+ working_dir: "/vllm-workspace/tests"
169
+ fast_check: true
170
+ torch_nightly: true
171
+ source_file_dependencies:
172
+ - vllm/
173
+ - tests/entrypoints/pooling
174
+ commands:
175
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
176
+ - pytest -v -s entrypoints/pooling
177
+
178
+- label: Distributed Tests (4 GPUs) # 35min
179
+ timeout_in_minutes: 50
180
+ mirror_hardwares: [amdexperimental]
181
+ agent_pool: mi325_4
182
+ # grade: Blocking
183
+ working_dir: "/vllm-workspace/tests"
184
+ num_gpus: 4
185
+ source_file_dependencies:
186
+ - vllm/distributed/
187
+ - tests/distributed/test_utils
188
+ - tests/distributed/test_pynccl
189
+ - tests/distributed/test_events
190
+ - tests/compile/test_basic_correctness
191
+ - examples/offline_inference/rlhf.py
192
+ - examples/offline_inference/rlhf_colocate.py
193
+ - tests/examples/offline_inference/data_parallel.py
194
+ - tests/v1/distributed
195
+ - tests/v1/engine/test_engine_core_client.py
196
+ - tests/distributed/test_symm_mem_allreduce.py
197
+ commands:
198
+ # test with torchrun tp=2 and external_dp=2
199
+ - torchrun --nproc-per-node=4 distributed/test_torchrun_example.py
200
+ # test with torchrun tp=2 and pp=2
201
+ - PP_SIZE=2 torchrun --nproc-per-node=4 distributed/test_torchrun_example.py
202
+ # test with torchrun tp=4 and dp=1
203
+ - TP_SIZE=4 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
204
+ # test with torchrun tp=2, pp=2 and dp=1
205
+ - PP_SIZE=2 TP_SIZE=2 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
206
+ # test with torchrun tp=1 and dp=4 with ep
207
+ - DP_SIZE=4 ENABLE_EP=1 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
208
+ # test with torchrun tp=2 and dp=2 with ep
209
+ - TP_SIZE=2 DP_SIZE=2 ENABLE_EP=1 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
210
+ # test with internal dp
211
+ - python3 ../examples/offline_inference/data_parallel.py --enforce-eager
212
+ - TP_SIZE=2 DP_SIZE=2 pytest -v -s v1/distributed/test_async_llm_dp.py
213
+ - TP_SIZE=2 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py
214
+ - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_internal_lb_dp.py
215
+ - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_hybrid_lb_dp.py
216
+ - pytest -v -s v1/engine/test_engine_core_client.py::test_kv_cache_events_dp
217
+ - pytest -v -s distributed/test_utils.py
218
+ - pytest -v -s compile/test_basic_correctness.py
219
+ - pytest -v -s distributed/test_pynccl.py
220
+ - pytest -v -s distributed/test_events.py
221
+ - pytest -v -s distributed/test_symm_mem_allreduce.py
222
+ # TODO: create a dedicated test section for multi-GPU example tests
223
+ # when we have multiple distributed example tests
224
+ - pushd ../examples/offline_inference
225
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 rlhf.py
226
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 RAY_DEDUP_LOGS=0 python3 rlhf_colocate.py
227
+ - popd
228
+
229
+- label: EPLB Algorithm Test # 5min
230
+ mirror_hardwares: [amdexperimental, amdproduction]
231
+ agent_pool: mi325_1
232
+ # grade: Blocking
233
+ timeout_in_minutes: 15
234
+ working_dir: "/vllm-workspace/tests"
235
+ source_file_dependencies:
236
+ - vllm/distributed/eplb
237
+ - tests/distributed/test_eplb_algo.py
238
+ commands:
239
+ - pytest -v -s distributed/test_eplb_algo.py
240
+
241
+- label: EPLB Execution Test # 5min
242
+ mirror_hardwares: [amdexperimental, amdproduction]
243
+ agent_pool: mi325_4
244
+ # grade: Blocking
245
+ timeout_in_minutes: 15
246
+ working_dir: "/vllm-workspace/tests"
247
+ num_gpus: 4
248
+ source_file_dependencies:
249
+ - vllm/distributed/eplb
250
+ - tests/distributed/test_eplb_execute.py
251
+ commands:
252
+ - pytest -v -s distributed/test_eplb_execute.py
253
+
254
+- label: Metrics, Tracing Test # 12min
255
+ timeout_in_minutes: 20
256
+ mirror_hardwares: [amdexperimental, amdproduction]
257
+ agent_pool: mi325_2
258
+ # grade: Blocking
259
+ num_gpus: 2
260
+ source_file_dependencies:
261
+ - vllm/
262
+ - tests/v1/tracing
263
+ commands:
264
+ - "pip install \
265
+ 'opentelemetry-sdk>=1.26.0' \
266
+ 'opentelemetry-api>=1.26.0' \
267
+ 'opentelemetry-exporter-otlp>=1.26.0' \
268
+ 'opentelemetry-semantic-conventions-ai>=0.4.1'"
269
+ - pytest -v -s v1/tracing
270
+
271
+##### fast check tests #####
272
+##### 1 GPU test #####
273
+
274
+- label: Regression Test # 7min
275
+ timeout_in_minutes: 20
276
+ mirror_hardwares: [amdexperimental, amdproduction]
277
+ agent_pool: mi325_1
278
+ grade: Blocking
279
+ source_file_dependencies:
280
+ - vllm/
281
+ - tests/test_regression
282
+ commands:
283
+ - pip install modelscope
284
+ - pytest -v -s test_regression.py
285
+ working_dir: "/vllm-workspace/tests" # optional
286
+
287
+- label: Engine Test # 25min
288
+ timeout_in_minutes: 40
289
+ mirror_hardwares: [amdexperimental]
290
+ agent_pool: mi325_1
291
+ #grade: Blocking
292
+ source_file_dependencies:
293
+ - vllm/
294
+ - tests/engine
295
+ - tests/tokenization
296
+ - tests/test_sequence
297
+ - tests/test_config
298
+ - tests/test_logger
299
+ - tests/test_vllm_port
300
+ commands:
301
+ - pytest -v -s engine test_sequence.py test_config.py test_logger.py test_vllm_port.py
302
+ # OOM in the CI unless we run this separately
303
+ - pytest -v -s tokenization
304
+
305
+- label: V1 Test e2e + engine # 30min
306
+ timeout_in_minutes: 45
307
+ mirror_hardwares: [amdexperimental]
308
+ agent_pool: mi325_1
309
+ # grade: Blocking
310
+ source_file_dependencies:
311
+ - vllm/
312
+ - tests/v1
313
+ commands:
314
+ # TODO: accuracy does not match, whether setting
315
+ # VLLM_USE_FLASHINFER_SAMPLER or not on H100.
316
+ - pytest -v -s v1/e2e
317
+ - pytest -v -s v1/engine
318
+
319
+- label: V1 Test entrypoints # 35min
320
+ timeout_in_minutes: 50
321
+ mirror_hardwares: [amdexperimental]
322
+ agent_pool: mi325_1
323
+ # grade: Blocking
324
+ source_file_dependencies:
325
+ - vllm/
326
+ - tests/v1
327
+ commands:
328
+ - pytest -v -s v1/entrypoints
329
+
330
+- label: V1 Test others # 42min
331
+ timeout_in_minutes: 60
332
+ mirror_hardwares: [amdexperimental]
333
+ agent_pool: mi325_1
334
+ # grade: Blocking
335
+ source_file_dependencies:
336
+ - vllm/
337
+ - tests/v1
338
+ commands:
339
+ # split the test to avoid interference
340
+ - pytest -v -s -m 'not cpu_test' v1/core
341
+ - pytest -v -s v1/executor
342
+ - pytest -v -s v1/kv_offload
343
+ - pytest -v -s v1/sample
344
+ - pytest -v -s v1/logits_processors
345
+ - pytest -v -s v1/worker
346
+ - pytest -v -s v1/spec_decode
347
+ - pytest -v -s -m 'not cpu_test' v1/kv_connector/unit
348
+ - pytest -v -s -m 'not cpu_test' v1/metrics
349
+ - pytest -v -s v1/test_oracle.py
350
+ - pytest -v -s v1/test_request.py
351
+ # Integration test for streaming correctness (requires special branch).
352
+ - pip install -U git+https://github.com/robertgshaw2-redhat/lm-evaluation-harness.git@streaming-api
353
+ - pytest -v -s entrypoints/openai/correctness/test_lmeval.py::test_lm_eval_accuracy_v1_engine
354
+
355
+- label: V1 Test others (CPU) # 5 mins
356
+ mirror_hardwares: [amdexperimental]
357
+ agent_pool: mi325_1
358
+ # grade: Blocking
359
+ source_file_dependencies:
360
+ - vllm/
361
+ - tests/v1
362
+ no_gpu: true
363
+ commands:
364
+ # split the test to avoid interference
365
+ - pytest -v -s -m 'cpu_test' v1/core
366
+ - pytest -v -s v1/structured_output
367
+ - pytest -v -s v1/test_serial_utils.py
368
+ - pytest -v -s -m 'cpu_test' v1/kv_connector/unit
369
+ - pytest -v -s -m 'cpu_test' v1/metrics
370
+
371
+
372
+- label: Examples Test # 30min
373
+ timeout_in_minutes: 45
374
+ mirror_hardwares: [amdexperimental]
375
+ agent_pool: mi325_1
376
+ # grade: Blocking
377
+ working_dir: "/vllm-workspace/examples"
378
+ source_file_dependencies:
379
+ - vllm/entrypoints
380
+ - examples/
381
+ commands:
382
+ - pip install tensorizer # for tensorizer test
383
+ - python3 offline_inference/basic/generate.py --model facebook/opt-125m
384
+ - python3 offline_inference/basic/generate.py --model meta-llama/Llama-2-13b-chat-hf --cpu-offload-gb 10
385
+ - python3 offline_inference/basic/chat.py
386
+ - python3 offline_inference/prefix_caching.py
387
+ - python3 offline_inference/llm_engine_example.py
388
+ - python3 offline_inference/audio_language.py --seed 0
389
+ - python3 offline_inference/vision_language.py --seed 0
390
+ - python3 offline_inference/vision_language_pooling.py --seed 0
391
+ - python3 offline_inference/vision_language_multi_image.py --seed 0
392
+ - python3 others/tensorize_vllm_model.py --model facebook/opt-125m serialize --serialized-directory /tmp/ --suffix v1 && python3 others/tensorize_vllm_model.py --model facebook/opt-125m deserialize --path-to-tensors /tmp/vllm/facebook/opt-125m/v1/model.tensors
393
+ - python3 offline_inference/encoder_decoder_multimodal.py --model-type whisper --seed 0
394
+ - python3 offline_inference/basic/classify.py
395
+ - python3 offline_inference/basic/embed.py
396
+ - python3 offline_inference/basic/score.py
397
+ - python3 offline_inference/spec_decode.py --test --method eagle --num_spec_tokens 3 --dataset-name hf --dataset-path philschmid/mt-bench --num-prompts 80 --temp 0 --top-p 1.0 --top-k -1 --tp 1 --enable-chunked-prefill --max-model-len 2048
398
+ - python3 offline_inference/spec_decode.py --test --method eagle3 --num_spec_tokens 3 --dataset-name hf --dataset-path philschmid/mt-bench --num-prompts 80 --temp 0 --top-p 1.0 --top-k -1 --tp 1 --enable-chunked-prefill --max-model-len 2048
399
+
400
+- label: Platform Tests (CUDA) # 4min
401
+ timeout_in_minutes: 15
402
+ mirror_hardwares: [amdexperimental, amdproduction]
403
+ agent_pool: mi325_1
404
+ # grade: Blocking
405
+ source_file_dependencies:
406
+ - vllm/
407
+ - tests/cuda
408
+ commands:
409
+ - pytest -v -s cuda/test_cuda_context.py
410
+
411
+- label: Samplers Test # 56min
412
+ timeout_in_minutes: 75
413
+ mirror_hardwares: [amdexperimental]
414
+ agent_pool: mi325_1
415
+ # grade: Blocking
416
+ source_file_dependencies:
417
+ - vllm/model_executor/layers
418
+ - vllm/sampling_metadata.py
419
+ - tests/samplers
420
+ - tests/conftest.py
421
+ commands:
422
+ - pytest -v -s samplers
423
+ - VLLM_USE_FLASHINFER_SAMPLER=1 pytest -v -s samplers
424
+
425
+- label: LoRA Test %N # 20min each
426
+ timeout_in_minutes: 30
427
+ mirror_hardwares: [amdexperimental]
428
+ agent_pool: mi325_8
429
+ # grade: Blocking
430
+ source_file_dependencies:
431
+ - vllm/lora
432
+ - tests/lora
433
+ commands:
434
+ - pytest -v -s lora \
435
+ --shard-id=$$BUILDKITE_PARALLEL_JOB \
436
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
437
+ --ignore=lora/test_chatglm3_tp.py \
438
+ --ignore=lora/test_llama_tp.py \
439
+ --ignore=lora/test_llm_with_multi_loras.py
440
+ parallelism: 4
441
+
442
+- label: PyTorch Compilation Unit Tests # 15min
443
+ timeout_in_minutes: 30
444
+ mirror_hardwares: [amdexperimental]
445
+ agent_pool: mi325_1
446
+ # grade: Blocking
447
+ torch_nightly: true
448
+ source_file_dependencies:
449
+ - vllm/
450
+ - tests/compile
451
+ commands:
452
+ - pytest -v -s compile/test_pass_manager.py
453
+ - pytest -v -s compile/test_fusion.py
454
+ - pytest -v -s compile/test_fusion_attn.py
455
+ - pytest -v -s compile/test_functionalization.py
456
+ - pytest -v -s compile/test_silu_mul_quant_fusion.py
457
+ - pytest -v -s compile/test_sequence_parallelism.py
458
+ - pytest -v -s compile/test_async_tp.py
459
+ - pytest -v -s compile/test_fusion_all_reduce.py
460
+ - pytest -v -s compile/test_decorator.py
461
+ - pytest -v -s compile/test_noop_elimination.py
462
+
463
+- label: PyTorch Fullgraph Smoke Test # 15min
464
+ timeout_in_minutes: 30
465
+ mirror_hardwares: [amdexperimental]
466
+ agent_pool: mi325_1
467
+ # grade: Blocking
468
+ torch_nightly: true
469
+ source_file_dependencies:
470
+ - vllm/
471
+ - tests/compile
472
+ commands:
473
+ - pytest -v -s compile/test_basic_correctness.py
474
+ - pytest -v -s compile/piecewise/
475
+
476
+- label: PyTorch Fullgraph Test # 20min
477
+ timeout_in_minutes: 30
478
+ mirror_hardwares: [amdexperimental, amdproduction]
479
+ agent_pool: mi325_1
480
+ # grade: Blocking
481
+ torch_nightly: true
482
+ source_file_dependencies:
483
+ - vllm/
484
+ - tests/compile
485
+ commands:
486
+ - pytest -v -s compile/test_full_graph.py
487
+
488
+- label: Kernels Core Operation Test # 48min
489
+ timeout_in_minutes: 75
490
+ mirror_hardwares: [amdexperimental]
491
+ agent_pool: mi325_1
492
+ # grade: Blocking
493
+ source_file_dependencies:
494
+ - csrc/
495
+ - tests/kernels/core
496
+ commands:
497
+ - pytest -v -s kernels/core
498
+
499
+- label: Kernels Attention Test %N # 23min
500
+ timeout_in_minutes: 35
501
+ mirror_hardwares: [amdexperimental]
502
+ agent_pool: mi325_8
503
+ # grade: Blocking
504
+ source_file_dependencies:
505
+ - csrc/attention/
506
+ - vllm/attention
507
+ - vllm/v1/attention
508
+ - tests/kernels/attention
509
+ commands:
510
+ - pytest -v -s kernels/attention --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
511
+ parallelism: 2
512
+
513
+- label: Kernels Quantization Test %N # 64min
514
+ timeout_in_minutes: 90
515
+ mirror_hardwares: [amdexperimental]
516
+ agent_pool: mi325_8
517
+ # grade: Blocking
518
+ source_file_dependencies:
519
+ - csrc/quantization/
520
+ - vllm/model_executor/layers/quantization
521
+ - tests/kernels/quantization
522
+ commands:
523
+ - pytest -v -s kernels/quantization --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
524
+ parallelism: 2
525
+
526
+- label: Kernels MoE Test %N # 40min
527
+ timeout_in_minutes: 60
528
+ mirror_hardwares: [amdexperimental]
529
+ agent_pool: mi325_8
530
+ # grade: Blocking
531
+ source_file_dependencies:
532
+ - csrc/quantization/cutlass_w8a8/moe/
533
+ - csrc/moe/
534
+ - tests/kernels/moe
535
+ - vllm/model_executor/layers/fused_moe/
536
+ - vllm/distributed/device_communicators/
537
+ commands:
538
+ - pytest -v -s kernels/moe --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
539
+ parallelism: 2
540
+
541
+- label: Kernels Mamba Test # 31min
542
+ timeout_in_minutes: 45
543
+ mirror_hardwares: [amdexperimental, amdproduction]
544
+ agent_pool: mi325_1
545
+ # grade: Blocking
546
+ source_file_dependencies:
547
+ - csrc/mamba/
548
+ - tests/kernels/mamba
549
+ - vllm/model_executor/layers/mamba/ops
550
+ commands:
551
+ - pytest -v -s kernels/mamba
552
+
553
+- label: Model Executor Test # 23min
554
+ timeout_in_minutes: 35
555
+ mirror_hardwares: [amdexperimental]
556
+ agent_pool: mi325_1
557
+ # grade: Blocking
558
+ source_file_dependencies:
559
+ - vllm/model_executor
560
+ - tests/model_executor
561
+ - tests/entrypoints/openai/test_tensorizer_entrypoint.py
562
+ commands:
563
+ - apt-get update && apt-get install -y curl libsodium23
564
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
565
+ - pytest -v -s model_executor
566
+ - pytest -v -s entrypoints/openai/test_tensorizer_entrypoint.py
567
+
568
+- label: Benchmarks # 11min
569
+ timeout_in_minutes: 20
570
+ mirror_hardwares: [amdexperimental, amdproduction]
571
+ agent_pool: mi325_8
572
+ # grade: Blocking
573
+ working_dir: "/vllm-workspace/.buildkite"
574
+ source_file_dependencies:
575
+ - benchmarks/
576
+ commands:
577
+ - bash scripts/run-benchmarks.sh
578
+
579
+- label: Benchmarks CLI Test # 7min
580
+ timeout_in_minutes: 20
581
+ mirror_hardwares: [amdexperimental, amdproduction]
582
+ agent_pool: mi325_8
583
+ # grade: Blocking
584
+ source_file_dependencies:
585
+ - vllm/
586
+ - tests/benchmarks/
587
+ commands:
588
+ - pytest -v -s benchmarks/
589
+
590
+- label: Quantization Test # 70min
591
+ timeout_in_minutes: 90
592
+ mirror_hardwares: [amdexperimental]
593
+ agent_pool: mi325_1
594
+ # grade: Blocking
595
+ source_file_dependencies:
596
+ - csrc/
597
+ - vllm/model_executor/layers/quantization
598
+ - tests/quantization
599
+ commands:
600
+ # temporary install here since we need nightly, will move to requirements/test.in
601
+ # after torchao 0.12 release, and pin a working version of torchao nightly here
602
+
603
+ # since torchao nightly is only compatible with torch nightly currently
604
+ # https://github.com/pytorch/ao/issues/2919, we'll have to skip new torchao tests for now
605
+ # we can only upgrade after this is resolved
606
+ - pip install --pre torchao==0.13.0.dev20250814 --index-url https://download.pytorch.org/whl/nightly/cu128
607
+ - VLLM_TEST_FORCE_LOAD_FORMAT=auto pytest -v -s quantization/
608
+
609
+- label: LM Eval Small Models # 53min
610
+ timeout_in_minutes: 75
611
+ mirror_hardwares: [amdexperimental]
612
+ agent_pool: mi325_1
613
+ # grade: Blocking
614
+ source_file_dependencies:
615
+ - csrc/
616
+ - vllm/model_executor/layers/quantization
617
+ commands:
618
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-small.txt --tp-size=1
619
+
620
+- label: OpenAI API correctness # 22min
621
+ timeout_in_minutes: 30
622
+ mirror_hardwares: [amdexperimental]
623
+ agent_pool: mi325_1
624
+ # grade: Blocking
625
+ source_file_dependencies:
626
+ - csrc/
627
+ - vllm/entrypoints/openai/
628
+ - vllm/model_executor/models/whisper.py
629
+ commands: # LMEval+Transcription WER check
630
+ - pytest -s entrypoints/openai/correctness/
631
+
632
+- label: OpenAI-Compatible Tool Use # 23 min
633
+ timeout_in_minutes: 35
634
+ mirror_hardwares: [amdexperimental]
635
+ agent_pool: mi325_1
636
+ # grade: Blocking
637
+ fast_check: false
638
+ source_file_dependencies:
639
+ - vllm/
640
+ - tests/tool_use
641
+ commands:
642
+ - pytest -v -s -m 'not cpu_test' tool_use
643
+
644
+- label: OpenAI-Compatible Tool Use (CPU) # 5 mins
645
+ mirror_hardwares: [amdexperimental, amdproduction]
646
+ agent_pool: mi325_1
647
+ # grade: Blocking
648
+ timeout_in_minutes: 10
649
+ source_file_dependencies:
650
+ - vllm/
651
+ - tests/tool_use
652
+ no_gpu: true
653
+ commands:
654
+ - pytest -v -s -m 'cpu_test' tool_use
655
+
656
+##### models test #####
657
+
658
+- label: Basic Models Tests (Initialization)
659
+ timeout_in_minutes: 45
660
+ mirror_hardwares: [amdexperimental, amdproduction]
661
+ agent_pool: mi325_1
662
+ # grade: Blocking
663
+ torch_nightly: true
664
+ source_file_dependencies:
665
+ - vllm/
666
+ - tests/models/test_initialization.py
667
+ commands:
668
+ # Run a subset of model initialization tests
669
+ - pytest -v -s models/test_initialization.py::test_can_initialize_small_subset
670
+
671
+- label: Basic Models Tests (Extra Initialization) %N
672
+ timeout_in_minutes: 45
673
+ mirror_hardwares: [amdexperimental, amdproduction]
674
+ agent_pool: mi325_8
675
+ # grade: Blocking
676
+ torch_nightly: true
677
+ source_file_dependencies:
678
+ - vllm/model_executor/models/
679
+ - tests/models/test_initialization.py
680
+ commands:
681
+ # Only when vLLM model source is modified - test initialization of a large
682
+ # subset of supported models (the complement of the small subset in the above
683
+ # test.) Also run if model initialization test file is modified
684
+ - pytest -v -s models/test_initialization.py \
685
+ -k 'not test_can_initialize_small_subset' \
686
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
687
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
688
+ parallelism: 2
689
+
690
+- label: Basic Models Tests (Other)
691
+ timeout_in_minutes: 45
692
+ mirror_hardwares: [amdexperimental]
693
+ agent_pool: mi325_1
694
+ # grade: Blocking
695
+ torch_nightly: true
696
+ source_file_dependencies:
697
+ - vllm/
698
+ - tests/models/test_transformers.py
699
+ - tests/models/test_registry.py
700
+ commands:
701
+ - pytest -v -s models/test_transformers.py models/test_registry.py
702
+
703
+- label: Basic Models Test (Other CPU) # 5min
704
+ mirror_hardwares: [amdexperimental, amdproduction]
705
+ agent_pool: mi325_1
706
+ # grade: Blocking
707
+ timeout_in_minutes: 10
708
+ torch_nightly: true
709
+ source_file_dependencies:
710
+ - vllm/
711
+ - tests/models/test_utils.py
712
+ - tests/models/test_vision.py
713
+ no_gpu: true
714
+ commands:
715
+ - pytest -v -s models/test_utils.py models/test_vision.py
716
+
717
+- label: Language Models Tests (Standard)
718
+ timeout_in_minutes: 25
719
+ mirror_hardwares: [amdexperimental]
720
+ agent_pool: mi325_1
721
+ # grade: Blocking
722
+ torch_nightly: true
723
+ source_file_dependencies:
724
+ - vllm/
725
+ - tests/models/language
726
+ commands:
727
+ # Test standard language models, excluding a subset of slow tests
728
+ - pip freeze | grep -E 'torch'
729
+ - pytest -v -s models/language -m 'core_model and (not slow_test)'
730
+
731
+- label: Language Models Tests (Extra Standard) %N
732
+ timeout_in_minutes: 45
733
+ mirror_hardwares: [amdexperimental]
734
+ agent_pool: mi325_8
735
+ # grade: Blocking
736
+ torch_nightly: true
737
+ source_file_dependencies:
738
+ - vllm/model_executor/models/
739
+ - tests/models/language/pooling/test_embedding.py
740
+ - tests/models/language/generation/test_common.py
741
+ - tests/models/language/pooling/test_classification.py
742
+ commands:
743
+ # Shard slow subset of standard language models tests. Only run when model
744
+ # source is modified, or when specified test files are modified
745
+ - pip freeze | grep -E 'torch'
746
+ - pytest -v -s models/language -m 'core_model and slow_test' \
747
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
748
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
749
+ parallelism: 2
750
+
751
+- label: Language Models Tests (Hybrid) %N
752
+ timeout_in_minutes: 75
753
+ mirror_hardwares: [amdexperimental]
754
+ agent_pool: mi325_8
755
+ # grade: Blocking
756
+ torch_nightly: true
757
+ source_file_dependencies:
758
+ - vllm/
759
+ - tests/models/language/generation
760
+ commands:
761
+ # Install fast path packages for testing against transformers
762
+ # Note: also needed to run plamo2 model in vLLM
763
+ - uv pip install --system --no-build-isolation 'git+https://github.com/state-spaces/mamba@v2.2.5'
764
+ - uv pip install --system --no-build-isolation 'git+https://github.com/Dao-AILab/causal-conv1d@v1.5.2'
765
+ # Shard hybrid language model tests
766
+ - pytest -v -s models/language/generation \
767
+ -m hybrid_model \
768
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
769
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
770
+ parallelism: 2
771
+
772
+- label: Language Models Test (Extended Generation) # 80min
773
+ timeout_in_minutes: 110
774
+ mirror_hardwares: [amdexperimental]
775
+ agent_pool: mi325_1
776
+ # grade: Blocking
777
+ optional: true
778
+ source_file_dependencies:
779
+ - vllm/
780
+ - tests/models/language/generation
781
+ commands:
782
+ # Install causal-conv1d for plamo2 models here, as it is not compatible with pip-compile.
783
+ - pip install 'git+https://github.com/Dao-AILab/causal-conv1d@v1.5.0.post8'
784
+ - pytest -v -s models/language/generation -m '(not core_model) and (not hybrid_model)'
785
+
786
+- label: Language Models Test (PPL)
787
+ timeout_in_minutes: 110
788
+ mirror_hardwares: [amdexperimental]
789
+ agent_pool: mi325_1
790
+ # grade: Blocking
791
+ optional: true
792
+ source_file_dependencies:
793
+ - vllm/
794
+ - tests/models/language/generation_ppl_test
795
+ commands:
796
+ - pytest -v -s models/language/generation_ppl_test
797
+
798
+- label: Language Models Test (Extended Pooling) # 36min
799
+ timeout_in_minutes: 50
800
+ mirror_hardwares: [amdexperimental]
801
+ agent_pool: mi325_1
802
+ # grade: Blocking
803
+ optional: true
804
+ source_file_dependencies:
805
+ - vllm/
806
+ - tests/models/language/pooling
807
+ commands:
808
+ - pytest -v -s models/language/pooling -m 'not core_model'
809
+
810
+- label: Language Models Test (MTEB)
811
+ timeout_in_minutes: 110
812
+ mirror_hardwares: [amdexperimental]
813
+ agent_pool: mi325_1
814
+ # grade: Blocking
815
+ optional: true
816
+ source_file_dependencies:
817
+ - vllm/
818
+ - tests/models/language/pooling_mteb_test
819
+ commands:
820
+ - pytest -v -s models/language/pooling_mteb_test
821
+
822
+- label: Multi-Modal Processor Test # 44min
823
+ timeout_in_minutes: 60
824
+ mirror_hardwares: [amdexperimental]
825
+ agent_pool: mi325_1
826
+ # grade: Blocking
827
+ source_file_dependencies:
828
+ - vllm/
829
+ - tests/models/multimodal
830
+ commands:
831
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
832
+ - pytest -v -s models/multimodal/processing
833
+
834
+- label: Multi-Modal Models Test (Standard) # 60min
835
+ timeout_in_minutes: 80
836
+ mirror_hardwares: [amdexperimental]
837
+ agent_pool: mi325_1
838
+ # grade: Blocking
839
+ torch_nightly: true
840
+ source_file_dependencies:
841
+ - vllm/
842
+ - tests/models/multimodal
843
+ commands:
844
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
845
+ - pip freeze | grep -E 'torch'
846
+ - pytest -v -s models/multimodal -m core_model --ignore models/multimodal/generation/test_whisper.py --ignore models/multimodal/processing
847
+ - cd .. && VLLM_WORKER_MULTIPROC_METHOD=spawn pytest -v -s tests/models/multimodal/generation/test_whisper.py -m core_model # Otherwise, mp_method="spawn" doesn't work
848
+
849
+- label: Multi-Modal Models Test (Extended) 1
850
+ mirror_hardwares: [amdexperimental]
851
+ agent_pool: mi325_1
852
+ # grade: Blocking
853
+ optional: true
854
+ source_file_dependencies:
855
+ - vllm/
856
+ - tests/models/multimodal
857
+ commands:
858
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
859
+ - pytest -v -s models/multimodal -m 'not core_model' --ignore models/multimodal/generation/test_common.py --ignore models/multimodal/processing
860
+
861
+- label: Multi-Modal Models Test (Extended) 2
862
+ mirror_hardwares: [amdexperimental]
863
+ agent_pool: mi325_1
864
+ # grade: Blocking
865
+ optional: true
866
+ source_file_dependencies:
867
+ - vllm/
868
+ - tests/models/multimodal
869
+ commands:
870
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
871
+ - pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=0) and not core_model'
872
+
873
+- label: Multi-Modal Models Test (Extended) 3
874
+ mirror_hardwares: [amdexperimental]
875
+ agent_pool: mi325_1
876
+ # grade: Blocking
877
+ optional: true
878
+ source_file_dependencies:
879
+ - vllm/
880
+ - tests/models/multimodal
881
+ commands:
882
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
883
+ - pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=1) and not core_model'
884
+
885
+- label: Quantized Models Test # 45 min
886
+ timeout_in_minutes: 60
887
+ mirror_hardwares: [amdexperimental]
888
+ agent_pool: mi325_1
889
+ # grade: Blocking
890
+ source_file_dependencies:
891
+ - vllm/model_executor/layers/quantization
892
+ - tests/models/quantization
893
+ commands:
894
+ - pytest -v -s models/quantization
895
+
896
+# This test is used only in PR development phase to test individual models and should never run on main
897
+- label: Custom Models Test
898
+ mirror_hardwares: [amdexperimental, amdproduction]
899
+ agent_pool: mi325_1
900
+ # grade: Blocking
901
+ optional: true
902
+ commands:
903
+ - echo 'Testing custom models...'
904
+ # PR authors can temporarily add commands below to test individual models
905
+ # e.g. pytest -v -s models/encoder_decoder/vision_language/test_mllama.py
906
+ # *To avoid merge conflicts, remember to REMOVE (not just comment out) them before merging the PR*
907
+
908
+- label: Transformers Nightly Models Test
909
+ mirror_hardwares: [amdexperimental]
910
+ agent_pool: mi325_1
911
+ working_dir: "/vllm-workspace/"
912
+ optional: true
913
+ commands:
914
+ - pip install --upgrade git+https://github.com/huggingface/transformers
915
+ - pytest -v -s tests/models/test_initialization.py
916
+ - pytest -v -s tests/models/test_transformers.py
917
+ - pytest -v -s tests/models/multimodal/processing/
918
+ - pytest -v -s tests/models/multimodal/test_mapping.py
919
+ - python3 examples/offline_inference/basic/chat.py
920
+ - python3 examples/offline_inference/vision_language.py --model-type qwen2_5_vl
921
+ # Whisper needs spawn method to avoid deadlock
922
+ - VLLM_WORKER_MULTIPROC_METHOD=spawn python3 examples/offline_inference/audio_language.py --model-type whisper
923
+
924
+- label: Blackwell Test # 38 min
925
+ timeout_in_minutes: 60
926
+ working_dir: "/vllm-workspace/"
927
+ gpu: b200
928
+ # optional: true
929
+ source_file_dependencies:
930
+ - csrc/quantization/fp4/
931
+ - csrc/attention/mla/
932
+ - csrc/quantization/cutlass_w8a8/moe/
933
+ - vllm/model_executor/layers/fused_moe/cutlass_moe.py
934
+ - vllm/model_executor/layers/fused_moe/flashinfer_cutlass_moe.py
935
+ - vllm/model_executor/layers/fused_moe/flashinfer_cutlass_prepare_finalize.py
936
+ - vllm/model_executor/layers/quantization/utils/flashinfer_utils.py
937
+ - vllm/v1/attention/backends/flashinfer.py
938
+ - vllm/compilation/fusion.py
939
+ - vllm/compilation/fusion_attn.py
940
+ commands:
941
+ - nvidia-smi
942
+ - python3 examples/offline_inference/basic/chat.py
943
+ # Attention
944
+ # num_heads2 broken by https://github.com/flashinfer-ai/flashinfer/issues/1353
945
+ - pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
946
+ - pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_attention.py
947
+ - pytest -v -s tests/kernels/attention/test_cutlass_mla_decode.py
948
+ - pytest -v -s tests/kernels/attention/test_flashinfer_mla_decode.py
949
+ # Quantization
950
+ - pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
951
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
952
+ - pytest -v -s tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
953
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
954
+ - pytest -v -s tests/kernels/quantization/test_flashinfer_scaled_mm.py
955
+ - pytest -v -s tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
956
+ - pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
957
+ - pytest -v -s tests/kernels/moe/test_ocp_mx_moe.py
958
+ # Fusion
959
+ - pytest -v -s tests/compile/test_fusion_all_reduce.py
960
+ - pytest -v -s tests/compile/test_fusion_attn.py::test_attention_quant_pattern
961
+ - pytest -v -s tests/kernels/moe/test_flashinfer.py
962
+ - pytest -v -s tests/compile/test_silu_mul_quant_fusion.py
963
+
964
+- label: Blackwell GPT-OSS Eval
965
+ timeout_in_minutes: 60
966
+ working_dir: "/vllm-workspace/"
967
+ gpu: b200
968
+ optional: true # run on nightlies
969
+ source_file_dependencies:
970
+ - tests/evals/gpt_oss
971
+ - vllm/model_executor/models/gpt_oss.py
972
+ - vllm/model_executor/layers/quantization/mxfp4.py
973
+ - vllm/v1/attention/backends/flashinfer.py
974
+ commands:
975
+ - uv pip install --system 'gpt-oss[eval]==0.0.5'
976
+ - pytest -s -v tests/evals/gpt_oss/test_gpqa_correctness.py --model openai/gpt-oss-20b --metric 0.58
977
+
978
+- label: Blackwell Quantized MoE Test
979
+ timeout_in_minutes: 60
980
+ working_dir: "/vllm-workspace/"
981
+ gpu: b200
982
+ source_file_dependencies:
983
+ - tests/quantization/test_blackwell_moe.py
984
+ - vllm/model_executor/models/deepseek_v2.py
985
+ - vllm/model_executor/models/gpt_oss.py
986
+ - vllm/model_executor/models/llama4.py
987
+ - vllm/model_executor/layers/fused_moe
988
+ - vllm/model_executor/layers/quantization/compressed_tensors
989
+ - vllm/model_executor/layers/quantization/modelopt.py
990
+ - vllm/model_executor/layers/quantization/mxfp4.py
991
+ - vllm/v1/attention/backends/flashinfer.py
992
+ commands:
993
+ - pytest -s -v tests/quantization/test_blackwell_moe.py
994
+
995
+- label: Blackwell LM Eval Small Models
996
+ timeout_in_minutes: 120
997
+ gpu: b200
998
+ optional: true # run on nightlies
999
+ source_file_dependencies:
1000
+ - csrc/
1001
+ - vllm/model_executor/layers/quantization
1002
+ commands:
1003
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-blackwell.txt --tp-size=1
1004
+
1005
+##### 1 GPU test #####
1006
+##### multi gpus test #####
1007
+
1008
+- label: Distributed Comm Ops Test # 7min
1009
+ timeout_in_minutes: 20
1010
+ mirror_hardwares: [amdexperimental, amdproduction]
1011
+ agent_pool: mi325_2
1012
+ # grade: Blocking
1013
+ working_dir: "/vllm-workspace/tests"
1014
+ num_gpus: 2
1015
+ source_file_dependencies:
1016
+ - vllm/distributed
1017
+ - tests/distributed
1018
+ commands:
1019
+ - pytest -v -s distributed/test_comm_ops.py
1020
+ - pytest -v -s distributed/test_shm_broadcast.py
1021
+ - pytest -v -s distributed/test_shm_buffer.py
1022
+ - pytest -v -s distributed/test_shm_storage.py
1023
+
1024
+- label: 2 Node Tests (4 GPUs in total) # 16min
1025
+ timeout_in_minutes: 30
1026
+ mirror_hardwares: [amdexperimental]
1027
+ agent_pool: mi325_4
1028
+ # grade: Blocking
1029
+ working_dir: "/vllm-workspace/tests"
1030
+ num_gpus: 2
1031
+ num_nodes: 2
1032
+ source_file_dependencies:
1033
+ - vllm/distributed/
1034
+ - vllm/engine/
1035
+ - vllm/executor/
1036
+ - vllm/model_executor/models/
1037
+ - tests/distributed/
1038
+ - tests/examples/offline_inference/data_parallel.py
1039
+ commands:
1040
+ - # the following commands are for the first node, with ip 192.168.10.10 (ray environment already set up)
1041
+ - 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'
1042
+ - NUM_NODES=2 torchrun --nnodes 2 --nproc-per-node=2 --rdzv_backend=c10d --rdzv_endpoint=192.168.10.10 distributed/test_node_count.py | grep 'Node count test passed'
1043
+ - python3 ../examples/offline_inference/data_parallel.py --dp-size=2 --tp-size=1 --node-size=2 --node-rank=0 --master-addr=192.168.10.10 --master-port=12345 --enforce-eager --trust-remote-code
1044
+ - VLLM_MULTI_NODE=1 pytest -v -s distributed/test_multi_node_assignment.py
1045
+ - VLLM_MULTI_NODE=1 pytest -v -s distributed/test_pipeline_parallel.py
1046
+ - # the following commands are for the second node, with ip 192.168.10.11 (ray environment already set up)
1047
+ - 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'
1048
+ - NUM_NODES=2 torchrun --nnodes 2 --nproc-per-node=2 --rdzv_backend=c10d --rdzv_endpoint=192.168.10.10 distributed/test_node_count.py | grep 'Node count test passed'
1049
+ - python3 ../examples/offline_inference/data_parallel.py --dp-size=2 --tp-size=1 --node-size=2 --node-rank=1 --master-addr=192.168.10.10 --master-port=12345 --enforce-eager --trust-remote-code
1050
+
1051
+- label: Distributed Tests (2 GPUs) # 68min
1052
+ timeout_in_minutes: 90
1053
+ mirror_hardwares: [amdexperimental]
1054
+ agent_pool: mi325_2
1055
+ # grade: Blocking
1056
+ working_dir: "/vllm-workspace/tests"
1057
+ num_gpus: 2
1058
+ source_file_dependencies:
1059
+ - vllm/compilation/
1060
+ - vllm/distributed/
1061
+ - vllm/engine/
1062
+ - vllm/executor/
1063
+ - vllm/worker/worker_base.py
1064
+ - vllm/v1/engine/
1065
+ - vllm/v1/worker/
1066
+ - tests/compile/test_basic_correctness.py
1067
+ - tests/compile/test_wrapper.py
1068
+ - tests/distributed/
1069
+ - tests/entrypoints/llm/test_collective_rpc.py
1070
+ - tests/v1/distributed
1071
+ - tests/v1/entrypoints/openai/test_multi_api_servers.py
1072
+ - tests/v1/shutdown
1073
+ - tests/v1/worker/test_worker_memory_snapshot.py
1074
+ commands:
1075
+ - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_async_llm_dp.py
1076
+ - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py
1077
+ - DP_SIZE=2 pytest -v -s v1/entrypoints/openai/test_multi_api_servers.py
1078
+ - pytest -v -s entrypoints/llm/test_collective_rpc.py
1079
+ - pytest -v -s ./compile/test_basic_correctness.py
1080
+ - pytest -v -s ./compile/test_wrapper.py
1081
+ - VLLM_TEST_SAME_HOST=1 torchrun --nproc-per-node=4 distributed/test_same_node.py | grep 'Same node test passed'
1082
+ - pytest -v -s distributed/test_sequence_parallel.py
1083
+ - CUDA_VISIBLE_DEVICES=0,1 pytest -v -s v1/shutdown
1084
+ - pytest -v -s v1/worker/test_worker_memory_snapshot.py
1085
+
1086
+- label: Distributed Model Tests (2 GPUs) # 37min
1087
+ timeout_in_minutes: 50
1088
+ mirror_hardwares: [amdexperimental]
1089
+ agent_pool: mi325_2
1090
+ # grade: Blocking
1091
+ working_dir: "/vllm-workspace/tests"
1092
+ num_gpus: 2
1093
+ source_file_dependencies:
1094
+ - vllm/model_executor/model_loader/sharded_state_loader.py
1095
+ - vllm/model_executor/models/
1096
+ - tests/basic_correctness/
1097
+ - tests/model_executor/model_loader/test_sharded_state_loader.py
1098
+ - tests/models/
1099
+ commands:
1100
+ - TARGET_TEST_SUITE=L4 pytest basic_correctness/ -v -s -m 'distributed(num_gpus=2)'
1101
+ - CUDA_VISIBLE_DEVICES=0,1 pytest -v -s model_executor/model_loader/test_sharded_state_loader.py
1102
+ # Avoid importing model tests that cause CUDA reinitialization error
1103
+ - pytest models/test_transformers.py -v -s -m 'distributed(num_gpus=2)'
1104
+ - pytest models/language -v -s -m 'distributed(num_gpus=2)'
1105
+ - pytest models/multimodal -v -s -m 'distributed(num_gpus=2)' --ignore models/multimodal/generation/test_whisper.py
1106
+ - VLLM_WORKER_MULTIPROC_METHOD=spawn pytest models/multimodal/generation/test_whisper.py -v -s -m 'distributed(num_gpus=2)'
1107
+
1108
+- label: Plugin Tests (2 GPUs) # 40min
1109
+ timeout_in_minutes: 60
1110
+ mirror_hardwares: [amdexperimental]
1111
+ agent_pool: mi325_2
1112
+ # grade: Blocking
1113
+ working_dir: "/vllm-workspace/tests"
1114
+ num_gpus: 2
1115
+ source_file_dependencies:
1116
+ - vllm/plugins/
1117
+ - tests/plugins/
1118
+ commands:
1119
+ # begin platform plugin and general plugin tests, all the code in-between runs on dummy platform
1120
+ - pip install -e ./plugins/vllm_add_dummy_platform
1121
+ - pytest -v -s plugins_tests/test_platform_plugins.py
1122
+ - pip uninstall vllm_add_dummy_platform -y
1123
+ # end platform plugin tests
1124
+ # begin io_processor plugins test, all the code in between uses the prithvi_io_processor plugin
1125
+ - pip install -e ./plugins/prithvi_io_processor_plugin
1126
+ - pytest -v -s plugins_tests/test_io_processor_plugins.py
1127
+ - pip uninstall prithvi_io_processor_plugin -y
1128
+ # end io_processor plugins test
1129
+ # other tests continue here:
1130
+ - pytest -v -s plugins_tests/test_scheduler_plugins.py
1131
+ - pip install -e ./plugins/vllm_add_dummy_model
1132
+ - pytest -v -s distributed/test_distributed_oot.py
1133
+ - pytest -v -s entrypoints/openai/test_oot_registration.py # it needs a clean process
1134
+ - pytest -v -s models/test_oot_registration.py # it needs a clean process
1135
+ - pytest -v -s plugins/lora_resolvers # unit tests for in-tree lora resolver plugins
1136
+
1137
+- label: Pipeline + Context Parallelism Test # 45min
1138
+ timeout_in_minutes: 60
1139
+ mirror_hardwares: [amdexperimental, amdproduction]
1140
+ agent_pool: mi325_4
1141
+ # grade: Blocking
1142
+ working_dir: "/vllm-workspace/tests"
1143
+ num_gpus: 4
1144
+ source_file_dependencies:
1145
+ - vllm/distributed/
1146
+ - vllm/engine/
1147
+ - vllm/executor/
1148
+ - vllm/model_executor/models/
1149
+ - tests/distributed/
1150
+ commands:
1151
+ - pytest -v -s distributed/test_pp_cudagraph.py
1152
+ - pytest -v -s distributed/test_pipeline_parallel.py
1153
+
1154
+- label: LoRA TP Test (Distributed) # 17 min
1155
+ timeout_in_minutes: 30
1156
+ mirror_hardwares: [amdexperimental, amdproduction]
1157
+ agent_pool: mi325_4
1158
+ # grade: Blocking
1159
+ num_gpus: 4
1160
+ source_file_dependencies:
1161
+ - vllm/lora
1162
+ - tests/lora
1163
+ commands:
1164
+ # FIXIT: find out which code initialize cuda before running the test
1165
+ # before the fix, we need to use spawn to test it
1166
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1167
+ # There is some Tensor Parallelism related processing logic in LoRA that
1168
+ # requires multi-GPU testing for validation.
1169
+ - pytest -v -s -x lora/test_chatglm3_tp.py
1170
+ - pytest -v -s -x lora/test_llama_tp.py
1171
+ - pytest -v -s -x lora/test_llm_with_multi_loras.py
1172
+
1173
+
1174
+- label: Weight Loading Multiple GPU Test # 33min
1175
+ timeout_in_minutes: 45
1176
+ mirror_hardwares: [amdexperimental]
1177
+ agent_pool: mi325_2
1178
+ # grade: Blocking
1179
+ working_dir: "/vllm-workspace/tests"
1180
+ num_gpus: 2
1181
+ optional: true
1182
+ source_file_dependencies:
1183
+ - vllm/
1184
+ - tests/weight_loading
1185
+ commands:
1186
+ - bash weight_loading/run_model_weight_loading_test.sh -c weight_loading/models.txt
1187
+
1188
+- label: Weight Loading Multiple GPU Test - Large Models # optional
1189
+ mirror_hardwares: [amdexperimental]
1190
+ agent_pool: mi325_2
1191
+ # grade: Blocking
1192
+ working_dir: "/vllm-workspace/tests"
1193
+ num_gpus: 2
1194
+ gpu: a100
1195
+ optional: true
1196
+ source_file_dependencies:
1197
+ - vllm/
1198
+ - tests/weight_loading
1199
+ commands:
1200
+ - bash weight_loading/run_model_weight_loading_test.sh -c weight_loading/models-large.txt
1201
+
1202
+
1203
+##### multi gpus test #####
1204
+##### A100 test #####
1205
+
1206
+- label: Distributed Tests (A100) # optional
1207
+ gpu: a100
1208
+ optional: true
1209
+ num_gpus: 4
1210
+ source_file_dependencies:
1211
+ - vllm/
1212
+ commands:
1213
+ # NOTE: don't test llama model here, it seems hf implementation is buggy
1214
+ # see https://github.com/vllm-project/vllm/pull/5689 for details
1215
+ - pytest -v -s distributed/test_custom_all_reduce.py
1216
+ - torchrun --nproc_per_node=2 distributed/test_ca_buffer_sharing.py
1217
+ - TARGET_TEST_SUITE=A100 pytest basic_correctness/ -v -s -m 'distributed(num_gpus=2)'
1218
+ - pytest -v -s -x lora/test_mixtral.py
1219
+
1220
+- label: LM Eval Large Models # optional
1221
+ gpu: a100
1222
+ optional: true
1223
+ num_gpus: 4
1224
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
1225
+ source_file_dependencies:
1226
+ - csrc/
1227
+ - vllm/model_executor/layers/quantization
1228
+ commands:
1229
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1230
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large.txt --tp-size=4
1231
+
1232
+##### H200 test #####
1233
+- label: Distrubted Tests (H200) # optional
1234
+ gpu: h200
1235
+ optional: true
1236
+ working_dir: "/vllm-workspace/"
1237
+ num_gpus: 2
1238
+ commands:
1239
+ - pytest -v -s tests/distributed/test_context_parallel.py
1240
+ - CUDA_VISIBLE_DEVICES=1,2 VLLM_ALL2ALL_BACKEND=deepep_high_throughput VLLM_USE_DEEP_GEMM=1 VLLM_LOGGING_LEVEL=DEBUG python3 examples/offline_inference/data_parallel.py --model Qwen/Qwen1.5-MoE-A2.7B --tp-size=1 --dp-size=2 --max-model-len 2048
1241
+
1242
+##### B200 test #####
1243
+- label: Distributed Tests (B200) # optional
1244
+ gpu: b200
1245
+ optional: true
1246
+ working_dir: "/vllm-workspace/"
1247
+ num_gpus: 2
1248
+ commands:
1249
+ - pytest -v -s tests/distributed/test_context_parallel.py
1250
+ - pytest -v -s tests/distributed/test_nccl_symm_mem_allreduce.py
1251
+
1252
+##### RL Integration Tests #####
1253
+- label: Prime-RL Integration Test # 15min
1254
+ mirror_hardwares: [amdexperimental]
1255
+ agent_pool: mi325_2
1256
+ # grade: Blocking
1257
+ timeout_in_minutes: 30
1258
+ optional: true
1259
+ num_gpus: 2
1260
+ working_dir: "/vllm-workspace"
1261
+ source_file_dependencies:
1262
+ - vllm/
1263
+ - .buildkite/scripts/run-prime-rl-test.sh
1264
+ commands:
1265
+ - bash .buildkite/scripts/run-prime-rl-test.sh