@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 824f9e8f3c
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 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