mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-15 20:04:59 +08:00
57 lines
3.2 KiB
Markdown
57 lines
3.2 KiB
Markdown
# Benchmark Suites
|
|
|
|
vLLM contains two sets of benchmarks:
|
|
|
|
- [Performance benchmarks][performance-benchmarks]
|
|
- [Nightly benchmarks][nightly-benchmarks]
|
|
|
|
[](){ #performance-benchmarks }
|
|
|
|
## Performance Benchmarks
|
|
|
|
The performance benchmarks are used for development to confirm whether new changes improve performance under various workloads. They are triggered on every commit with both the `perf-benchmarks` and `ready` labels, and when a PR is merged into vLLM.
|
|
|
|
### Manually Trigger the benchmark
|
|
|
|
Use [vllm-ci-test-repo images](https://gallery.ecr.aws/q9t5s3a7/vllm-ci-test-repo) with vLLM benchmark suite.
|
|
For CPU environment, please use the image with "-cpu" postfix.
|
|
|
|
Here is an example for docker run command for CPU.
|
|
|
|
```bash
|
|
docker run -it --entrypoint /bin/bash -v /data/huggingface:/root/.cache/huggingface -e HF_TOKEN='' --shm-size=16g --name vllm-cpu-ci public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:1da94e673c257373280026f75ceb4effac80e892-cpu
|
|
```
|
|
|
|
Then, run below command inside the docker instance.
|
|
|
|
```bash
|
|
bash .buildkite/nightly-benchmarks/scripts/run-performance-benchmarks.sh
|
|
```
|
|
|
|
When run, benchmark script generates results under **benchmark/results** folder, along with the benchmark_results.md and benchmark_results.json.
|
|
|
|
#### Runtime environment variables
|
|
|
|
- `ON_CPU`: set the value to '1' on Intel® Xeon® Processors. Default value is 0.
|
|
- `SERVING_JSON`: JSON file to use for the serving tests. Default value is empty string (use default file).
|
|
- `LATENCY_JSON`: JSON file to use for the latency tests. Default value is empty string (use default file).
|
|
- `THROUGHPUT_JSON`: JSON file to use for the throughout tests. Default value is empty string (use default file).
|
|
- `REMOTE_HOST`: IP for the remote vLLM service to benchmark. Default value is empty string.
|
|
- `REMOTE_PORT`: Port for the remote vLLM service to benchmark. Default value is empty string.
|
|
|
|
For more results visualization, check the [visualizing the results](https://github.com/intel-ai-tce/vllm/blob/more_cpu_models/.buildkite/nightly-benchmarks/README.md#visualizing-the-results).
|
|
|
|
The latest performance results are hosted on the public [vLLM Performance Dashboard](https://hud.pytorch.org/benchmark/llms?repoName=vllm-project%2Fvllm).
|
|
|
|
More information on the performance benchmarks and their parameters can be found in [Benchmark README](https://github.com/intel-ai-tce/vllm/blob/more_cpu_models/.buildkite/nightly-benchmarks/README.md) and [performance benchmark description](gh-file:.buildkite/nightly-benchmarks/performance-benchmarks-descriptions.md).
|
|
|
|
[](){ #nightly-benchmarks }
|
|
|
|
## Nightly Benchmarks
|
|
|
|
These compare vLLM's performance against alternatives (`tgi`, `trt-llm`, and `lmdeploy`) when there are major updates of vLLM (e.g., bumping up to a new version). They are primarily intended for consumers to evaluate when to choose vLLM over other options and are triggered on every commit with both the `perf-benchmarks` and `nightly-benchmarks` labels.
|
|
|
|
The latest nightly benchmark results are shared in major release blog posts such as [vLLM v0.6.0](https://blog.vllm.ai/2024/09/05/perf-update.html).
|
|
|
|
More information on the nightly benchmarks and their parameters can be found [here](gh-file:.buildkite/nightly-benchmarks/nightly-descriptions.md).
|