Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
59f1b15
add gfx950 support for skinny gemms
charlifu May 12, 2025
5b1895e
Merge branch 'main' into amd/gfx950_skinny_gemm
charlifu May 13, 2025
d9da93f
fix on_mi3xx
charlifu May 14, 2025
b48d5cc
[CI/Build] [TPU] Fix TPU CI exit code (#18282)
CAROLZXYZXY May 27, 2025
e0cbad4
[Neuron] Support quantization on neuron (#18283)
aws-satyajith May 27, 2025
e56f44d
Support datasets in `vllm bench serve` and sync with benchmark_[servi…
mgoin May 27, 2025
51e98e4
[Bugfix] Disable prefix caching by default for benchmark (#18771)
cascade812 May 28, 2025
a3896c7
[Build] Fixes for CMake install (#18570)
ProExpertProg May 28, 2025
d73a945
[Core] Improve Tensor serialisation (#18774)
lgeiger May 28, 2025
794ae1f
[rocm] Fix wrong attention log (#18764)
fxmarty-amd May 28, 2025
3e9ce60
[Bugfix] Fix nomic max_model_len (#18755)
noooop May 28, 2025
9a21e33
[Bugfix]: correctly propagate errors message caught at the chat_templ…
gcalmettes May 28, 2025
774c5fd
[V1] fix torch profiling for V1 offline scenarios (#18445)
divakar-amd May 28, 2025
5e13c07
[V1] [Bugfix] eagle bugfix and enable correct lm_head for multimodal …
RonaldBXu May 28, 2025
b78f844
[Bugfix][FailingTest]Fix test_model_load_with_params.py (#18758)
rabi May 28, 2025
7f2c1a8
[Deprecation] Require overriding `get_dummy_text` and `get_dummy_mm_d…
DarkLight1337 May 28, 2025
0f0926b
[Deprecation] Remove unused sync methods in `async_timeout` (#18792)
DarkLight1337 May 28, 2025
0c492b7
[Deprecation] Remove fallbacks for Embeddings API (#18795)
DarkLight1337 May 28, 2025
de65fc8
[CI] improve embed testing (#18747)
noooop May 28, 2025
aa42561
Fix PiecewiseCompileInterpreter (#17338)
zou3519 May 28, 2025
ce75efe
[BugFix] FA2 MLA Accuracy Issue (#18807)
LucasWilkinson May 28, 2025
d781930
[Platform][Dist] Make torch distributed process group extendable (#18…
MengqingCao May 28, 2025
4c2b38c
Enable Pydantic mypy checks and convert configs to Pydantic dataclass…
hmellor May 28, 2025
435fa95
[Frontend] add run batch to CLI (#18804)
reidliu41 May 28, 2025
6e4cea1
decrement server_load on listen for disconnect (#18784)
daniel-salib May 28, 2025
321331b
[Core] Add Lora Support to Beam Search (#18346)
alex-jw-brooks May 28, 2025
fced756
[Chore] update ty configuration (#18839)
aarnphm May 28, 2025
c68b5c6
[Misc] fix olmoe model layer can't laod in tp gt 1 (#18828)
lengrongfu May 28, 2025
0e98964
[V1][Metrics] Remove metrics that were deprecated in 0.8 (#18837)
markmc May 28, 2025
a09c7ca
[Chore][Spec Decode] Update check NoneType instead of assigning varia…
aarnphm May 28, 2025
643622b
[Hardware][TPU][V1] Multi-LoRA Optimisations for the V1 TPU backend (…
Akshat-Tripathi May 28, 2025
12447b9
Merge branch 'main' into amd/gfx950_skinny_gemm
charlifu May 28, 2025
6dbe5b5
Remove checks for `None` for fields which should never be `None` (#17…
hmellor May 28, 2025
630ed84
cache get_lds_size()
charlifu May 28, 2025
7951d78
[Core] Enable CUDA graphs for DP + All2All kernels (#18724)
varun-sundar-rabindranath May 28, 2025
269d901
[Bugfix][ROCm] fix the power of 2 exception from triton_unified_atten…
hongxiayang May 28, 2025
515b413
Prevent the cross-encoder logic from being applied to classification …
maxdebayser May 29, 2025
26b4fa4
Add ability to use CUDAGraphs with use_inductor=False (#17345)
zou3519 May 29, 2025
8e882ff
[Bugfix][TPU] fix moe custom kernel import (#18853)
yaochengji May 29, 2025
1661a9c
[Doc][Neuron] Update documentation for Neuron (#18868)
elaineyz May 29, 2025
3c49dbd
Skip device and quant Pydantic validation to make plugin device work …
Yikun May 29, 2025
fd7bb88
Fixes a dead link in nightly benchmark readme (#18856)
nerdalert May 29, 2025
972eddf
[Neuron] Add multi-LoRA support for Neuron. (#18284)
aws-satyajith May 29, 2025
34d6c44
[LoRA] Add LoRA support for InternVL (#18842)
jeejeelee May 29, 2025
a652e71
[Doc] Remove redundant spaces from compatibility_matrix.md (#18891)
windsonsea May 29, 2025
e740d07
[doc] add CLI doc (#18871)
reidliu41 May 29, 2025
7fcfd95
[Bugfix] Fix misleading information in the documentation (#18845)
jeejeelee May 29, 2025
24d0ef8
[Misc] Replace TODO in serving transcription (#18895)
NickLucche May 29, 2025
0b1447f
[Bugfix] Ensure tensors are contiguous during serialisation (#18860)
lgeiger May 29, 2025
f274581
[BugFix] Update pydantic to fix error on python 3.10 (#18852)
ProExpertProg May 29, 2025
f8977c2
Fix an error in dummy weight loading for quantization models (#18855)
Chenyaaang May 29, 2025
b169d5f
[Misc][Tools][Benchmark] Add benchmark_serving supports for llama.cpp…
Duyi-Wang May 29, 2025
6f29094
[Doc] Fix codeblocks formatting in LoRA adapters documentation (#18907)
Zerohertz May 29, 2025
c9479b2
[Bugfix] Fix the failing gte embedding test (#18720)
Isotr0py May 29, 2025
da4b69d
[Attention][V1] Toggle for v1 attention backend (#18275)
gshtras May 29, 2025
bee14ca
Merge remote-tracking branch 'upstream/main'
gshtras May 29, 2025
1b7cfd5
[ROCm][V0][Attention] Revert to the previous FA triton kernel (#18226)
gshtras May 29, 2025
c290340
[Deprecation] Disallow pos-args other than `model` when initializing …
DarkLight1337 May 29, 2025
0286875
Merge branch 'main' into amd/gfx950_skinny_gemm
charlifu May 29, 2025
7bf92f9
Merge remote-tracking branch 'upstream/main' into upstream_merge_2025…
gshtras May 29, 2025
d58f9c7
[Misc] Remove duplicate init for self.vllm_config (#18896)
googs1025 May 29, 2025
32ce3cf
[V1] Allocate kv_cache with stride order for V1 (#18775)
NickLucche May 29, 2025
d1d61f3
[BugFix] Make DP work with connector-delayed new requests (#18559)
njhill May 29, 2025
64eaf5f
[P/D] NixlConnector DP fixes (#18903)
wseaton May 29, 2025
421c498
Merge leftover
gshtras May 29, 2025
628db8d
Merge remote-tracking branch 'origin/amd/gfx950_skinny_gemm' into ups…
gshtras May 29, 2025
a521ef0
Use standalone_compile by default in torch >= 2.8.0 (#18846)
zou3519 May 29, 2025
a1cc9f3
[TPU] remove transpose ops in moe kernel (#18923)
yaochengji May 29, 2025
d54af61
[Bugfix] Fix PP default fallback behavior for V1 (#18915)
mgoin May 30, 2025
1aa2f81
[Misc] Update type annotation for rotary embedding `base` (#18914)
DarkLight1337 May 30, 2025
3132290
[TPU][CI/CD] Clean up docker for TPU tests. (#18926)
CAROLZXYZXY May 30, 2025
3de3ead
improve the robustness of parsing vlms config in AutoRound (#18894)
wenhuach21 May 30, 2025
77164da
[Bugfix] Consistent ascii handling in tool parsers (#18883)
chaunceyjiang May 30, 2025
3987e2a
[Model] Use AutoWeightsLoader for mamba2 (#18918)
jinyouzhi May 30, 2025
5acf828
[docs] fix: fix markdown syntax (#18927)
eric-haibin-lin May 30, 2025
77b6e74
[ROCm] Remove unnecessary assertion of max_model_len in ROCM_AITER_ML…
vllmellm May 30, 2025
4d0a154
[Bugfix] Remove NVFP4 scales assertions to fix load_format=dummy (#18…
mgoin May 30, 2025
4f4a6b8
[Deprecation] Remove mean pooling default for `Qwen2EmbeddingModel` (…
DarkLight1337 May 30, 2025
6acb7a6
[Misc]Fix benchmarks/README.md for speculative decoding (#18897)
rabi May 30, 2025
8f8900c
[doc] add mkdocs doc (#18930)
reidliu41 May 30, 2025
c3bb9f2
[Model] Use in-place adds in SigLIP (#18922)
lgeiger May 30, 2025
5f1d0c8
[Bugfix][Failing Test] Fix test_vllm_port.py (#18618)
rabi May 30, 2025
4577fc9
[Misc]Fix typo (#18947)
Always-Naive May 30, 2025
fba02e3
[Bugfix][TPU] Fix tpu model runner testcase failure (#18810)
CAROLZXYZXY May 30, 2025
43ff405
[CI/Build] remove regex from build dependencies (#18945)
dtrifiro May 30, 2025
e1fadf1
[Feature] minicpm eagle support (#18943)
huangyuxiang03 May 30, 2025
ec6833c
[doc] show the count for fork and watch (#18950)
reidliu41 May 30, 2025
b29ca5c
[Docs] Update SECURITY.md with link to our security guide (#18961)
russellb May 30, 2025
84ec470
Improve "failed to get the hash of the compiled graph" error (#18956)
zou3519 May 30, 2025
2dbe8c0
[Perf] API-server scaleout with many-to-many server-engine comms (#1…
njhill May 30, 2025
f49239c
Benchmark script for fp8 vs bf16 gemm (#17126)
mgoin May 30, 2025
5a86416
[VLM] Add PP support and fix GPTQ inference for Ovis models (#18958)
Isotr0py May 30, 2025
7f21e80
[Misc] add group_size is -1 in awq quantization (#18910)
lengrongfu May 30, 2025
1dab4d5
Tool parser regex timeout handling (#18960)
wseaton May 30, 2025
0f71e24
[Docs] Correct multiprocessing design doc (#18964)
lgeiger May 31, 2025
7782464
create util function for batched arange (#18937)
yuguo68 May 31, 2025
dff80b0
[Frontend] Add rerank support to run_batch endpoint (#16278)
pooyadavoodi May 31, 2025
1e12352
[Misc] Fix estimated max model len msg (#18966)
shinoss May 31, 2025
ba5111f
[Bugfix]: Fix the incompatibility issue with Structured Outputs when …
chaunceyjiang May 31, 2025
b8b9047
fix security issue of logging llm output (#18980)
luccafong May 31, 2025
2a50ef5
[Neuron] Add Multi-Modal model support for Neuron (#18921)
aws-satyajith May 31, 2025
749f5bd
[doc] fix the list rendering issue - security.md (#18982)
reidliu41 May 31, 2025
c55d804
[BugFix] Pydantic part 2 (#18911)
ProExpertProg May 31, 2025
0f5e0d5
[FEAT][ROCm] Add AITER grouped topk for DeepSeekV2 (#18825)
vllmellm May 31, 2025
f2c3f66
[Bugfix] Fix for issue 17396 (#18773)
frreiss May 31, 2025
306d604
[ROCm][Kernel] Add gfx950 support for skinny gemms (#18010)
charlifu May 31, 2025
8bf507d
[P/D] NixlConnector use cache device index for memory registration (#…
ptarasiewiczNV May 31, 2025
9a1b9b9
[BugFix] Fix multi-node offline data-parallel (#18981)
njhill May 31, 2025
20079c6
[Misc] add return token strs for tokenize (#18941)
reidliu41 May 31, 2025
bbfa0c6
[Misc][Benchmark] Add support for CustomDataset (#18511)
ekagra-ranjan May 31, 2025
1bc86a3
[Bugfix] Fix EAGLE3 broken logits (#18909)
benchislett Jun 1, 2025
6aa8f9a
[Core] Rework dtype resolution (#18751)
DarkLight1337 Jun 1, 2025
a35ca76
[LoRA] Support dynamically initialize `packed_modules_mapping` for VL…
Isotr0py Jun 1, 2025
c594cbf
[doc] small fix - mkdocs (#18996)
reidliu41 Jun 1, 2025
2ad6194
Let max_num_batched_tokens use human_readable_int for large numbers (…
mgoin Jun 1, 2025
aa54a7b
[BugFix] fix data parallel construct ipv6 url addres (#18991)
lengrongfu Jun 1, 2025
2b102d5
[BugFix] Fix incorrect metrics shutdown error log message (#18992)
njhill Jun 1, 2025
432ec99
[doc] wrong output (#19000)
reidliu41 Jun 1, 2025
d6fd3a3
[Misc] reuse num_tokens_across_dp of get_dp_padding to avoid unnecess…
izhuhaoran Jun 1, 2025
b9f61e1
[Bugfix][Nixl] Fix DP Metadata Handshake (#19008)
robertgshaw2-redhat Jun 2, 2025
9760fd8
[Core] Support inplace model weights loading (#18745)
22quinn Jun 2, 2025
5b168b6
[doc] add pytest tips (#19010)
reidliu41 Jun 2, 2025
ebb1ec9
[Model] enable data parallel for Llama4 vision encoder (#18368)
jennyyyyzhen Jun 2, 2025
20133cf
[Frontend] enable custom logging for the uvicorn server (OpenAI API s…
fpaupier Jun 2, 2025
ca2f6b9
[Bugfix][Model] Attempt to fix eagle in V0. (#18978)
gshtras Jun 2, 2025
d92c04b
Merge remote-tracking branch 'upstream/main' into upstream_merge_2025…
gshtras Jun 2, 2025
9c22cdd
Remove redundant configs
gshtras Jun 2, 2025
9d4c238
Merge branch 'main' into upstream_merge_2025_06_02
gshtras Jun 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .buildkite/nightly-benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ WARNING: The benchmarking script will save json results by itself, so please do

### Visualizing the results

The `convert-results-json-to-markdown.py` helps you put the benchmarking results inside a markdown table, by formatting [descriptions.md](tests/descriptions.md) with real benchmarking results.
The `convert-results-json-to-markdown.py` helps you put the benchmarking results inside a markdown table, by formatting [descriptions.md](performance-benchmarks-descriptions.md) with real benchmarking results.
You can find the result presented as a table inside the `buildkite/performance-benchmark` job page.
If you do not see the table, please wait till the benchmark finish running.
The json version of the table (together with the json version of the benchmark) will be also attached to the markdown file.
Expand Down
254 changes: 166 additions & 88 deletions .buildkite/scripts/hardware_ci/run-tpu-v1-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,102 +2,180 @@

set -xu

# Build the docker image.
docker build -f docker/Dockerfile.tpu -t vllm-tpu .

# Set up cleanup.
remove_docker_container() { docker rm -f tpu-test || true; }
remove_docker_container() {
docker rm -f tpu-test || true;
docker rm -f vllm-tpu || true;
}

trap remove_docker_container EXIT

# Remove the container that might not be cleaned up in the previous run.
remove_docker_container

# Build the docker image.
docker build -f docker/Dockerfile.tpu -t vllm-tpu .

# Set up cleanup.
cleanup_docker() {
# Get Docker's root directory
docker_root=$(docker info -f '{{.DockerRootDir}}')
if [ -z "$docker_root" ]; then
echo "Failed to determine Docker root directory."
exit 1
fi
echo "Docker root directory: $docker_root"
# Check disk usage of the filesystem where Docker's root directory is located
disk_usage=$(df "$docker_root" | tail -1 | awk '{print $5}' | sed 's/%//')
# Define the threshold
threshold=70
if [ "$disk_usage" -gt "$threshold" ]; then
echo "Disk usage is above $threshold%. Cleaning up Docker images and volumes..."
# Remove dangling images (those that are not tagged and not used by any container)
docker image prune -f
# Remove unused volumes / force the system prune for old images as well.
docker volume prune -f && docker system prune --force --filter "until=72h" --all
echo "Docker images and volumes cleanup completed."
else
echo "Disk usage is below $threshold%. No cleanup needed."
fi
}
cleanup_docker

# For HF_TOKEN.
source /etc/environment
# Run a simple end-to-end example.

docker run --privileged --net host --shm-size=16G -it \
-e "HF_TOKEN=$HF_TOKEN" --name tpu-test \
vllm-tpu /bin/bash -c "python3 -m pip install git+https://github.com/thuml/depyf.git \
&& python3 -m pip install pytest pytest-asyncio tpu-info \
&& python3 -m pip install lm_eval[api]==0.4.4 \
&& export VLLM_XLA_CACHE_PATH= \
&& export VLLM_USE_V1=1 \
&& export VLLM_XLA_CHECK_RECOMPILATION=1 \
&& echo HARDWARE \
&& tpu-info \
&& { \
echo TEST_0: Running test_perf.py; \
python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_perf.py; \
echo TEST_0_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_1: Running test_compilation.py; \
python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_compilation.py; \
echo TEST_1_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_2: Running test_basic.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_basic.py; \
echo TEST_2_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_3: Running test_accuracy.py::test_lm_eval_accuracy_v1_engine; \
python3 -m pytest -s -v /workspace/vllm/tests/entrypoints/llm/test_accuracy.py::test_lm_eval_accuracy_v1_engine; \
echo TEST_3_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_4: Running test_quantization_accuracy.py; \
python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_quantization_accuracy.py; \
echo TEST_4_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_5: Running examples/offline_inference/tpu.py; \
python3 /workspace/vllm/examples/offline_inference/tpu.py; \
echo TEST_5_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_6: Running test_tpu_model_runner.py; \
python3 -m pytest -s -v /workspace/vllm/tests/tpu/worker/test_tpu_model_runner.py; \
echo TEST_6_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_7: Running test_sampler.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_sampler.py; \
echo TEST_7_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_8: Running test_topk_topp_sampler.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_topk_topp_sampler.py; \
echo TEST_8_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_9: Running test_multimodal.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_multimodal.py; \
echo TEST_9_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_10: Running test_pallas.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_pallas.py; \
echo TEST_10_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_11: Running test_struct_output_generate.py; \
python3 -m pytest -s -v /workspace/vllm/tests/v1/entrypoints/llm/test_struct_output_generate.py; \
echo TEST_11_EXIT_CODE: \$?; \
} & \
{ \
echo TEST_12: Running test_moe_pallas.py; \
python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_moe_pallas.py; \
echo TEST_12_EXIT_CODE: \$?; \
} & \
# Disable the TPU LoRA tests until the feature is activated
# & { \
# echo TEST_13: Running test_moe_pallas.py; \
# python3 -m pytest -s -v /workspace/vllm/tests/tpu/lora/; \
# echo TEST_13_EXIT_CODE: \$?; \
# } & \
wait \
&& echo 'All tests have attempted to run. Check logs for individual test statuses and exit codes.' \
"
vllm-tpu /bin/bash -c '
set -e # Exit immediately if a command exits with a non-zero status.
set -u # Treat unset variables as an error.

echo "--- Starting script inside Docker container ---"

# Create results directory
RESULTS_DIR=$(mktemp -d)
# If mktemp fails, set -e will cause the script to exit.
echo "Results will be stored in: $RESULTS_DIR"

# Install dependencies
echo "--- Installing Python dependencies ---"
python3 -m pip install --progress-bar off git+https://github.com/thuml/depyf.git \
&& python3 -m pip install --progress-bar off pytest pytest-asyncio tpu-info \
&& python3 -m pip install --progress-bar off lm_eval[api]==0.4.4
echo "--- Python dependencies installed ---"
export VLLM_USE_V1=1
export VLLM_XLA_CHECK_RECOMPILATION=1
export VLLM_XLA_CACHE_PATH=
echo "Using VLLM V1"

echo "--- Hardware Information ---"
tpu-info
echo "--- Starting Tests ---"
set +e
overall_script_exit_code=0

# --- Test Definitions ---
# If a test fails, this function will print logs and will not cause the main script to exit.
run_test() {
local test_num=$1
local test_name=$2
local test_command=$3
local log_file="$RESULTS_DIR/test_${test_num}.log"
local actual_exit_code

echo "--- TEST_$test_num: Running $test_name ---"

# Execute the test command.
eval "$test_command" > >(tee -a "$log_file") 2> >(tee -a "$log_file" >&2)
actual_exit_code=$?

echo "TEST_${test_num}_COMMAND_EXIT_CODE: $actual_exit_code" # This goes to main log
echo "TEST_${test_num}_COMMAND_EXIT_CODE: $actual_exit_code" >> "$log_file" # Also to per-test log

if [ "$actual_exit_code" -ne 0 ]; then
echo "TEST_$test_num ($test_name) FAILED with exit code $actual_exit_code." >&2
echo "--- Log for failed TEST_$test_num ($test_name) ---" >&2
if [ -f "$log_file" ]; then
cat "$log_file" >&2
else
echo "Log file $log_file not found for TEST_$test_num ($test_name)." >&2
fi
echo "--- End of log for TEST_$test_num ($test_name) ---" >&2
return "$actual_exit_code" # Return the failure code
else
echo "TEST_$test_num ($test_name) PASSED."
return 0 # Return success
fi
}

# Helper function to call run_test and update the overall script exit code
run_and_track_test() {
local test_num_arg="$1"
local test_name_arg="$2"
local test_command_arg="$3"

# Run the test
run_test "$test_num_arg" "$test_name_arg" "$test_command_arg"
local test_specific_exit_code=$?

# If the test failed, set the overall script exit code to 1
if [ "$test_specific_exit_code" -ne 0 ]; then
# No need for extra echo here, run_test already logged the failure.
overall_script_exit_code=1
fi
}

# --- Actual Test Execution ---
run_and_track_test 0 "test_perf.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_perf.py"
run_and_track_test 1 "test_compilation.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_compilation.py"
run_and_track_test 2 "test_basic.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_basic.py"
run_and_track_test 3 "test_accuracy.py::test_lm_eval_accuracy_v1_engine" \
"python3 -m pytest -s -v /workspace/vllm/tests/entrypoints/llm/test_accuracy.py::test_lm_eval_accuracy_v1_engine"
run_and_track_test 4 "test_quantization_accuracy.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_quantization_accuracy.py"
run_and_track_test 5 "examples/offline_inference/tpu.py" \
"python3 /workspace/vllm/examples/offline_inference/tpu.py"
run_and_track_test 6 "test_tpu_model_runner.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/worker/test_tpu_model_runner.py"
run_and_track_test 7 "test_sampler.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_sampler.py"
run_and_track_test 8 "test_topk_topp_sampler.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_topk_topp_sampler.py"
run_and_track_test 9 "test_multimodal.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_multimodal.py"
run_and_track_test 10 "test_pallas.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/tpu/test_pallas.py"
run_and_track_test 11 "test_struct_output_generate.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/v1/entrypoints/llm/test_struct_output_generate.py"
run_and_track_test 12 "test_moe_pallas.py" \
"python3 -m pytest -s -v /workspace/vllm/tests/tpu/test_moe_pallas.py"
run_and_track_test 13 "test_lora.py" \
"VLLM_XLA_CHECK_RECOMPILATION=0 python3 -m pytest -s -v /workspace/vllm/tests/tpu/lora/test_lora.py"

# After all tests have been attempted, exit with the overall status.
if [ "$overall_script_exit_code" -ne 0 ]; then
echo "--- One or more tests FAILED. Overall script exiting with failure code 1. ---"
else
echo "--- All tests have completed and PASSED. Overall script exiting with success code 0. ---"
fi
exit "$overall_script_exit_code"
' # IMPORTANT: This is the closing single quote for the bash -c "..." command. Ensure it is present and correct.

# Capture the exit code of the docker run command
DOCKER_RUN_EXIT_CODE=$?

# The trap will run for cleanup.
# Exit the main script with the Docker run command's exit code.
if [ "$DOCKER_RUN_EXIT_CODE" -ne 0 ]; then
echo "Docker run command failed with exit code $DOCKER_RUN_EXIT_CODE."
exit "$DOCKER_RUN_EXIT_CODE"
else
echo "Docker run command completed successfully."
exit 0
fi
# TODO: This test fails because it uses RANDOM_SEED sampling
# && VLLM_USE_V1=1 pytest -v -s /workspace/vllm/tests/tpu/test_custom_dispatcher.py \
# pytest -v -s /workspace/vllm/tests/tpu/test_custom_dispatcher.py \
28 changes: 15 additions & 13 deletions .buildkite/test-pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,9 @@ steps:
- tests/test_sequence
- tests/test_config
- tests/test_logger
- tests/test_vllm_port
commands:
- pytest -v -s engine test_sequence.py test_config.py test_logger.py
- pytest -v -s engine test_sequence.py test_config.py test_logger.py test_vllm_port.py
# OOM in the CI unless we run this separately
- pytest -v -s tokenization
working_dir: "/vllm-workspace/tests" # optional
Expand Down Expand Up @@ -279,18 +280,6 @@ steps:
- pytest -v -s samplers
- VLLM_USE_FLASHINFER_SAMPLER=1 pytest -v -s samplers

- label: LogitsProcessor Test # 5min
working_dir: "/vllm-workspace/tests"
mirror_hardwares: [amdexperimental, amdproduction]
source_file_dependencies:
- vllm/model_executor/layers
- vllm/model_executor/guided_decoding
- tests/test_logits_processor
- tests/model_executor/test_guided_processors
commands:
- pytest -v -s test_logits_processor.py
- pytest -v -s model_executor/test_guided_processors.py

- label: Speculative decoding tests # 40min
mirror_hardwares: [amdexperimental]
source_file_dependencies:
Expand Down Expand Up @@ -408,6 +397,17 @@ steps:
- pytest -v -s tensorizer_loader
- pytest -v -s entrypoints/openai/test_tensorizer_entrypoint.py

- label: Model Executor Test
mirror_hardwares: [amdexperimental, amdproduction]
soft_fail: true
source_file_dependencies:
- vllm/model_executor
- tests/model_executor
commands:
- apt-get update && apt-get install -y curl libsodium23
- export VLLM_WORKER_MULTIPROC_METHOD=spawn
- pytest -v -s model_executor

- label: Benchmarks # 9min
mirror_hardwares: [amdexperimental, amdproduction]
working_dir: "/vllm-workspace/.buildkite"
Expand Down Expand Up @@ -629,9 +629,11 @@ steps:
- vllm/worker/model_runner.py
- entrypoints/llm/test_collective_rpc.py
- tests/v1/test_async_llm_dp.py
- tests/v1/entrypoints/openai/test_multi_api_servers.py
- vllm/v1/engine/
commands:
- TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/test_async_llm_dp.py
- DP_SIZE=2 pytest -v -s v1/entrypoints/openai/test_multi_api_servers.py
- pytest -v -s entrypoints/llm/test_collective_rpc.py
- pytest -v -s ./compile/test_basic_correctness.py
- pytest -v -s ./compile/test_wrapper.py
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ repos:
entry: tools/mypy.sh 0 "local"
language: python
types: [python]
additional_dependencies: &mypy_deps [mypy==1.11.1, types-cachetools, types-setuptools<80.7, types-PyYAML, types-requests]
additional_dependencies: &mypy_deps [mypy==1.11.1, types-cachetools, types-setuptools, types-PyYAML, types-requests, pydantic]
stages: [pre-commit] # Don't run in CI
- id: mypy-3.9 # TODO: Use https://github.com/pre-commit/mirrors-mypy when mypy setup is less awkward
name: Run mypy for Python 3.9
Expand Down
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ include(${CMAKE_CURRENT_LIST_DIR}/cmake/utils.cmake)
# Suppress potential warnings about unused manually-specified variables
set(ignoreMe "${VLLM_PYTHON_PATH}")

# Prevent installation of dependencies (cutlass) by default.
install(CODE "set(CMAKE_INSTALL_LOCAL_ONLY TRUE)" ALL_COMPONENTS)

#
# Supported python versions. These versions will be searched in order, the
# first match will be selected. These should be kept in sync with setup.py.
Expand Down Expand Up @@ -788,5 +791,7 @@ endif()
# For CUDA we also build and ship some external projects.
if (VLLM_GPU_LANG STREQUAL "CUDA")
include(cmake/external_projects/flashmla.cmake)

# vllm-flash-attn should be last as it overwrites some CMake functions
include(cmake/external_projects/vllm_flash_attn.cmake)
endif ()
2 changes: 2 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ Please report security issues privately using [the vulnerability submission form

---

Please see the [Security Guide in the vLLM documentation](https://docs.vllm.ai/en/latest/usage/security.html) for more information on vLLM's security assumptions and recommendations.

Please see [PyTorch's Security Policy](https://github.com/pytorch/pytorch/blob/main/SECURITY.md) for more information and recommendations on how to securely interact with models.
Loading