@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / d3cc8427c0
Fork 0

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