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 8, 05:00 UTC
Targeting the MI355 agent pool with all existing tests (#34629)
Signed-off-by: Alexei V. Ivanov <alexei.ivanov@amd.com>
Alexei-V-Ivanov-AMD committed
Feb 16, 2026 at 11:02 UTC
824f9e8f3c7f0a688b6093d0c85ed6b39ba314e1
1 file changed
+1666
.buildkite/test-amd.yaml
+1666
@@ -1692,3 +1692,1669 @@ steps:
1692
working_dir: "/vllm-workspace"
1693
commands:
1694
- bash .buildkite/scripts/scheduled_integration_test/qwen3_next_mtp_async_eplb.sh 0.8 1319 8040
1695
+
1696
+
1697
+
1698
+#####################################################################################################################################
1699
+# #
1700
+# MI355 test definitions ( currently the test set is completely mirrored // TBD which tests are to be routed there ultimately) #
1701
+# #
1702
+#####################################################################################################################################
1703
+
1704
+- label: Pytorch Nightly Dependency Override Check # 2min
1705
+ # if this test fails, it means the nightly torch version is not compatible with some
1706
+ # of the dependencies. Please check the error message and add the package to whitelist
1707
+ # in /vllm/tools/pre_commit/generate_nightly_torch_test.py
1708
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
1709
+ agent_pool: mi355_1
1710
+ grade: Blocking
1711
+ soft_fail: true
1712
+ source_file_dependencies:
1713
+ - requirements/nightly_torch_test.txt
1714
+ commands:
1715
+ - bash standalone_tests/pytorch_nightly_dependency.sh
1716
+
1717
+- label: Async Engine, Inputs, Utils, Worker Test # 10min
1718
+ timeout_in_minutes: 15
1719
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
1720
+ agent_pool: mi355_1
1721
+ grade: Blocking
1722
+ source_file_dependencies:
1723
+ - vllm/
1724
+ - tests/multimodal
1725
+ - tests/utils_
1726
+ commands:
1727
+ - pytest -v -s -m 'not cpu_test' multimodal
1728
+ - pytest -v -s utils_
1729
+
1730
+- label: Async Engine, Inputs, Utils, Worker, Config Test (CPU) # 20min
1731
+ timeout_in_minutes: 30
1732
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
1733
+ agent_pool: mi355_1
1734
+ grade: Blocking
1735
+ source_file_dependencies:
1736
+ - vllm/
1737
+ - tests/test_inputs.py
1738
+ - tests/test_outputs.py
1739
+ - tests/test_pooling_params.py
1740
+ - tests/multimodal
1741
+ - tests/renderers
1742
+ - tests/standalone_tests/lazy_imports.py
1743
+ - tests/tokenizers_
1744
+ - tests/tool_parsers
1745
+ - tests/transformers_utils
1746
+ - tests/config
1747
+ no_gpu: true
1748
+ commands:
1749
+ - python3 standalone_tests/lazy_imports.py
1750
+ - pytest -v -s test_inputs.py
1751
+ - pytest -v -s test_outputs.py
1752
+ - pytest -v -s test_pooling_params.py
1753
+ - pytest -v -s -m 'cpu_test' multimodal
1754
+ - pytest -v -s renderers
1755
+ - pytest -v -s tokenizers_
1756
+ - pytest -v -s tool_parsers
1757
+ - pytest -v -s transformers_utils
1758
+ - pytest -v -s config
1759
+
1760
+- label: Python-only Installation Test # 10min
1761
+ timeout_in_minutes: 20
1762
+ mirror_hardwares: [amdexperimental]
1763
+ agent_pool: mi355_1
1764
+ # grade: Blocking
1765
+ source_file_dependencies:
1766
+ - tests/standalone_tests/python_only_compile.sh
1767
+ - setup.py
1768
+ commands:
1769
+ - bash standalone_tests/python_only_compile.sh
1770
+
1771
+- label: Basic Correctness Test # 20min
1772
+ timeout_in_minutes: 30
1773
+ mirror_hardwares: [amdexperimental, amdproduction]
1774
+ agent_pool: mi355_1
1775
+ # grade: Blocking
1776
+ fast_check: true
1777
+ torch_nightly: true
1778
+ source_file_dependencies:
1779
+ - vllm/
1780
+ - tests/basic_correctness/test_basic_correctness
1781
+ - tests/basic_correctness/test_cpu_offload
1782
+ - tests/basic_correctness/test_cumem.py
1783
+ commands:
1784
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1785
+ - pytest -v -s basic_correctness/test_cumem.py
1786
+ - pytest -v -s basic_correctness/test_basic_correctness.py
1787
+ - pytest -v -s basic_correctness/test_cpu_offload.py
1788
+
1789
+- label: Entrypoints Unit Tests # 5min
1790
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
1791
+ agent_pool: mi355_1
1792
+ grade: Blocking
1793
+ timeout_in_minutes: 10
1794
+ working_dir: "/vllm-workspace/tests"
1795
+ fast_check: true
1796
+ source_file_dependencies:
1797
+ - vllm/entrypoints
1798
+ - tests/entrypoints/
1799
+ commands:
1800
+ - pytest -v -s entrypoints/openai/tool_parsers
1801
+ - pytest -v -s entrypoints/ --ignore=entrypoints/llm --ignore=entrypoints/openai --ignore=entrypoints/rpc --ignore=entrypoints/instrumentator --ignore=entrypoints/offline_mode --ignore=entrypoints/test_chat_utils.py --ignore=entrypoints/pooling
1802
+
1803
+- label: Entrypoints Integration Test (LLM) # 30min
1804
+ timeout_in_minutes: 40
1805
+ mirror_hardwares: [amdexperimental, amdproduction]
1806
+ agent_pool: mi355_1
1807
+ # grade: Blocking
1808
+ working_dir: "/vllm-workspace/tests"
1809
+ fast_check: true
1810
+ torch_nightly: true
1811
+ source_file_dependencies:
1812
+ - vllm/
1813
+ - tests/entrypoints/llm
1814
+ - tests/entrypoints/offline_mode
1815
+ commands:
1816
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1817
+ - pytest -v -s entrypoints/llm --ignore=entrypoints/llm/test_generate.py --ignore=entrypoints/llm/test_collective_rpc.py
1818
+ - pytest -v -s entrypoints/llm/test_generate.py # it needs a clean process
1819
+ - pytest -v -s entrypoints/offline_mode # Needs to avoid interference with other tests
1820
+
1821
+- label: Entrypoints Integration Test (API Server 1) # 100min
1822
+ timeout_in_minutes: 130
1823
+ mirror_hardwares: [amdexperimental]
1824
+ agent_pool: mi355_1
1825
+ # grade: Blocking
1826
+ working_dir: "/vllm-workspace/tests"
1827
+ fast_check: true
1828
+ torch_nightly: true
1829
+ source_file_dependencies:
1830
+ - vllm/
1831
+ - tests/entrypoints/openai
1832
+ - tests/entrypoints/test_chat_utils
1833
+ commands:
1834
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1835
+ - 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/tool_parsers/ --ignore=entrypoints/openai/responses
1836
+ - pytest -v -s entrypoints/test_chat_utils.py
1837
+
1838
+- label: Entrypoints Integration Test (API Server 2)
1839
+ timeout_in_minutes: 50
1840
+ mirror_hardwares: [amdexperimental]
1841
+ agent_pool: mi355_1
1842
+ # grade: Blocking
1843
+ working_dir: "/vllm-workspace/tests"
1844
+ fast_check: true
1845
+ torch_nightly: true
1846
+ source_file_dependencies:
1847
+ - vllm/
1848
+ - tests/entrypoints/rpc
1849
+ - tests/entrypoints/instrumentator
1850
+ - tests/tool_use
1851
+ commands:
1852
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1853
+ - pytest -v -s entrypoints/instrumentator
1854
+ - PYTHONPATH=/vllm-workspace pytest -v -s entrypoints/rpc
1855
+ - pytest -v -s tool_use
1856
+
1857
+- label: Entrypoints Integration Test (Pooling)
1858
+ timeout_in_minutes: 50
1859
+ mirror_hardwares: [amdexperimental]
1860
+ agent_pool: mi355_1
1861
+ # grade: Blocking
1862
+ working_dir: "/vllm-workspace/tests"
1863
+ fast_check: true
1864
+ torch_nightly: true
1865
+ source_file_dependencies:
1866
+ - vllm/
1867
+ - tests/entrypoints/pooling
1868
+ commands:
1869
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1870
+ - pytest -v -s entrypoints/pooling
1871
+
1872
+- label: Entrypoints Integration Test (Responses API)
1873
+ timeout_in_minutes: 50
1874
+ mirror_hardwares: [amdexperimental]
1875
+ agent_pool: mi355_1
1876
+ # grade: Blocking
1877
+ working_dir: "/vllm-workspace/tests"
1878
+ fast_check: true
1879
+ torch_nightly: true
1880
+ source_file_dependencies:
1881
+ - vllm/
1882
+ - tests/entrypoints/openai/responses
1883
+ commands:
1884
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
1885
+ - pytest -v -s entrypoints/openai/responses
1886
+
1887
+- label: Distributed Tests (4 GPUs) # 35min
1888
+ timeout_in_minutes: 50
1889
+ mirror_hardwares: [amdexperimental]
1890
+ agent_pool: mi355_4
1891
+ # grade: Blocking
1892
+ working_dir: "/vllm-workspace/tests"
1893
+ num_gpus: 4
1894
+ source_file_dependencies:
1895
+ - vllm/distributed/
1896
+ - tests/distributed/test_utils
1897
+ - tests/distributed/test_pynccl
1898
+ - tests/distributed/test_events
1899
+ - tests/compile/fullgraph/test_basic_correctness.py
1900
+ - examples/offline_inference/rlhf.py
1901
+ - examples/offline_inference/rlhf_colocate.py
1902
+ - examples/offline_inference/new_weight_syncing/
1903
+ - tests/examples/offline_inference/data_parallel.py
1904
+ - tests/v1/distributed
1905
+ - tests/v1/engine/test_engine_core_client.py
1906
+ - tests/distributed/test_symm_mem_allreduce.py
1907
+ commands:
1908
+ # Work around HIP bug tracked here: https://github.com/ROCm/hip/issues/3876
1909
+ # TODO: Remove when the bug is fixed in a future ROCm release
1910
+ - export TORCH_NCCL_BLOCKING_WAIT=1
1911
+ # test with torchrun tp=2 and external_dp=2
1912
+ - torchrun --nproc-per-node=4 distributed/test_torchrun_example.py
1913
+ # test with torchrun tp=2 and pp=2
1914
+ - PP_SIZE=2 torchrun --nproc-per-node=4 distributed/test_torchrun_example.py
1915
+ # test with torchrun tp=4 and dp=1
1916
+ - TP_SIZE=4 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
1917
+ # test with torchrun tp=2, pp=2 and dp=1
1918
+ - PP_SIZE=2 TP_SIZE=2 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
1919
+ # test with torchrun tp=1 and dp=4 with ep
1920
+ - DP_SIZE=4 ENABLE_EP=1 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
1921
+ # test with torchrun tp=2 and dp=2 with ep
1922
+ - TP_SIZE=2 DP_SIZE=2 ENABLE_EP=1 torchrun --nproc-per-node=4 distributed/test_torchrun_example_moe.py
1923
+ # test with internal dp
1924
+ - python3 ../examples/offline_inference/data_parallel.py --enforce-eager
1925
+ - TP_SIZE=2 DP_SIZE=2 pytest -v -s v1/distributed/test_async_llm_dp.py
1926
+ - TP_SIZE=2 DP_SIZE=2 pytest -v -s v1/distributed/test_eagle_dp.py
1927
+ - TP_SIZE=2 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py
1928
+ - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_internal_lb_dp.py
1929
+ - TP_SIZE=1 DP_SIZE=4 pytest -v -s v1/distributed/test_hybrid_lb_dp.py
1930
+ - pytest -v -s v1/engine/test_engine_core_client.py::test_kv_cache_events_dp
1931
+ - pytest -v -s distributed/test_utils.py
1932
+ - pytest -v -s compile/fullgraph/test_basic_correctness.py
1933
+ - pytest -v -s distributed/test_pynccl.py
1934
+ - pytest -v -s distributed/test_events.py
1935
+ - pytest -v -s distributed/test_symm_mem_allreduce.py
1936
+ # TODO: create a dedicated test section for multi-GPU example tests
1937
+ # when we have multiple distributed example tests
1938
+ # OLD rlhf examples
1939
+ - pushd ../examples/offline_inference
1940
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 rlhf.py
1941
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 RAY_DEDUP_LOGS=0 python3 rlhf_colocate.py
1942
+ - popd
1943
+ # NEW rlhf examples
1944
+ - pushd ../examples/offline_inference/new_weight_syncing
1945
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 rlhf.py
1946
+ - VLLM_ALLOW_INSECURE_SERIALIZATION=1 python3 rlhf_async_new_apis.py
1947
+ - popd
1948
+
1949
+- label: Distributed Tests (8 GPUs) # 4min
1950
+ timeout_in_minutes: 10
1951
+ mirror_hardwares: [amdexperimental]
1952
+ agent_pool: mi355_8
1953
+ # grade: Blocking
1954
+ gpu: h100
1955
+ num_gpus: 8
1956
+ working_dir: "/vllm-workspace/tests"
1957
+ source_file_dependencies:
1958
+ - examples/offline_inference/torchrun_dp_example.py
1959
+ - vllm/config/parallel.py
1960
+ - vllm/distributed/
1961
+ - vllm/v1/engine/llm_engine.py
1962
+ - vllm/v1/executor/uniproc_executor.py
1963
+ - vllm/v1/worker/gpu_worker.py
1964
+ commands:
1965
+ # test with torchrun tp=2 and dp=4 with ep
1966
+ # Work around HIP bug tracked here: https://github.com/ROCm/hip/issues/3876
1967
+ # TODO: Remove when the bug is fixed in a future ROCm release
1968
+ - export TORCH_NCCL_BLOCKING_WAIT=1
1969
+ - torchrun --nproc-per-node=8 ../examples/offline_inference/torchrun_dp_example.py --tp-size=2 --pp-size=1 --dp-size=4 --enable-ep
1970
+
1971
+- label: EPLB Algorithm Test # 5min
1972
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
1973
+ agent_pool: mi355_1
1974
+ grade: Blocking
1975
+ timeout_in_minutes: 15
1976
+ working_dir: "/vllm-workspace/tests"
1977
+ source_file_dependencies:
1978
+ - vllm/distributed/eplb
1979
+ - tests/distributed/test_eplb_algo.py
1980
+ commands:
1981
+ - pytest -v -s distributed/test_eplb_algo.py
1982
+
1983
+- label: EPLB Execution Test # 10min
1984
+ mirror_hardwares: [amdexperimental, amdproduction]
1985
+ agent_pool: mi355_4
1986
+ # grade: Blocking
1987
+ timeout_in_minutes: 20
1988
+ working_dir: "/vllm-workspace/tests"
1989
+ num_gpus: 4
1990
+ source_file_dependencies:
1991
+ - vllm/distributed/eplb
1992
+ - tests/distributed/test_eplb_execute.py
1993
+ commands:
1994
+ - pytest -v -s distributed/test_eplb_execute.py
1995
+ - pytest -v -s distributed/test_eplb_spec_decode.py
1996
+
1997
+- label: Metrics, Tracing Test # 12min
1998
+ timeout_in_minutes: 20
1999
+ mirror_hardwares: [amdexperimental, amdproduction]
2000
+ agent_pool: mi355_2
2001
+ # grade: Blocking
2002
+ num_gpus: 2
2003
+ source_file_dependencies:
2004
+ - vllm/
2005
+ - tests/v1/tracing
2006
+ commands:
2007
+ - "pip install \
2008
+ 'opentelemetry-sdk>=1.26.0' \
2009
+ 'opentelemetry-api>=1.26.0' \
2010
+ 'opentelemetry-exporter-otlp>=1.26.0' \
2011
+ 'opentelemetry-semantic-conventions-ai>=0.4.1'"
2012
+ - pytest -v -s v1/tracing
2013
+
2014
+##### fast check tests #####
2015
+##### 1 GPU test #####
2016
+
2017
+- label: Regression Test # 7min
2018
+ timeout_in_minutes: 20
2019
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
2020
+ agent_pool: mi355_1
2021
+ grade: Blocking
2022
+ source_file_dependencies:
2023
+ - vllm/
2024
+ - tests/test_regression
2025
+ commands:
2026
+ - pip install modelscope
2027
+ - pytest -v -s test_regression.py
2028
+ working_dir: "/vllm-workspace/tests" # optional
2029
+
2030
+- label: Engine Test # 9min
2031
+ timeout_in_minutes: 15
2032
+ mirror_hardwares: [amdexperimental, amdproduction]
2033
+ agent_pool: mi355_1
2034
+ # grade: Blocking
2035
+ source_file_dependencies:
2036
+ - vllm/
2037
+ - tests/engine
2038
+ - tests/test_sequence
2039
+ - tests/test_config
2040
+ - tests/test_logger
2041
+ - tests/test_vllm_port
2042
+ commands:
2043
+ - pytest -v -s engine test_sequence.py test_config.py test_logger.py test_vllm_port.py
2044
+
2045
+- label: V1 Test e2e + engine # 65min
2046
+ timeout_in_minutes: 90
2047
+ mirror_hardwares: [amdexperimental]
2048
+ # The test uses 4 GPUs, but we schedule it on 8-GPU machines for stability.
2049
+ # See discussion here: https://github.com/vllm-project/vllm/pull/31040
2050
+ agent_pool: mi355_8
2051
+ # grade: Blocking
2052
+ source_file_dependencies:
2053
+ - vllm/
2054
+ - tests/v1
2055
+ commands:
2056
+ # TODO: accuracy does not match, whether setting
2057
+ # VLLM_USE_FLASHINFER_SAMPLER or not on H100.
2058
+ - pytest -v -s v1/e2e
2059
+ - pytest -v -s v1/engine
2060
+
2061
+- label: V1 Test entrypoints # 35min
2062
+ timeout_in_minutes: 50
2063
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
2064
+ agent_pool: mi355_1
2065
+ grade: Blocking
2066
+ source_file_dependencies:
2067
+ - vllm/
2068
+ - tests/v1
2069
+ commands:
2070
+ - pytest -v -s v1/entrypoints
2071
+
2072
+- label: V1 Test others # 42min
2073
+ timeout_in_minutes: 60
2074
+ mirror_hardwares: [amdexperimental]
2075
+ agent_pool: mi355_1
2076
+ # grade: Blocking
2077
+ source_file_dependencies:
2078
+ - vllm/
2079
+ - tests/v1
2080
+ commands:
2081
+ # split the test to avoid interference
2082
+ - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
2083
+ - pytest -v -s -m 'not cpu_test' v1/core
2084
+ - pytest -v -s v1/executor
2085
+ - pytest -v -s v1/kv_offload
2086
+ - pytest -v -s v1/sample
2087
+ - pytest -v -s v1/logits_processors
2088
+ - pytest -v -s v1/worker
2089
+ - pytest -v -s v1/spec_decode
2090
+ - pytest -v -s -m 'not cpu_test' v1/kv_connector/unit
2091
+ - pytest -v -s -m 'not cpu_test' v1/metrics
2092
+ - pytest -v -s v1/test_oracle.py
2093
+ - pytest -v -s v1/test_request.py
2094
+ - pytest -v -s v1/test_outputs.py
2095
+ # Integration test for streaming correctness (requires special branch).
2096
+ - pip install -U git+https://github.com/robertgshaw2-redhat/lm-evaluation-harness.git@streaming-api
2097
+ - pytest -v -s entrypoints/openai/correctness/test_lmeval.py::test_lm_eval_accuracy_v1_engine
2098
+
2099
+# TODO: Add the "V1 Test attetion (MI300)" test group
2100
+
2101
+- label: V1 Test attention (H100) # 10min
2102
+ mirror_hardwares: [amdexperimental]
2103
+ agent_pool: mi355_1
2104
+ # grade: Blocking
2105
+ timeout_in_minutes: 30
2106
+ gpu: h100
2107
+ source_file_dependencies:
2108
+ - vllm/config/attention.py
2109
+ - vllm/model_executor/layers/attention
2110
+ - vllm/v1/attention
2111
+ - tests/v1/attention
2112
+ commands:
2113
+ - pytest -v -s v1/attention
2114
+
2115
+- label: Batch Invariance Tests (H100) # 10min
2116
+ mirror_hardwares: [amdexperimental]
2117
+ agent_pool: mi355_1
2118
+ timeout_in_minutes: 25
2119
+ gpu: h100
2120
+ source_file_dependencies:
2121
+ - vllm/v1/attention
2122
+ - vllm/model_executor/layers
2123
+ - tests/v1/determinism/
2124
+ commands:
2125
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
2126
+ - pip install pytest-timeout pytest-forked
2127
+ - pytest -v -s v1/determinism/test_batch_invariance.py
2128
+ - pytest -v -s v1/determinism/test_rms_norm_batch_invariant.py
2129
+
2130
+- label: V1 Test attention (B200) # 10min
2131
+ timeout_in_minutes: 30
2132
+ gpu: b200
2133
+ source_file_dependencies:
2134
+ - vllm/config/attention.py
2135
+ - vllm/model_executor/layers/attention
2136
+ - vllm/v1/attention
2137
+ - tests/v1/attention
2138
+ commands:
2139
+ - pytest -v -s v1/attention
2140
+
2141
+- label: V1 Test others (CPU) # 5 mins
2142
+ mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
2143
+ agent_pool: mi355_1
2144
+ grade: Blocking
2145
+ source_file_dependencies:
2146
+ - vllm/
2147
+ - tests/v1
2148
+ no_gpu: true
2149
+ commands:
2150
+ # split the test to avoid interference
2151
+ - pytest -v -s -m 'cpu_test' v1/core
2152
+ - pytest -v -s v1/structured_output
2153
+ - pytest -v -s v1/test_serial_utils.py
2154
+ - pytest -v -s -m 'cpu_test' v1/kv_connector/unit
2155
+ - pytest -v -s -m 'cpu_test' v1/metrics
2156
+
2157
+
2158
+- label: Examples Test # 30min
2159
+ timeout_in_minutes: 45
2160
+ mirror_hardwares: [amdexperimental, amdproduction]
2161
+ agent_pool: mi355_1
2162
+ # grade: Blocking
2163
+ working_dir: "/vllm-workspace/examples"
2164
+ source_file_dependencies:
2165
+ - vllm/entrypoints
2166
+ - vllm/multimodal
2167
+ - examples/
2168
+ commands:
2169
+ - pip install tensorizer # for tensorizer test
2170
+ # for basic
2171
+ - python3 offline_inference/basic/chat.py
2172
+ - python3 offline_inference/basic/generate.py --model facebook/opt-125m
2173
+ - python3 offline_inference/basic/generate.py --model meta-llama/Llama-2-13b-chat-hf --cpu-offload-gb 10
2174
+ - python3 offline_inference/basic/classify.py
2175
+ - python3 offline_inference/basic/embed.py
2176
+ - python3 offline_inference/basic/score.py
2177
+ # for multi-modal models
2178
+ - python3 offline_inference/audio_language.py --seed 0
2179
+ - python3 offline_inference/vision_language.py --seed 0
2180
+ - python3 offline_inference/vision_language_multi_image.py --seed 0
2181
+ - python3 offline_inference/encoder_decoder_multimodal.py --model-type whisper --seed 0
2182
+ # for pooling models
2183
+ - python3 pooling/embed/vision_embedding_offline.py --seed 0
2184
+ # for features demo
2185
+ - python3 offline_inference/prefix_caching.py
2186
+ - python3 offline_inference/llm_engine_example.py
2187
+ - 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
2188
+ - 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
2189
+ # https://github.com/vllm-project/vllm/pull/26682 uses slightly more memory in PyTorch 2.9+ causing this test to OOM in 1xL4 GPU
2190
+ - 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 1536
2191
+ #- 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
2192
+
2193
+- label: Platform Tests (CUDA) # 4min
2194
+ timeout_in_minutes: 15
2195
+ mirror_hardwares: [amdexperimental, amdproduction]
2196
+ agent_pool: mi355_1
2197
+ # grade: Blocking
2198
+ source_file_dependencies:
2199
+ - vllm/
2200
+ - tests/cuda
2201
+ commands:
2202
+ - pytest -v -s cuda/test_cuda_context.py
2203
+ - pytest -v -s cuda/test_platform_no_cuda_init.py
2204
+
2205
+- label: Samplers Test # 56min
2206
+ timeout_in_minutes: 75
2207
+ mirror_hardwares: [amdexperimental]
2208
+ agent_pool: mi355_1
2209
+ # grade: Blocking
2210
+ source_file_dependencies:
2211
+ - vllm/model_executor/layers
2212
+ - vllm/sampling_metadata.py
2213
+ - tests/samplers
2214
+ - tests/conftest.py
2215
+ commands:
2216
+ - pytest -v -s -m 'not skip_v1' samplers
2217
+
2218
+- label: LoRA Test %N # 20min each
2219
+ timeout_in_minutes: 30
2220
+ mirror_hardwares: [amdexperimental]
2221
+ agent_pool: mi355_1
2222
+ # grade: Blocking
2223
+ source_file_dependencies:
2224
+ - vllm/lora
2225
+ - tests/lora
2226
+ commands:
2227
+ - pytest -v -s lora \
2228
+ --shard-id=$$BUILDKITE_PARALLEL_JOB \
2229
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
2230
+ --ignore=lora/test_chatglm3_tp.py \
2231
+ --ignore=lora/test_llama_tp.py \
2232
+ --ignore=lora/test_llm_with_multi_loras.py \
2233
+ --ignore=lora/test_olmoe_tp.py \
2234
+ --ignore=lora/test_deepseekv2_tp.py \
2235
+ --ignore=lora/test_gptoss_tp.py \
2236
+ --ignore=lora/test_qwen3moe_tp.py
2237
+ parallelism: 4
2238
+
2239
+- label: PyTorch Compilation Unit Tests # 15min
2240
+ timeout_in_minutes: 30
2241
+ mirror_hardwares: [amdexperimental, amdproduction]
2242
+ agent_pool: mi355_1
2243
+ # grade: Blocking
2244
+ torch_nightly: true
2245
+ source_file_dependencies:
2246
+ - vllm/
2247
+ - tests/compile
2248
+ commands:
2249
+ # Run unit tests defined directly under compile/,
2250
+ # not including subdirectories, which are usually heavier
2251
+ # tests covered elsewhere.
2252
+ # Use `find` to launch multiple instances of pytest so that
2253
+ # they do not suffer from https://github.com/vllm-project/vllm/issues/28965
2254
+ - "find compile/ -maxdepth 1 -name 'test_*.py' -exec pytest -s -v {} \\\\;"
2255
+
2256
+- label: PyTorch Fullgraph Smoke Test # 15min
2257
+ timeout_in_minutes: 30
2258
+ mirror_hardwares: [amdexperimental, amdproduction]
2259
+ agent_pool: mi355_1
2260
+ # grade: Blocking
2261
+ torch_nightly: true
2262
+ source_file_dependencies:
2263
+ - vllm/
2264
+ - tests/compile
2265
+ commands:
2266
+ # Run smoke tests under fullgraph directory, except test_full_graph.py
2267
+ # as it is a heavy test that is covered in other steps.
2268
+ # Use `find` to launch multiple instances of pytest so that
2269
+ # they do not suffer from https://github.com/vllm-project/vllm/issues/28965
2270
+ - "find compile/fullgraph/ -name 'test_*.py' -not -name 'test_full_graph.py' -exec pytest -s -v {} \\\\;"
2271
+
2272
+- label: PyTorch Fullgraph Test # 27min
2273
+ timeout_in_minutes: 40
2274
+ mirror_hardwares: [amdexperimental, amdproduction]
2275
+ agent_pool: mi355_1
2276
+ # grade: Blocking
2277
+ torch_nightly: true
2278
+ source_file_dependencies:
2279
+ - vllm/
2280
+ - tests/compile
2281
+ commands:
2282
+ - pytest -v -s compile/fullgraph/test_full_graph.py -k 'not test_fp8_kv_scale_compile'
2283
+ # # Limit to no custom ops to reduce running time
2284
+ # # Wrap with quotes to escape yaml and avoid starting -k string with a -
2285
+ # - "pytest -v -s compile/distributed/test_fusions_e2e.py -k 'TRITON and not +quant_fp8 and not Llama-4'"
2286
+ # Old E2E tests were removed in https://github.com/vllm-project/vllm/pull/33293
2287
+ # in favor of new tests in fusions_e2e. We avoid replicating the new jobs in this file as it's deprecated.
2288
+
2289
+- label: Cudagraph test
2290
+ timeout_in_minutes: 20
2291
+ mirror_hardwares: [amdexperimental, amdproduction]
2292
+ agent_pool: mi355_1
2293
+ source_file_dependencies:
2294
+ - tests/v1/cudagraph
2295
+ - vllm/v1/cudagraph_dispatcher.py
2296
+ - vllm/config/compilation.py
2297
+ - vllm/compilation
2298
+ commands:
2299
+ - pytest -v -s v1/cudagraph/test_cudagraph_dispatch.py
2300
+ - pytest -v -s v1/cudagraph/test_cudagraph_mode.py
2301
+
2302
+- label: Kernels Core Operation Test # 48min
2303
+ timeout_in_minutes: 75
2304
+ mirror_hardwares: [amdexperimental, amdproduction]
2305
+ agent_pool: mi355_1
2306
+ # grade: Blocking
2307
+ source_file_dependencies:
2308
+ - csrc/
2309
+ - tests/kernels/core
2310
+ - tests/kernels/test_top_k_per_row.py
2311
+ commands:
2312
+ - pytest -v -s kernels/core kernels/test_top_k_per_row.py
2313
+
2314
+- label: Kernels Attention Test %N # 23min
2315
+ timeout_in_minutes: 35
2316
+ mirror_hardwares: [amdexperimental, amdproduction]
2317
+ agent_pool: mi355_1
2318
+ # grade: Blocking
2319
+ source_file_dependencies:
2320
+ - csrc/attention/
2321
+ - vllm/v1/attention
2322
+ # TODO: remove this dependency (https://github.com/vllm-project/vllm/issues/32267)
2323
+ - vllm/model_executor/layers/attention
2324
+ - tests/kernels/attention
2325
+ commands:
2326
+ - pytest -v -s kernels/attention --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
2327
+ parallelism: 2
2328
+
2329
+- label: Kernels Quantization Test %N # 64min
2330
+ timeout_in_minutes: 90
2331
+ mirror_hardwares: [amdexperimental]
2332
+ agent_pool: mi355_1
2333
+ # grade: Blocking
2334
+ source_file_dependencies:
2335
+ - csrc/quantization/
2336
+ - vllm/model_executor/layers/quantization
2337
+ - tests/kernels/quantization
2338
+ commands:
2339
+ - pytest -v -s kernels/quantization --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
2340
+ parallelism: 2
2341
+
2342
+- label: Kernels MoE Test %N # 40min
2343
+ timeout_in_minutes: 60
2344
+ mirror_hardwares: [amdexperimental, amdproduction]
2345
+ agent_pool: mi355_1
2346
+ # grade: Blocking
2347
+ source_file_dependencies:
2348
+ - csrc/quantization/cutlass_w8a8/moe/
2349
+ - csrc/moe/
2350
+ - tests/kernels/moe
2351
+ - vllm/model_executor/layers/fused_moe/
2352
+ - vllm/distributed/device_communicators/
2353
+ - vllm/envs.py
2354
+ - vllm/config
2355
+ commands:
2356
+ - pytest -v -s kernels/moe --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
2357
+ parallelism: 2
2358
+
2359
+- label: Kernels Mamba Test # 31min
2360
+ timeout_in_minutes: 45
2361
+ mirror_hardwares: [amdexperimental, amdproduction]
2362
+ agent_pool: mi355_1
2363
+ # grade: Blocking
2364
+ source_file_dependencies:
2365
+ - csrc/mamba/
2366
+ - tests/kernels/mamba
2367
+ - vllm/model_executor/layers/mamba/ops
2368
+ commands:
2369
+ - pytest -v -s kernels/mamba
2370
+
2371
+- label: Kernels DeepGEMM Test (H100) # Nvidia-centric
2372
+# Not replicating for CUTLAS & CuTe
2373
+ timeout_in_minutes: 45
2374
+ gpu: h100
2375
+ num_gpus: 1
2376
+ source_file_dependencies:
2377
+ - tools/install_deepgemm.sh
2378
+ - vllm/utils/deep_gemm.py
2379
+ - vllm/model_executor/layers/fused_moe
2380
+ - vllm/model_executor/layers/quantization
2381
+ - tests/kernels/quantization/test_block_fp8.py
2382
+ - tests/kernels/moe/test_deepgemm.py
2383
+ - tests/kernels/moe/test_batched_deepgemm.py
2384
+ - tests/kernels/attention/test_deepgemm_attention.py
2385
+ commands:
2386
+ - pytest -v -s kernels/quantization/test_block_fp8.py -k deep_gemm
2387
+ - pytest -v -s kernels/moe/test_deepgemm.py
2388
+ - pytest -v -s kernels/moe/test_batched_deepgemm.py
2389
+ - pytest -v -s kernels/attention/test_deepgemm_attention.py
2390
+
2391
+- label: Kernels Helion Test
2392
+ timeout_in_minutes: 30
2393
+ mirror_hardwares: [amdexperimental, amdproduction]
2394
+ agent_pool: mi355_1
2395
+ source_file_dependencies:
2396
+ - vllm/utils/import_utils.py
2397
+ - tests/kernels/helion/
2398
+ commands:
2399
+ - pip install helion
2400
+ - pytest -v -s kernels/helion/
2401
+
2402
+- label: Model Executor Test # 23min
2403
+ timeout_in_minutes: 35
2404
+ torch_nightly: true
2405
+ mirror_hardwares: [amdexperimental, amdproduction]
2406
+ agent_pool: mi355_1
2407
+ # grade: Blocking
2408
+ source_file_dependencies:
2409
+ - vllm/engine/arg_utils.py
2410
+ - vllm/config/model.py
2411
+ - vllm/model_executor
2412
+ - tests/model_executor
2413
+ - tests/entrypoints/openai/test_tensorizer_entrypoint.py
2414
+ commands:
2415
+ - apt-get update && apt-get install -y curl libsodium23
2416
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
2417
+ - pytest -v -s model_executor
2418
+ - pytest -v -s entrypoints/openai/test_tensorizer_entrypoint.py
2419
+
2420
+- label: Benchmarks # 11min
2421
+ timeout_in_minutes: 20
2422
+ mirror_hardwares: [amdexperimental, amdproduction]
2423
+ agent_pool: mi355_1
2424
+ # grade: Blocking
2425
+ working_dir: "/vllm-workspace/.buildkite"
2426
+ source_file_dependencies:
2427
+ - benchmarks/
2428
+ commands:
2429
+ - bash scripts/run-benchmarks.sh
2430
+
2431
+- label: Benchmarks CLI Test # 7min
2432
+ timeout_in_minutes: 20
2433
+ mirror_hardwares: [amdexperimental, amdproduction]
2434
+ agent_pool: mi355_1
2435
+ # grade: Blocking
2436
+ source_file_dependencies:
2437
+ - vllm/
2438
+ - tests/benchmarks/
2439
+ commands:
2440
+ - pytest -v -s benchmarks/
2441
+
2442
+- label: Quantization Test # 70min
2443
+ timeout_in_minutes: 90
2444
+ mirror_hardwares: [amdexperimental, amdproduction]
2445
+ agent_pool: mi355_1
2446
+ # grade: Blocking
2447
+ source_file_dependencies:
2448
+ - csrc/
2449
+ - vllm/model_executor/layers/quantization
2450
+ - tests/quantization
2451
+ commands:
2452
+ # temporary install here since we need nightly, will move to requirements/test.in
2453
+ # after torchao 0.12 release, and pin a working version of torchao nightly here
2454
+
2455
+ # since torchao nightly is only compatible with torch nightly currently
2456
+ # https://github.com/pytorch/ao/issues/2919, we'll have to skip new torchao tests for now
2457
+ # we can only upgrade after this is resolved
2458
+ # TODO(jerryzh168): resolve the above comment
2459
+ - uv pip install --system torchao==0.14.1
2460
+ - uv pip install --system conch-triton-kernels
2461
+ - VLLM_TEST_FORCE_LOAD_FORMAT=auto pytest -v -s quantization/ --ignore quantization/test_blackwell_moe.py
2462
+
2463
+- label: LM Eval Small Models # 53min
2464
+ timeout_in_minutes: 75
2465
+ mirror_hardwares: [amdexperimental]
2466
+ agent_pool: mi355_1
2467
+ # grade: Blocking
2468
+ source_file_dependencies:
2469
+ - csrc/
2470
+ - vllm/model_executor/layers/quantization
2471
+ autorun_on_main: true
2472
+ commands:
2473
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-small.txt
2474
+
2475
+- label: OpenAI API correctness # 10min
2476
+ timeout_in_minutes: 15
2477
+ mirror_hardwares: [amdexperimental, amdproduction]
2478
+ agent_pool: mi355_1
2479
+ # grade: Blocking
2480
+ source_file_dependencies:
2481
+ - csrc/
2482
+ - vllm/entrypoints/openai/
2483
+ - vllm/model_executor/models/whisper.py
2484
+ - tools/
2485
+ commands: # LMEval+Transcription WER check
2486
+ - bash ../tools/install_torchcodec_rocm.sh || exit 1
2487
+ - pytest -s entrypoints/openai/correctness/
2488
+
2489
+
2490
+##### models test #####
2491
+
2492
+- label: Basic Models Tests (Initialization)
2493
+ timeout_in_minutes: 45
2494
+ mirror_hardwares: [amdexperimental, amdproduction]
2495
+ agent_pool: mi355_1
2496
+ # grade: Blocking
2497
+ torch_nightly: true
2498
+ source_file_dependencies:
2499
+ - vllm/
2500
+ - tests/models/test_initialization.py
2501
+ commands:
2502
+ # Run a subset of model initialization tests
2503
+ - pytest -v -s models/test_initialization.py::test_can_initialize_small_subset
2504
+
2505
+- label: Basic Models Tests (Extra Initialization) %N
2506
+ timeout_in_minutes: 45
2507
+ mirror_hardwares: [amdexperimental, amdproduction]
2508
+ agent_pool: mi355_1
2509
+ # grade: Blocking
2510
+ torch_nightly: true
2511
+ source_file_dependencies:
2512
+ - vllm/model_executor/models/
2513
+ - vllm/transformers_utils/
2514
+ - tests/models/test_initialization.py
2515
+ commands:
2516
+ # Only when vLLM model source is modified - test initialization of a large
2517
+ # subset of supported models (the complement of the small subset in the above
2518
+ # test.) Also run if model initialization test file is modified
2519
+ - pytest -v -s models/test_initialization.py \
2520
+ -k 'not test_can_initialize_small_subset' \
2521
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
2522
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
2523
+ parallelism: 2
2524
+
2525
+- label: Basic Models Tests (Other)
2526
+ timeout_in_minutes: 45
2527
+ mirror_hardwares: [amdexperimental]
2528
+ agent_pool: mi355_1
2529
+ # grade: Blocking
2530
+ torch_nightly: true
2531
+ source_file_dependencies:
2532
+ - vllm/
2533
+ - tests/models/test_terratorch.py
2534
+ - tests/models/test_transformers.py
2535
+ - tests/models/test_registry.py
2536
+ commands:
2537
+ - pytest -v -s models/test_terratorch.py models/test_transformers.py models/test_registry.py
2538
+
2539
+- label: Basic Models Test (Other CPU) # 5min
2540
+ mirror_hardwares: [amdexperimental, amdproduction]
2541
+ agent_pool: mi355_1
2542
+ # grade: Blocking
2543
+ timeout_in_minutes: 10
2544
+ torch_nightly: true
2545
+ source_file_dependencies:
2546
+ - vllm/
2547
+ - tests/models/test_utils.py
2548
+ - tests/models/test_vision.py
2549
+ no_gpu: true
2550
+ commands:
2551
+ - pytest -v -s models/test_utils.py models/test_vision.py
2552
+
2553
+- label: Language Models Tests (Standard)
2554
+ timeout_in_minutes: 25
2555
+ mirror_hardwares: [amdexperimental, amdproduction]
2556
+ agent_pool: mi355_1
2557
+ # grade: Blocking
2558
+ torch_nightly: true
2559
+ source_file_dependencies:
2560
+ - vllm/
2561
+ - tests/models/language
2562
+ commands:
2563
+ # Test standard language models, excluding a subset of slow tests
2564
+ - pip freeze | grep -E 'torch'
2565
+ - pytest -v -s models/language -m 'core_model and (not slow_test)'
2566
+
2567
+- label: Language Models Tests (Extra Standard) %N
2568
+ timeout_in_minutes: 45
2569
+ mirror_hardwares: [amdexperimental]
2570
+ agent_pool: mi355_1
2571
+ # grade: Blocking
2572
+ torch_nightly: true
2573
+ source_file_dependencies:
2574
+ - vllm/model_executor/models/
2575
+ - tests/models/language/pooling/test_embedding.py
2576
+ - tests/models/language/generation/test_common.py
2577
+ - tests/models/language/pooling/test_classification.py
2578
+ commands:
2579
+ # Shard slow subset of standard language models tests. Only run when model
2580
+ # source is modified, or when specified test files are modified
2581
+ - pip freeze | grep -E 'torch'
2582
+ - export TORCH_NCCL_BLOCKING_WAIT=1
2583
+ - pytest -v -s models/language -m 'core_model and slow_test' \
2584
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
2585
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
2586
+ parallelism: 2
2587
+
2588
+- label: Language Models Tests (Hybrid) %N
2589
+ timeout_in_minutes: 75
2590
+ mirror_hardwares: [amdexperimental]
2591
+ agent_pool: mi355_1
2592
+ # grade: Blocking
2593
+ torch_nightly: true
2594
+ source_file_dependencies:
2595
+ - vllm/
2596
+ - tests/models/language/generation
2597
+ commands:
2598
+ # Install fast path packages for testing against transformers
2599
+ # Note: also needed to run plamo2 model in vLLM
2600
+ - uv pip install --system --no-build-isolation 'git+https://github.com/AndreasKaratzas/mamba@fix-rocm-7.0-warp-size-constexpr'
2601
+ - uv pip install --system --no-build-isolation 'git+https://github.com/Dao-AILab/causal-conv1d@v1.5.2'
2602
+ # Shard hybrid language model tests
2603
+ - pytest -v -s models/language/generation \
2604
+ -m hybrid_model \
2605
+ --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT \
2606
+ --shard-id=$$BUILDKITE_PARALLEL_JOB
2607
+ parallelism: 2
2608
+
2609
+- label: Language Models Test (Extended Generation) # 80min
2610
+ timeout_in_minutes: 110
2611
+ mirror_hardwares: [amdexperimental]
2612
+ agent_pool: mi355_1
2613
+ # grade: Blocking
2614
+ optional: true
2615
+ source_file_dependencies:
2616
+ - vllm/
2617
+ - tests/models/language/generation
2618
+ commands:
2619
+ # Install fast path packages for testing against transformers
2620
+ # Note: also needed to run plamo2 model in vLLM
2621
+ - uv pip install --system --no-build-isolation 'git+https://github.com/AndreasKaratzas/mamba@fix-rocm-7.0-warp-size-constexpr'
2622
+ - uv pip install --system --no-build-isolation 'git+https://github.com/Dao-AILab/causal-conv1d@v1.5.2'
2623
+ - pytest -v -s models/language/generation -m '(not core_model) and (not hybrid_model)'
2624
+
2625
+- label: Language Models Test (PPL)
2626
+ timeout_in_minutes: 110
2627
+ mirror_hardwares: [amdexperimental]
2628
+ agent_pool: mi355_1
2629
+ # grade: Blocking
2630
+ optional: true
2631
+ source_file_dependencies:
2632
+ - vllm/
2633
+ - tests/models/language/generation_ppl_test
2634
+ commands:
2635
+ - pytest -v -s models/language/generation_ppl_test
2636
+
2637
+- label: Language Models Test (Extended Pooling) # 36min
2638
+ timeout_in_minutes: 50
2639
+ mirror_hardwares: [amdexperimental]
2640
+ agent_pool: mi355_1
2641
+ # grade: Blocking
2642
+ optional: true
2643
+ source_file_dependencies:
2644
+ - vllm/
2645
+ - tests/models/language/pooling
2646
+ commands:
2647
+ - pytest -v -s models/language/pooling -m 'not core_model'
2648
+
2649
+- label: Language Models Test (MTEB)
2650
+ timeout_in_minutes: 110
2651
+ mirror_hardwares: [amdexperimental]
2652
+ agent_pool: mi355_1
2653
+ # grade: Blocking
2654
+ optional: true
2655
+ source_file_dependencies:
2656
+ - vllm/
2657
+ - tests/models/language/pooling_mteb_test
2658
+ commands:
2659
+ - pytest -v -s models/language/pooling_mteb_test
2660
+
2661
+- label: Multi-Modal Processor Test (CPU)
2662
+ timeout_in_minutes: 60
2663
+ mirror_hardwares: [amdexperimental]
2664
+ agent_pool: mi355_1
2665
+ source_file_dependencies:
2666
+ - vllm/
2667
+ - tests/models/multimodal
2668
+ no_gpu: true
2669
+ commands:
2670
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2671
+ - pytest -v -s models/multimodal/processing --ignore models/multimodal/processing/test_tensor_schema.py
2672
+
2673
+- label: Multi-Modal Processor Test # 44min
2674
+ timeout_in_minutes: 60
2675
+ mirror_hardwares: [amdexperimental]
2676
+ agent_pool: mi355_1
2677
+ # grade: Blocking
2678
+ source_file_dependencies:
2679
+ - vllm/
2680
+ - tests/models/multimodal
2681
+ commands:
2682
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2683
+ - pytest -v -s models/multimodal/processing
2684
+
2685
+- label: Multi-Modal Models Test (Standard) # 60min
2686
+ timeout_in_minutes: 100
2687
+ mirror_hardwares: [amdexperimental]
2688
+ agent_pool: mi355_1
2689
+ # grade: Blocking
2690
+ torch_nightly: true
2691
+ source_file_dependencies:
2692
+ - vllm/
2693
+ - tests/models/multimodal
2694
+ commands:
2695
+ - export MIOPEN_DEBUG_CONV_DIRECT=0
2696
+ - export MIOPEN_DEBUG_CONV_GEMM=0
2697
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2698
+ - pip freeze | grep -E 'torch'
2699
+ - pytest -v -s models/multimodal -m core_model --ignore models/multimodal/generation/test_whisper.py --ignore models/multimodal/processing --ignore models/multimodal/pooling/test_prithvi_mae.py
2700
+ - pytest -v -s models/multimodal/pooling/test_prithvi_mae.py -m core_model
2701
+ - 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
2702
+
2703
+- label: Multi-Modal Accuracy Eval (Small Models) # 5min
2704
+ timeout_in_minutes: 10
2705
+ mirror_hardwares: [amdexperimental, amdproduction]
2706
+ agent_pool: mi355_1
2707
+ # grade: Blocking
2708
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
2709
+ source_file_dependencies:
2710
+ - vllm/multimodal/
2711
+ - vllm/inputs/
2712
+ - vllm/v1/core/
2713
+ commands:
2714
+ - export MIOPEN_DEBUG_CONV_DIRECT=0
2715
+ - export MIOPEN_DEBUG_CONV_GEMM=0
2716
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-mm-small.txt
2717
+
2718
+- label: Multi-Modal Models Test (Extended) 1 # 60min
2719
+ timeout_in_minutes: 120
2720
+ mirror_hardwares: [amdexperimental]
2721
+ agent_pool: mi355_1
2722
+ # grade: Blocking
2723
+ optional: true
2724
+ source_file_dependencies:
2725
+ - vllm/
2726
+ - tests/models/multimodal
2727
+ commands:
2728
+ - export MIOPEN_DEBUG_CONV_DIRECT=0
2729
+ - export MIOPEN_DEBUG_CONV_GEMM=0
2730
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2731
+ - pytest -v -s models/multimodal -m 'not core_model' --ignore models/multimodal/generation/test_common.py --ignore models/multimodal/processing
2732
+
2733
+- label: Multi-Modal Models Test (Extended) 2 #60min
2734
+ timeout_in_minutes: 120
2735
+ mirror_hardwares: [amdexperimental]
2736
+ agent_pool: mi355_1
2737
+ # grade: Blocking
2738
+ optional: true
2739
+ source_file_dependencies:
2740
+ - vllm/
2741
+ - tests/models/multimodal
2742
+ commands:
2743
+ - export MIOPEN_DEBUG_CONV_DIRECT=0
2744
+ - export MIOPEN_DEBUG_CONV_GEMM=0
2745
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2746
+ - pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=0) and not core_model'
2747
+
2748
+- label: Multi-Modal Models Test (Extended) 3 # 75min
2749
+ timeout_in_minutes: 150
2750
+ mirror_hardwares: [amdexperimental]
2751
+ agent_pool: mi355_1
2752
+ # grade: Blocking
2753
+ optional: true
2754
+ source_file_dependencies:
2755
+ - vllm/
2756
+ - tests/models/multimodal
2757
+ commands:
2758
+ - export MIOPEN_DEBUG_CONV_DIRECT=0
2759
+ - export MIOPEN_DEBUG_CONV_GEMM=0
2760
+ - pip install git+https://github.com/TIGER-AI-Lab/Mantis.git
2761
+ - pytest -v -s models/multimodal/generation/test_common.py -m 'split(group=1) and not core_model'
2762
+
2763
+- label: Quantized Models Test # 45 min
2764
+ timeout_in_minutes: 60
2765
+ mirror_hardwares: [amdexperimental, amdproduction]
2766
+ agent_pool: mi355_1
2767
+ # grade: Blocking
2768
+ source_file_dependencies:
2769
+ - vllm/model_executor/layers/quantization
2770
+ - tests/models/quantization
2771
+ commands:
2772
+ - pytest -v -s models/quantization
2773
+
2774
+# This test is used only in PR development phase to test individual models and should never run on main
2775
+- label: Custom Models Test
2776
+ mirror_hardwares: [amdexperimental, amdproduction]
2777
+ agent_pool: mi355_1
2778
+ # grade: Blocking
2779
+ optional: true
2780
+ commands:
2781
+ - echo 'Testing custom models...'
2782
+ # PR authors can temporarily add commands below to test individual models
2783
+ # e.g. pytest -v -s models/encoder_decoder/vision_language/test_mllama.py
2784
+ # *To avoid merge conflicts, remember to REMOVE (not just comment out) them before merging the PR*
2785
+
2786
+- label: Transformers Nightly Models Test
2787
+ mirror_hardwares: [amdexperimental]
2788
+ agent_pool: mi355_1
2789
+ # grade: Blocking
2790
+ working_dir: "/vllm-workspace/"
2791
+ optional: true
2792
+ commands:
2793
+ - pip install --upgrade git+https://github.com/huggingface/transformers
2794
+ - pytest -v -s tests/models/test_initialization.py -k 'not (Gemma3 or ModernBert or Qwen2_5_VL or Qwen2_5vl or Qwen2VL or TransformersMultiModalEmbeddingModel or TransformersMultiModalForSequenceClassification or Ultravox or Phi4Multimodal or LlavaNextVideo or MiniCPMO or Lfm2Moe or PaliGemma or RobertaForSequenceClassification or Ovis2_5 or Fuyu or DeepseekOCR or KimiVL)'
2795
+ - pytest -v -s tests/models/test_transformers.py
2796
+ # - pytest -v -s tests/models/multimodal/processing/
2797
+ - pytest -v -s tests/models/multimodal/test_mapping.py -k 'not (Gemma3 or Qwen2VL or Qwen2_5_VL)'
2798
+ - python3 examples/offline_inference/basic/chat.py
2799
+ # - python3 examples/offline_inference/vision_language.py --model-type qwen2_5_vl
2800
+ # Whisper needs spawn method to avoid deadlock
2801
+ - VLLM_WORKER_MULTIPROC_METHOD=spawn python3 examples/offline_inference/audio_language.py --model-type whisper
2802
+
2803
+- label: Blackwell Test # 21 min
2804
+ timeout_in_minutes: 30
2805
+ working_dir: "/vllm-workspace/"
2806
+ gpu: b200
2807
+ # optional: true
2808
+ source_file_dependencies:
2809
+ - csrc/quantization/fp4/
2810
+ - csrc/attention/mla/
2811
+ - csrc/quantization/cutlass_w8a8/moe/
2812
+ - vllm/model_executor/layers/fused_moe/cutlass_moe.py
2813
+ - vllm/model_executor/layers/fused_moe/flashinfer_cutlass_moe.py
2814
+ - vllm/model_executor/layers/fused_moe/flashinfer_a2a_prepare_finalize.py
2815
+ - vllm/model_executor/layers/quantization/utils/flashinfer_utils.py
2816
+ - vllm/v1/attention/backends/flashinfer.py
2817
+ - vllm/v1/attention/backends/mla/cutlass_mla.py
2818
+ - vllm/v1/attention/backends/mla/flashinfer_mla.py
2819
+ - vllm/v1/attention/selector.py
2820
+ - vllm/platforms/cuda.py
2821
+ commands:
2822
+ - nvidia-smi
2823
+ - python3 examples/offline_inference/basic/chat.py
2824
+ # Attention
2825
+ # num_heads2 broken by https://github.com/flashinfer-ai/flashinfer/issues/1353
2826
+ - pytest -v -s tests/kernels/attention/test_attention_selector.py
2827
+ - pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
2828
+ - pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_attention.py
2829
+ - pytest -v -s tests/kernels/attention/test_cutlass_mla_decode.py
2830
+ - pytest -v -s tests/kernels/attention/test_flashinfer_mla_decode.py
2831
+ # Quantization
2832
+ - pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
2833
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
2834
+ - pytest -v -s tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
2835
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
2836
+ - pytest -v -s tests/kernels/quantization/test_flashinfer_scaled_mm.py
2837
+ - pytest -v -s tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
2838
+ - pytest -v -s tests/kernels/quantization/test_nvfp4_qutlass.py
2839
+ - pytest -v -s tests/kernels/quantization/test_mxfp4_qutlass.py
2840
+ - pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
2841
+ - pytest -v -s tests/kernels/moe/test_ocp_mx_moe.py
2842
+ - pytest -v -s tests/kernels/moe/test_flashinfer.py
2843
+ - pytest -v -s tests/kernels/moe/test_cutedsl_moe.py
2844
+
2845
+- label: Blackwell Fusion and Compile Tests # 30 min
2846
+ timeout_in_minutes: 40
2847
+ working_dir: "/vllm-workspace/"
2848
+ gpu: b200
2849
+ source_file_dependencies:
2850
+ - csrc/quantization/fp4/
2851
+ - vllm/model_executor/layers/quantization/utils/flashinfer_utils.py
2852
+ - vllm/v1/attention/backends/flashinfer.py
2853
+ - vllm/v1/worker/
2854
+ - vllm/v1/cudagraph_dispatcher.py
2855
+ - vllm/compilation/
2856
+ # can affect pattern matching
2857
+ - vllm/model_executor/layers/layernorm.py
2858
+ - vllm/model_executor/layers/activation.py
2859
+ - vllm/model_executor/layers/quantization/input_quant_fp8.py
2860
+ - tests/compile/passes/test_fusion_attn.py
2861
+ - tests/compile/passes/test_silu_mul_quant_fusion.py
2862
+ - tests/compile/passes/distributed/test_fusion_all_reduce.py
2863
+ - tests/compile/fullgraph/test_full_graph.py
2864
+ commands:
2865
+ - nvidia-smi
2866
+ - pytest -v -s tests/compile/passes/test_fusion_attn.py
2867
+ - pytest -v -s tests/compile/passes/test_silu_mul_quant_fusion.py
2868
+ # this runner has 2 GPUs available even though num_gpus=2 is not set
2869
+ - pytest -v -s tests/compile/passes/distributed/test_fusion_all_reduce.py
2870
+
2871
+ # # Limit to Inductor partition, no custom ops, and allreduce & attn fusion to reduce running time
2872
+ # # Wrap with quotes to escape yaml
2873
+ # - "pytest -v -s tests/compile/distributed/test_fusions_e2e.py::test_tp2_attn_quant_allreduce_rmsnorm -k 'True and not +quant_fp8 and not +rms_norm'"
2874
+ # Old E2E tests were removed in https://github.com/vllm-project/vllm/pull/33293
2875
+ # in favor of new tests in fusions_e2e. We avoid replicating the new jobs in this file as it's deprecated.
2876
+
2877
+ # test_fp8_kv_scale_compile requires FlashAttention (not supported on default L4/L40)
2878
+ - pytest -v -s tests/compile/fullgraph/test_full_graph.py::test_fp8_kv_scale_compile
2879
+
2880
+- label: Blackwell GPT-OSS Eval
2881
+ timeout_in_minutes: 60
2882
+ working_dir: "/vllm-workspace/"
2883
+ gpu: b200
2884
+ optional: true # run on nightlies
2885
+ source_file_dependencies:
2886
+ - tests/evals/gpt_oss
2887
+ - vllm/model_executor/models/gpt_oss.py
2888
+ - vllm/model_executor/layers/quantization/mxfp4.py
2889
+ - vllm/v1/attention/backends/flashinfer.py
2890
+ commands:
2891
+ - uv pip install --system 'gpt-oss[eval]==0.0.5'
2892
+ - pytest -s -v tests/evals/gpt_oss/test_gpqa_correctness.py --model openai/gpt-oss-20b --metric 0.58
2893
+
2894
+- label: Blackwell Quantized MoE Test
2895
+ timeout_in_minutes: 60
2896
+ working_dir: "/vllm-workspace/"
2897
+ gpu: b200
2898
+ source_file_dependencies:
2899
+ - tests/quantization/test_blackwell_moe.py
2900
+ - vllm/model_executor/models/deepseek_v2.py
2901
+ - vllm/model_executor/models/gpt_oss.py
2902
+ - vllm/model_executor/models/llama4.py
2903
+ - vllm/model_executor/layers/fused_moe
2904
+ - vllm/model_executor/layers/quantization/compressed_tensors
2905
+ - vllm/model_executor/layers/quantization/modelopt.py
2906
+ - vllm/model_executor/layers/quantization/mxfp4.py
2907
+ - vllm/v1/attention/backends/flashinfer.py
2908
+ commands:
2909
+ - pytest -s -v tests/quantization/test_blackwell_moe.py
2910
+
2911
+- label: Blackwell LM Eval Small Models
2912
+ timeout_in_minutes: 120
2913
+ gpu: b200
2914
+ optional: true # run on nightlies
2915
+ source_file_dependencies:
2916
+ - csrc/
2917
+ - vllm/model_executor/layers/quantization
2918
+ commands:
2919
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-blackwell.txt
2920
+
2921
+##### 1 GPU test #####
2922
+##### multi gpus test #####
2923
+
2924
+- label: Distributed Comm Ops Test # 7min
2925
+ timeout_in_minutes: 20
2926
+ mirror_hardwares: [amdexperimental, amdproduction]
2927
+ agent_pool: mi355_2
2928
+ # grade: Blocking
2929
+ working_dir: "/vllm-workspace/tests"
2930
+ num_gpus: 2
2931
+ source_file_dependencies:
2932
+ - vllm/distributed
2933
+ - tests/distributed
2934
+ commands:
2935
+ - pytest -v -s distributed/test_comm_ops.py
2936
+ - pytest -v -s distributed/test_shm_broadcast.py
2937
+ - pytest -v -s distributed/test_shm_buffer.py
2938
+ - pytest -v -s distributed/test_shm_storage.py
2939
+
2940
+- label: 2 Node Tests (4 GPUs in total) # 16min
2941
+ timeout_in_minutes: 30
2942
+ mirror_hardwares: [amdexperimental, amdmultinode]
2943
+ agent_pool: mi355_4
2944
+ # grade: Blocking
2945
+ working_dir: "/vllm-workspace/tests"
2946
+ num_gpus: 2
2947
+ num_nodes: 2
2948
+ source_file_dependencies:
2949
+ - vllm/distributed/
2950
+ - vllm/engine/
2951
+ - vllm/executor/
2952
+ - vllm/model_executor/models/
2953
+ - tests/distributed/
2954
+ - tests/examples/offline_inference/data_parallel.py
2955
+ commands:
2956
+ - # the following commands are for the first node, with ip 192.168.10.10 (ray environment already set up) | grep 'Same node test passed' | grep 'Node count test passed'
2957
+ - 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
2958
+ - NUM_NODES=2 torchrun --nnodes 2 --nproc-per-node=2 --rdzv_backend=c10d --rdzv_endpoint=192.168.10.10 distributed/test_node_count.py
2959
+ - python3 ../examples/offline_inference/data_parallel.py -dp=2 -tp=1 --dp-num-nodes=2 --dp-node-rank=0 --dp-master-addr=192.168.10.10 --dp-master-port=12345 --enforce-eager --trust-remote-code
2960
+ - VLLM_MULTI_NODE=1 pytest -v -s distributed/test_multi_node_assignment.py
2961
+ - VLLM_MULTI_NODE=1 pytest -v -s distributed/test_pipeline_parallel.py
2962
+ - # the following commands are for the second node, with ip 192.168.10.11 (ray environment already set up)
2963
+ - 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
2964
+ - NUM_NODES=2 torchrun --nnodes 2 --nproc-per-node=2 --rdzv_backend=c10d --rdzv_endpoint=192.168.10.10 distributed/test_node_count.py
2965
+ - python3 ../examples/offline_inference/data_parallel.py -dp=2 -tp=1 --dp-num-nodes=2 --dp-node-rank=1 --dp-master-addr=192.168.10.10 --dp-master-port=12345 --enforce-eager --trust-remote-code
2966
+
2967
+- label: Distributed Tests (2 GPUs) # 68min
2968
+ timeout_in_minutes: 90
2969
+ mirror_hardwares: [amdexperimental]
2970
+ agent_pool: mi355_2
2971
+ # grade: Blocking
2972
+ working_dir: "/vllm-workspace/tests"
2973
+ num_gpus: 2
2974
+ source_file_dependencies:
2975
+ - vllm/compilation/
2976
+ - vllm/distributed/
2977
+ - vllm/engine/
2978
+ - vllm/executor/
2979
+ - vllm/worker/worker_base.py
2980
+ - vllm/v1/engine/
2981
+ - vllm/v1/worker/
2982
+ - tests/compile/fullgraph/test_basic_correctness.py
2983
+ - tests/compile/test_wrapper.py
2984
+ - tests/distributed/
2985
+ - tests/entrypoints/llm/test_collective_rpc.py
2986
+ - tests/v1/distributed
2987
+ - tests/v1/entrypoints/openai/test_multi_api_servers.py
2988
+ - tests/v1/shutdown
2989
+ - tests/v1/worker/test_worker_memory_snapshot.py
2990
+ commands:
2991
+ # Work around HIP bug tracked here: https://github.com/ROCm/hip/issues/3876
2992
+ # TODO: Remove when the bug is fixed in a future ROCm release
2993
+ - export TORCH_NCCL_BLOCKING_WAIT=1
2994
+ - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_async_llm_dp.py
2995
+ - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_eagle_dp.py
2996
+ - TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_external_lb_dp.py
2997
+ - DP_SIZE=2 pytest -v -s v1/entrypoints/openai/test_multi_api_servers.py
2998
+ - pytest -v -s entrypoints/llm/test_collective_rpc.py
2999
+ - pytest -v -s ./compile/fullgraph/test_basic_correctness.py
3000
+ - pytest -v -s ./compile/test_wrapper.py
3001
+ - VLLM_TEST_SAME_HOST=1 torchrun --nproc-per-node=4 distributed/test_same_node.py | grep 'Same node test passed'
3002
+ - VLLM_TEST_SAME_HOST=1 VLLM_TEST_WITH_DEFAULT_DEVICE_SET=1 torchrun --nproc-per-node=4 distributed/test_same_node.py | grep 'Same node test passed'
3003
+ - pytest -v -s compile/correctness_e2e/test_sequence_parallel.py
3004
+ - CUDA_VISIBLE_DEVICES=0,1 pytest -v -s v1/shutdown
3005
+ - pytest -v -s v1/worker/test_worker_memory_snapshot.py
3006
+
3007
+- label: Distributed Model Tests (2 GPUs) # 37min
3008
+ timeout_in_minutes: 50
3009
+ mirror_hardwares: [amdexperimental]
3010
+ agent_pool: mi355_2
3011
+ # grade: Blocking
3012
+ working_dir: "/vllm-workspace/tests"
3013
+ num_gpus: 2
3014
+ source_file_dependencies:
3015
+ - vllm/model_executor/model_loader/sharded_state_loader.py
3016
+ - vllm/model_executor/models/
3017
+ - tests/basic_correctness/
3018
+ - tests/model_executor/model_loader/test_sharded_state_loader.py
3019
+ - tests/models/
3020
+ commands:
3021
+ - TARGET_TEST_SUITE=L4 pytest basic_correctness/ -v -s -m 'distributed(num_gpus=2)'
3022
+ - CUDA_VISIBLE_DEVICES=0,1 pytest -v -s model_executor/model_loader/test_sharded_state_loader.py
3023
+ # Avoid importing model tests that cause CUDA reinitialization error
3024
+ - pytest models/test_transformers.py -v -s -m 'distributed(num_gpus=2)'
3025
+ - pytest models/language -v -s -m 'distributed(num_gpus=2)'
3026
+ - pytest models/multimodal -v -s -m 'distributed(num_gpus=2)' --ignore models/multimodal/generation/test_whisper.py
3027
+ - VLLM_WORKER_MULTIPROC_METHOD=spawn pytest models/multimodal/generation/test_whisper.py -v -s -m 'distributed(num_gpus=2)'
3028
+
3029
+- label: Plugin Tests (2 GPUs) # 40min
3030
+ timeout_in_minutes: 60
3031
+ mirror_hardwares: [amdexperimental, amdproduction]
3032
+ agent_pool: mi355_2
3033
+ # grade: Blocking
3034
+ working_dir: "/vllm-workspace/tests"
3035
+ num_gpus: 2
3036
+ source_file_dependencies:
3037
+ - vllm/plugins/
3038
+ - tests/plugins/
3039
+ commands:
3040
+ # begin platform plugin and general plugin tests, all the code in-between runs on dummy platform
3041
+ - pip install -e ./plugins/vllm_add_dummy_platform
3042
+ - pytest -v -s plugins_tests/test_platform_plugins.py
3043
+ - pip uninstall vllm_add_dummy_platform -y
3044
+ # end platform plugin tests
3045
+ # begin io_processor plugins test, all the code in between uses the prithvi_io_processor plugin
3046
+ - pip install -e ./plugins/prithvi_io_processor_plugin
3047
+ - pytest -v -s plugins_tests/test_io_processor_plugins.py
3048
+ - pip uninstall prithvi_io_processor_plugin -y
3049
+ # end io_processor plugins test
3050
+ # begin stat_logger plugins test
3051
+ - pip install -e ./plugins/vllm_add_dummy_stat_logger
3052
+ - pytest -v -s plugins_tests/test_stats_logger_plugins.py
3053
+ - pip uninstall dummy_stat_logger -y
3054
+ # end stat_logger plugins test
3055
+ # other tests continue here:
3056
+ - pytest -v -s plugins_tests/test_scheduler_plugins.py
3057
+ - pip install -e ./plugins/vllm_add_dummy_model
3058
+ - pytest -v -s distributed/test_distributed_oot.py
3059
+ - pytest -v -s entrypoints/openai/test_oot_registration.py # it needs a clean process
3060
+ - pytest -v -s models/test_oot_registration.py # it needs a clean process
3061
+ - pytest -v -s plugins/lora_resolvers # unit tests for in-tree lora resolver plugins
3062
+
3063
+- label: Pipeline + Context Parallelism Test # 45min
3064
+ timeout_in_minutes: 60
3065
+ mirror_hardwares: [amdexperimental, amdproduction]
3066
+ agent_pool: mi355_4
3067
+ # grade: Blocking
3068
+ working_dir: "/vllm-workspace/tests"
3069
+ num_gpus: 4
3070
+ source_file_dependencies:
3071
+ - vllm/distributed/
3072
+ - vllm/engine/
3073
+ - vllm/executor/
3074
+ - vllm/model_executor/models/
3075
+ - tests/distributed/
3076
+ commands:
3077
+ - pytest -v -s distributed/test_pp_cudagraph.py
3078
+ - pytest -v -s distributed/test_pipeline_parallel.py
3079
+
3080
+- label: LoRA TP Test (Distributed) # 17 min
3081
+ timeout_in_minutes: 30
3082
+ mirror_hardwares: [amdexperimental, amdproduction]
3083
+ agent_pool: mi355_4
3084
+ # grade: Blocking
3085
+ num_gpus: 4
3086
+ source_file_dependencies:
3087
+ - vllm/lora
3088
+ - tests/lora
3089
+ commands:
3090
+ # FIXIT: find out which code initialize cuda before running the test
3091
+ # before the fix, we need to use spawn to test it
3092
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
3093
+ # There is some Tensor Parallelism related processing logic in LoRA that
3094
+ # requires multi-GPU testing for validation.
3095
+ - pytest -v -s -x lora/test_chatglm3_tp.py
3096
+ - pytest -v -s -x lora/test_llama_tp.py
3097
+ - pytest -v -s -x lora/test_llm_with_multi_loras.py
3098
+ - pytest -v -s -x lora/test_olmoe_tp.py
3099
+
3100
+ # Disabled for now because MXFP4 backend on non-cuda platform
3101
+ # doesn't support LoRA yet
3102
+ #- pytest -v -s -x lora/test_gptoss_tp.py
3103
+
3104
+
3105
+- label: Weight Loading Multiple GPU Test # 33min
3106
+ timeout_in_minutes: 45
3107
+ mirror_hardwares: [amdexperimental, amdproduction]
3108
+ agent_pool: mi355_2
3109
+ # grade: Blocking
3110
+ working_dir: "/vllm-workspace/tests"
3111
+ num_gpus: 2
3112
+ optional: true
3113
+ source_file_dependencies:
3114
+ - vllm/
3115
+ - tests/weight_loading
3116
+ commands:
3117
+ - bash weight_loading/run_model_weight_loading_test.sh -c weight_loading/models-amd.txt
3118
+
3119
+- label: Weight Loading Multiple GPU Test - Large Models # optional
3120
+ mirror_hardwares: [amdexperimental]
3121
+ agent_pool: mi355_2
3122
+ # grade: Blocking
3123
+ working_dir: "/vllm-workspace/tests"
3124
+ num_gpus: 2
3125
+ optional: true
3126
+ source_file_dependencies:
3127
+ - vllm/
3128
+ - tests/weight_loading
3129
+ commands:
3130
+ - bash weight_loading/run_model_weight_loading_test.sh -c weight_loading/models-large-amd.txt
3131
+
3132
+- label: NixlConnector PD accuracy tests (Distributed) # 30min
3133
+ mirror_hardwares: [amdexperimental, amdproduction]
3134
+ agent_pool: mi355_4
3135
+ # grade: Blocking
3136
+ timeout_in_minutes: 30
3137
+ working_dir: "/vllm-workspace/tests"
3138
+ num_gpus: 4
3139
+ source_file_dependencies:
3140
+ - vllm/distributed/kv_transfer/kv_connector/v1/nixl_connector.py
3141
+ - tests/v1/kv_connector/nixl_integration/
3142
+ commands:
3143
+ - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
3144
+ - ROCM_ATTN=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
3145
+
3146
+- label: DP EP NixlConnector PD accuracy tests (Distributed) # 15min
3147
+ mirror_hardwares: [amdexperimental, amdproduction]
3148
+ agent_pool: mi355_4
3149
+ # grade: Blocking
3150
+ timeout_in_minutes: 15
3151
+ working_dir: "/vllm-workspace/tests"
3152
+ num_gpus: 4
3153
+ source_file_dependencies:
3154
+ - vllm/distributed/kv_transfer/kv_connector/v1/nixl_connector.py
3155
+ - tests/v1/kv_connector/nixl_integration/
3156
+ commands:
3157
+ - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
3158
+ - DP_EP=1 ROCM_ATTN=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
3159
+
3160
+##### multi gpus test #####
3161
+##### A100 test #####
3162
+
3163
+- label: Distributed Tests (A100) # optional
3164
+ mirror_hardwares: [amdexperimental]
3165
+ agent_pool: mi355_4
3166
+ # grade: Blocking
3167
+ gpu: a100
3168
+ optional: true
3169
+ num_gpus: 4
3170
+ source_file_dependencies:
3171
+ - vllm/
3172
+ commands:
3173
+ # Work around HIP bug tracked here: https://github.com/ROCm/hip/issues/3876
3174
+ # TODO: Remove when the bug is fixed in a future ROCm release
3175
+ - export TORCH_NCCL_BLOCKING_WAIT=1
3176
+ # NOTE: don't test llama model here, it seems hf implementation is buggy
3177
+ # see https://github.com/vllm-project/vllm/pull/5689 for details
3178
+ - pytest -v -s distributed/test_custom_all_reduce.py
3179
+ - torchrun --nproc_per_node=2 distributed/test_ca_buffer_sharing.py
3180
+ - TARGET_TEST_SUITE=A100 pytest basic_correctness/ -v -s -m 'distributed(num_gpus=2)'
3181
+ - pytest -v -s -x lora/test_mixtral.py
3182
+
3183
+
3184
+- label: LM Eval Large Models # optional
3185
+ gpu: a100
3186
+ optional: true
3187
+ mirror_hardwares: [amdexperimental]
3188
+ agent_pool: mi355_4
3189
+ # grade: Blocking
3190
+ num_gpus: 4
3191
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
3192
+ source_file_dependencies:
3193
+ - csrc/
3194
+ - vllm/model_executor/layers/quantization
3195
+ commands:
3196
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
3197
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large.txt --tp-size=4
3198
+
3199
+##### H100 test #####
3200
+- label: LM Eval Large Models (H100) # optional
3201
+ gpu: h100
3202
+ optional: true
3203
+ mirror_hardwares: [amdexperimental]
3204
+ agent_pool: mi355_4
3205
+ # grade: Blocking
3206
+ num_gpus: 4
3207
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
3208
+ source_file_dependencies:
3209
+ - csrc/
3210
+ - vllm/model_executor/layers/quantization
3211
+ commands:
3212
+ - export VLLM_USE_DEEP_GEMM=0 # We found Triton is faster than DeepGEMM for H100
3213
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large-hopper.txt --tp-size=4
3214
+
3215
+
3216
+##### H200 test #####
3217
+- label: Distributed Tests (H200) # optional
3218
+ mirror_hardwares: [amdexperimental]
3219
+ agent_pool: mi355_2
3220
+ # grade: Blocking
3221
+ gpu: h200
3222
+ optional: true
3223
+ working_dir: "/vllm-workspace/"
3224
+ num_gpus: 2
3225
+ commands:
3226
+ - VLLM_TEST_CLEAN_GPU_MEMORY=1 pytest -v -s tests/compile/passes/distributed/test_async_tp.py
3227
+ - pytest -v -s tests/compile/passes/distributed/test_sequence_parallelism.py
3228
+ - pytest -v -s tests/compile/passes/distributed/test_fusion_all_reduce.py
3229
+ #- pytest -v -s tests/compile/distributed/test_fusions_e2e.py::test_tp2_attn_quant_allreduce_rmsnorm
3230
+ # - "VLLM_TEST_CLEAN_GPU_MEMORY=1 pytest -v -s tests/compile/distributed/test_fusions_e2e.py -k 'not Llama-4'"
3231
+ # Old E2E tests were removed in https://github.com/vllm-project/vllm/pull/33293
3232
+ # in favor of new tests in fusions_e2e. We avoid replicating the new jobs in this file as it's deprecated.
3233
+
3234
+ - VLLM_TEST_CLEAN_GPU_MEMORY=1 pytest -v -s tests/compile/correctness_e2e/test_sequence_parallel.py
3235
+ - pytest -v -s tests/distributed/test_context_parallel.py
3236
+ - HIP_VISIBLE_DEVICES=0,1 VLLM_LOGGING_LEVEL=DEBUG python3 examples/offline_inference/data_parallel.py --model=Qwen/Qwen1.5-MoE-A2.7B -tp=1 -dp=2 --max-model-len=2048 --all2all-backend=allgather_reducescatter --disable-nccl-for-dp-synchronization
3237
+ - pytest -v -s tests/v1/distributed/test_dbo.py
3238
+
3239
+##### B200 test #####
3240
+- label: Distributed Tests (B200) # optional
3241
+ gpu: b200
3242
+ optional: true
3243
+ working_dir: "/vllm-workspace/"
3244
+ num_gpus: 2
3245
+ commands:
3246
+ - pytest -v -s tests/distributed/test_context_parallel.py
3247
+ - pytest -v -s tests/distributed/test_nccl_symm_mem_allreduce.py
3248
+ - pytest -v -s tests/v1/distributed/test_dbo.py
3249
+
3250
+##### E2E Eval Tests #####
3251
+- label: LM Eval Small Models (1 Card) # 15min
3252
+ timeout_in_minutes: 20
3253
+ mirror_hardwares: [amdexperimental, amdproduction]
3254
+ agent_pool: mi355_1
3255
+ # grade: Blocking
3256
+ source_file_dependencies:
3257
+ - csrc/
3258
+ - vllm/model_executor/layers/quantization
3259
+ commands:
3260
+ - pytest -s -v evals/gsm8k/test_gsm8k_correctness.py --config-list-file=configs/models-small.txt
3261
+
3262
+- label: LM Eval Large Models (4 Card)
3263
+ mirror_hardwares: [amdexperimental, amdproduction]
3264
+ agent_pool: mi355_4
3265
+ # grade: Blocking
3266
+ gpu: a100
3267
+ optional: true
3268
+ num_gpus: 4
3269
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
3270
+ source_file_dependencies:
3271
+ - csrc/
3272
+ - vllm/model_executor/layers/quantization
3273
+ commands:
3274
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
3275
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large.txt --tp-size=4
3276
+
3277
+- label: ROCm LM Eval Large Models (8 Card)
3278
+ mirror_hardwares: [amdproduction]
3279
+ agent_pool: mi355_8
3280
+ num_gpus: 8
3281
+ working_dir: "/vllm-workspace/.buildkite/lm-eval-harness"
3282
+ commands:
3283
+ - export VLLM_WORKER_MULTIPROC_METHOD=spawn
3284
+ - pytest -s -v test_lm_eval_correctness.py --config-list-file=configs/models-large-rocm.txt --tp-size=8
3285
+
3286
+- label: ROCm GPT-OSS Eval
3287
+ timeout_in_minutes: 60
3288
+ working_dir: "/vllm-workspace/"
3289
+ agent_pool: mi355_1
3290
+ mirror_hardwares: [amdexperimental, amdproduction]
3291
+ optional: true # run on nightlies
3292
+ source_file_dependencies:
3293
+ - tests/evals/gpt_oss
3294
+ - vllm/model_executor/models/gpt_oss.py
3295
+ - vllm/model_executor/layers/quantization/mxfp4.py
3296
+ - vllm/v1/attention/backends/flashinfer.py
3297
+ commands:
3298
+ - uv pip install --system 'gpt-oss[eval]==0.0.5'
3299
+ - VLLM_ROCM_USE_AITER_MHA=0 VLLM_ROCM_USE_AITER=1 VLLM_USE_AITER_UNIFIED_ATTENTION=1 pytest -s -v tests/evals/gpt_oss/test_gpqa_correctness.py --model openai/gpt-oss-20b --metric 0.58
3300
+
3301
+##### RL Integration Tests #####
3302
+- label: Prime-RL Integration Test # 15min
3303
+ mirror_hardwares: [amdexperimental]
3304
+ agent_pool: mi355_2
3305
+ # grade: Blocking
3306
+ timeout_in_minutes: 30
3307
+ optional: true
3308
+ num_gpus: 2
3309
+ working_dir: "/vllm-workspace"
3310
+ source_file_dependencies:
3311
+ - vllm/
3312
+ - .buildkite/scripts/run-prime-rl-test.sh
3313
+ commands:
3314
+ - bash .buildkite/scripts/run-prime-rl-test.sh
3315
+
3316
+##### EPLB Accuracy Tests #####
3317
+- label: DeepSeek V2-Lite Accuracy
3318
+ mirror_hardwares: [amdexperimental, amdproduction]
3319
+ agent_pool: mi355_4
3320
+ # grade: Blocking
3321
+ timeout_in_minutes: 60
3322
+ gpu: h100
3323
+ optional: true
3324
+ num_gpus: 4
3325
+ working_dir: "/vllm-workspace"
3326
+ commands:
3327
+ - bash .buildkite/scripts/scheduled_integration_test/deepseek_v2_lite_ep_eplb.sh 0.25 200 8010
3328
+
3329
+- label: Qwen3-30B-A3B-FP8-block Accuracy (H100)
3330
+ mirror_hardwares: [amdexperimental, amdproduction]
3331
+ agent_pool: mi355_4
3332
+ # grade: Blocking
3333
+ timeout_in_minutes: 60
3334
+ gpu: h100
3335
+ optional: true
3336
+ num_gpus: 4
3337
+ working_dir: "/vllm-workspace"
3338
+ commands:
3339
+ - bash .buildkite/scripts/scheduled_integration_test/qwen30b_a3b_fp8_block_ep_eplb.sh 0.8 200 8020
3340
+
3341
+- label: Qwen3-30B-A3B-FP8-block Accuracy (B200)
3342
+ timeout_in_minutes: 60
3343
+ gpu: b200
3344
+ optional: true
3345
+ num_gpus: 2
3346
+ working_dir: "/vllm-workspace"
3347
+ commands:
3348
+ - bash .buildkite/scripts/scheduled_integration_test/qwen30b_a3b_fp8_block_ep_eplb.sh 0.8 200 8020 2 1
3349
+
3350
+
3351
+- label: Qwen3-Next-80B-A3B-Instruct MTP Async EPLB Accuracy
3352
+ timeout_in_minutes: 60
3353
+ mirror_hardwares: [amdexperimental]
3354
+ agent_pool: mi355_4
3355
+ # grade: Blocking
3356
+ optional: true
3357
+ num_gpus: 4
3358
+ working_dir: "/vllm-workspace"
3359
+ commands:
3360
+ - bash .buildkite/scripts/scheduled_integration_test/qwen3_next_mtp_async_eplb.sh 0.8 1319 8040
\ No newline at end of file