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 15, 16:00 UTC
Move dockerfiles into their own directory (#14549)
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Harry Mellor committed
Mar 31, 2025 at 21:47 UTC
e6e3c55ef28f30bca855399419c61bb70af03db2
34 files changed
+44
-42
.buildkite/release-pipeline.yaml
+6
-6
@@ -3,7 +3,7 @@ steps:
3
agents:
4
queue: cpu_queue_postmerge
5
commands:
6
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.4.0 --tag vllm-ci:build-image --target build --progress plain ."
6
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.4.0 --tag vllm-ci:build-image --target build --progress plain -f docker/Dockerfile ."
7
- "mkdir artifacts"
8
- "docker run --rm -v $(pwd)/artifacts:/artifacts_host vllm-ci:build-image bash -c 'cp -r dist /artifacts_host && chmod -R a+rw /artifacts_host'"
9
- "bash .buildkite/upload-wheels.sh"
@@ -14,7 +14,7 @@ steps:
14
agents:
15
queue: cpu_queue_postmerge
16
commands:
17
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.1.0 --tag vllm-ci:build-image --target build --progress plain ."
17
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.1.0 --tag vllm-ci:build-image --target build --progress plain -f docker/Dockerfile ."
18
- "mkdir artifacts"
19
- "docker run --rm -v $(pwd)/artifacts:/artifacts_host vllm-ci:build-image bash -c 'cp -r dist /artifacts_host && chmod -R a+rw /artifacts_host'"
20
- "bash .buildkite/upload-wheels.sh"
@@ -31,7 +31,7 @@ steps:
31
agents:
32
queue: cpu_queue_postmerge
33
commands:
34
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=11.8.0 --tag vllm-ci:build-image --target build --progress plain ."
34
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=11.8.0 --tag vllm-ci:build-image --target build --progress plain -f docker/Dockerfile ."
35
- "mkdir artifacts"
36
- "docker run --rm -v $(pwd)/artifacts:/artifacts_host vllm-ci:build-image bash -c 'cp -r dist /artifacts_host && chmod -R a+rw /artifacts_host'"
37
- "bash .buildkite/upload-wheels.sh"
@@ -48,7 +48,7 @@ steps:
48
queue: cpu_queue_postmerge
49
commands:
50
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
51
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.4.0 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT --target vllm-openai --progress plain ."
51
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --build-arg CUDA_VERSION=12.4.0 --tag public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT --target vllm-openai --progress plain -f docker/Dockerfile ."
52
- "docker push public.ecr.aws/q9t5s3a7/vllm-release-repo:$BUILDKITE_COMMIT"
53
54
- label: "Build and publish TPU release image"
@@ -57,7 +57,7 @@ steps:
57
agents:
58
queue: tpu_queue_postmerge
59
commands:
60
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --tag vllm/vllm-tpu:nightly --tag vllm/vllm-tpu:$BUILDKITE_COMMIT --progress plain -f Dockerfile.tpu ."
60
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg USE_SCCACHE=1 --build-arg GIT_REPO_CHECK=1 --tag vllm/vllm-tpu:nightly --tag vllm/vllm-tpu:$BUILDKITE_COMMIT --progress plain -f docker/Dockerfile.tpu ."
61
- "docker push vllm/vllm-tpu:nightly"
62
- "docker push vllm/vllm-tpu:$BUILDKITE_COMMIT"
63
plugins:
@@ -82,7 +82,7 @@ steps:
82
queue: cpu_queue_postmerge
83
commands:
84
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
85
- - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg GIT_REPO_CHECK=1 --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version) --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest --progress plain --target vllm-openai -f Dockerfile.cpu ."
85
+ - "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg GIT_REPO_CHECK=1 --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version) --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest --progress plain --target vllm-openai -f docker/Dockerfile.cpu ."
86
- "docker push public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version)"
87
env:
88
DOCKER_BUILDKIT: "1"
.buildkite/run-cpu-test-ppc64le.sh
+1
-1
@@ -10,5 +10,5 @@ trap remove_docker_container EXIT
10
remove_docker_container
11
12
# Try building the docker image
13
-docker build -t cpu-test -f Dockerfile.ppc64le .
13
+docker build -t cpu-test -f docker/Dockerfile.ppc64le .
14
.buildkite/run-cpu-test.sh
+2
-2
@@ -18,8 +18,8 @@ trap remove_docker_container EXIT
18
remove_docker_container
19
20
# Try building the docker image
21
-numactl -C "$CORE_RANGE" -N "$NUMA_NODE" docker build --tag cpu-test-"$BUILDKITE_BUILD_NUMBER" --target vllm-test -f Dockerfile.cpu .
22
-numactl -C "$CORE_RANGE" -N "$NUMA_NODE" docker build --build-arg VLLM_CPU_DISABLE_AVX512="true" --tag cpu-test-"$BUILDKITE_BUILD_NUMBER"-avx2 --target vllm-test -f Dockerfile.cpu .
21
+numactl -C "$CORE_RANGE" -N "$NUMA_NODE" docker build --tag cpu-test-"$BUILDKITE_BUILD_NUMBER" --target vllm-test -f docker/Dockerfile.cpu .
22
+numactl -C "$CORE_RANGE" -N "$NUMA_NODE" docker build --build-arg VLLM_CPU_DISABLE_AVX512="true" --tag cpu-test-"$BUILDKITE_BUILD_NUMBER"-avx2 --target vllm-test -f docker/Dockerfile.cpu .
23
24
# Run the image, setting --shm-size=4g for tensor parallel.
25
docker run -itd --entrypoint /bin/bash -v ~/.cache/huggingface:/root/.cache/huggingface --cpuset-cpus="$CORE_RANGE" \
.buildkite/run-gh200-test.sh
+1
@@ -9,6 +9,7 @@ python3 use_existing_torch.py
9
10
# Try building the docker image
11
DOCKER_BUILDKIT=1 docker build . \
12
+ --file docker/Dockerfile \
13
--target vllm-openai \
14
--platform "linux/arm64" \
15
-t gh200-test \
.buildkite/run-hpu-test.sh
+1
-1
@@ -5,7 +5,7 @@
5
set -ex
6
7
# Try building the docker image
8
-docker build -t hpu-test-env -f Dockerfile.hpu .
8
+docker build -t hpu-test-env -f docker/Dockerfile.hpu .
9
10
# Setup cleanup
11
# certain versions of HPU software stack have a bug that can
.buildkite/run-neuron-test.sh
+1
-1
@@ -35,7 +35,7 @@ else
35
date "+%s" > /tmp/neuron-docker-build-timestamp
36
fi
37
38
-docker build -t "${image_name}" -f Dockerfile.neuron .
38
+docker build -t "${image_name}" -f docker/Dockerfile.neuron .
39
40
# Setup cleanup
41
remove_docker_container() {
.buildkite/run-tpu-v1-test.sh
+1
-1
@@ -3,7 +3,7 @@
3
set -e
4
5
# Build the docker image.
6
-docker build -f Dockerfile.tpu -t vllm-tpu .
6
+docker build -f docker/Dockerfile.tpu -t vllm-tpu .
7
8
# Set up cleanup.
9
remove_docker_container() { docker rm -f tpu-test || true; }
.buildkite/run-xpu-test.sh
+1
-1
@@ -8,7 +8,7 @@ image_name="xpu/vllm-ci:${BUILDKITE_COMMIT}"
8
container_name="xpu_${BUILDKITE_COMMIT}_$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 10; echo)"
9
10
# Try building the docker image
11
-docker build -t ${image_name} -f Dockerfile.xpu .
11
+docker build -t ${image_name} -f docker/Dockerfile.xpu .
12
13
# Setup cleanup
14
remove_docker_container() {
.github/mergify.yml
+1
-1
@@ -19,7 +19,7 @@ pull_request_rules:
19
- files~=\.buildkite/
20
- files~=^cmake/
21
- files=CMakeLists.txt
22
- - files~=^Dockerfile
22
+ - files~=^docker/Dockerfile
23
- files~=^requirements.*\.txt
24
- files=setup.py
25
actions:
.github/workflows/lint-and-deploy.yaml
+1
-1
@@ -50,7 +50,7 @@ jobs:
50
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0
51
52
- name: Build the Docker image vllm cpu
53
- run: docker buildx build -f Dockerfile.cpu -t vllm-cpu-env .
53
+ run: docker buildx build -f docker/Dockerfile.cpu -t vllm-cpu-env .
54
55
- name: Configuration of docker images, network and namespace for the kind cluster
56
run: |
CMakeLists.txt
+1
-1
@@ -44,7 +44,7 @@ set(HIP_SUPPORTED_ARCHS "gfx906;gfx908;gfx90a;gfx942;gfx950;gfx1030;gfx1100;gfx1
44
#
45
# Note: the CUDA torch version is derived from pyproject.toml and various
46
# requirements.txt files and should be kept consistent. The ROCm torch
47
-# versions are derived from Dockerfile.rocm
47
+# versions are derived from docker/Dockerfile.rocm
48
#
49
set(TORCH_SUPPORTED_VERSION_CUDA "2.6.0")
50
set(TORCH_SUPPORTED_VERSION_ROCM "2.6.0")
docker/Dockerfile
renamed
docker/Dockerfile.arm
renamed
docker/Dockerfile.cpu
renamed
docker/Dockerfile.hpu
renamed
docker/Dockerfile.neuron
renamed
docker/Dockerfile.ppc64le
renamed
docker/Dockerfile.rocm
renamed
docker/Dockerfile.rocm_base
renamed
docker/Dockerfile.s390x
renamed
docker/Dockerfile.tpu
renamed
docker/Dockerfile.xpu
renamed
docs/source/contributing/dockerfile/dockerfile.md
+3
-3
@@ -1,6 +1,6 @@
1
# Dockerfile
2
3
-We provide a <gh-file:Dockerfile> to construct the image for running an OpenAI compatible server with vLLM.
3
+We provide a <gh-file:docker/Dockerfile> to construct the image for running an OpenAI compatible server with vLLM.
4
More information about deploying with Docker can be found [here](#deployment-docker).
5
6
Below is a visual representation of the multi-stage Dockerfile. The build graph contains the following nodes:
@@ -28,7 +28,7 @@ The edges of the build graph represent:
28
> Commands to regenerate the build graph (make sure to run it **from the \`root\` directory of the vLLM repository** where the dockerfile is present):
29
>
30
> ```bash
31
- > dockerfilegraph -o png --legend --dpi 200 --max-label-length 50 --filename Dockerfile
31
+ > dockerfilegraph -o png --legend --dpi 200 --max-label-length 50 --filename docker/Dockerfile
32
> ```
33
>
34
> or in case you want to run it directly with the docker image:
@@ -43,7 +43,7 @@ The edges of the build graph represent:
43
> --output png \
44
> --dpi 200 \
45
> --max-label-length 50 \
46
- > --filename Dockerfile \
46
+ > --filename docker/Dockerfile \
47
> --legend
48
> ```
49
>
docs/source/contributing/overview.md
+1
-1
@@ -45,7 +45,7 @@ pytest tests/
45
```
46
47
:::{tip}
48
-Since the <gh-file:Dockerfile> ships with Python 3.12, all tests in CI (except `mypy`) are run with Python 3.12.
48
+Since the <gh-file:docker/Dockerfile> ships with Python 3.12, all tests in CI (except `mypy`) are run with Python 3.12.
49
50
Therefore, we recommend developing with Python 3.12 to minimise the chance of your local environment clashing with our CI environment.
51
:::
docs/source/deployment/docker.md
+3
-2
@@ -61,11 +61,11 @@ RUN uv pip install --system git+https://github.com/huggingface/transformers.git
61
62
## Building vLLM's Docker Image from Source
63
64
-You can build and run vLLM from source via the provided <gh-file:Dockerfile>. To build vLLM:
64
+You can build and run vLLM from source via the provided <gh-file:docker/Dockerfile>. To build vLLM:
65
66
```console
67
# optionally specifies: --build-arg max_jobs=8 --build-arg nvcc_threads=2
68
-DOCKER_BUILDKIT=1 docker build . --target vllm-openai --tag vllm/vllm-openai
68
+DOCKER_BUILDKIT=1 docker build . --target vllm-openai --tag vllm/vllm-openai --file docker/Dockerfile
69
```
70
71
:::{note}
@@ -92,6 +92,7 @@ Keep an eye on memory usage with parallel jobs as it can be substantial (see exa
92
# Example of building on Nvidia GH200 server. (Memory usage: ~15GB, Build time: ~1475s / ~25 min, Image size: 6.93GB)
93
$ python3 use_existing_torch.py
94
$ DOCKER_BUILDKIT=1 docker build . \
95
+ --file docker/Dockerfile \
96
--target vllm-openai \
97
--platform "linux/arm64" \
98
-t vllm/vllm-gh200-openai:latest \
docs/source/deployment/nginx.md
+2
-2
@@ -69,14 +69,14 @@ server {
69
70
```console
71
cd $vllm_root
72
-docker build -f Dockerfile . --tag vllm
72
+docker build -f docker/Dockerfile . --tag vllm
73
```
74
75
If you are behind proxy, you can pass the proxy settings to the docker build command as shown below:
76
77
```console
78
cd $vllm_root
79
-docker build -f Dockerfile . --tag vllm --build-arg http_proxy=$http_proxy --build-arg https_proxy=$https_proxy
79
+docker build -f docker/Dockerfile . --tag vllm --build-arg http_proxy=$http_proxy --build-arg https_proxy=$https_proxy
80
```
81
82
(nginxloadbalancer-nginx-docker-network)=
docs/source/getting_started/installation/ai_accelerator/hpu-gaudi.inc.md
+1
-1
@@ -86,7 +86,7 @@ Currently, there are no pre-built Intel Gaudi images.
86
### Build image from source
87
88
```console
89
-docker build -f Dockerfile.hpu -t vllm-hpu-env .
89
+docker build -f docker/Dockerfile.hpu -t vllm-hpu-env .
90
docker run -it --runtime=habana -e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice --net=host --rm vllm-hpu-env
91
```
92
docs/source/getting_started/installation/ai_accelerator/neuron.inc.md
+1
-1
@@ -132,7 +132,7 @@ Currently, there are no pre-built Neuron images.
132
133
See <project:#deployment-docker-build-image-from-source> for instructions on building the Docker image.
134
135
-Make sure to use <gh-file:Dockerfile.neuron> in place of the default Dockerfile.
135
+Make sure to use <gh-file:docker/Dockerfile.neuron> in place of the default Dockerfile.
136
137
## Extra information
138
docs/source/getting_started/installation/ai_accelerator/tpu.inc.md
+2
-2
@@ -169,10 +169,10 @@ See <project:#deployment-docker-pre-built-image> for instructions on using the o
169
170
### Build image from source
171
172
-You can use <gh-file:Dockerfile.tpu> to build a Docker image with TPU support.
172
+You can use <gh-file:docker/Dockerfile.tpu> to build a Docker image with TPU support.
173
174
```console
175
-docker build -f Dockerfile.tpu -t vllm-tpu .
175
+docker build -f docker/Dockerfile.tpu -t vllm-tpu .
176
```
177
178
Run the Docker image with the following command:
docs/source/getting_started/installation/cpu.md
+3
-3
@@ -177,7 +177,7 @@ Currently, there are no pre-built CPU wheels.
177
### Build image from source
178
179
```console
180
-$ docker build -f Dockerfile.cpu --tag vllm-cpu-env --target vllm-openai .
180
+$ docker build -f docker/Dockerfile.cpu --tag vllm-cpu-env --target vllm-openai .
181
182
# Launching OpenAI server
183
$ docker run --rm \
@@ -193,11 +193,11 @@ $ docker run --rm \
193
```
194
195
::::{tip}
196
-For ARM or Apple silicon, use `Dockerfile.arm`
196
+For ARM or Apple silicon, use `docker/Dockerfile.arm`
197
::::
198
199
::::{tip}
200
-For IBM Z (s390x), use `Dockerfile.s390x` and in `docker run` use flag `--dtype float`
200
+For IBM Z (s390x), use `docker/Dockerfile.s390x` and in `docker run` use flag `--dtype float`
201
::::
202
203
## Supported features
docs/source/getting_started/installation/gpu/rocm.inc.md
+7
-7
@@ -123,7 +123,7 @@ Building the Docker image from source is the recommended way to use vLLM with RO
123
124
#### (Optional) Build an image with ROCm software stack
125
126
-Build a docker image from <gh-file:Dockerfile.rocm_base> which setup ROCm software stack needed by the vLLM.
126
+Build a docker image from <gh-file:docker/Dockerfile.rocm_base> which setup ROCm software stack needed by the vLLM.
127
**This step is optional as this rocm_base image is usually prebuilt and store at [Docker Hub](https://hub.docker.com/r/rocm/vllm-dev) under tag `rocm/vllm-dev:base` to speed up user experience.**
128
If you choose to build this rocm_base image yourself, the steps are as follows.
129
@@ -140,12 +140,12 @@ It is important that the user kicks off the docker build using buildkit. Either
140
To build vllm on ROCm 6.3 for MI200 and MI300 series, you can use the default:
141
142
```console
143
-DOCKER_BUILDKIT=1 docker build -f Dockerfile.rocm_base -t rocm/vllm-dev:base .
143
+DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile.rocm_base -t rocm/vllm-dev:base .
144
```
145
146
#### Build an image with vLLM
147
148
-First, build a docker image from <gh-file:Dockerfile.rocm> and launch a docker container from the image.
148
+First, build a docker image from <gh-file:docker/Dockerfile.rocm> and launch a docker container from the image.
149
It is important that the user kicks off the docker build using buildkit. Either the user put `DOCKER_BUILDKIT=1` as environment variable when calling docker build command, or the user needs to setup buildkit in the docker daemon configuration /etc/docker/daemon.json as follows and restart the daemon:
150
151
```console
@@ -156,10 +156,10 @@ It is important that the user kicks off the docker build using buildkit. Either
156
}
157
```
158
159
-<gh-file:Dockerfile.rocm> uses ROCm 6.3 by default, but also supports ROCm 5.7, 6.0, 6.1, and 6.2, in older vLLM branches.
159
+<gh-file:docker/Dockerfile.rocm> uses ROCm 6.3 by default, but also supports ROCm 5.7, 6.0, 6.1, and 6.2, in older vLLM branches.
160
It provides flexibility to customize the build of docker image using the following arguments:
161
162
-- `BASE_IMAGE`: specifies the base image used when running `docker build`. The default value `rocm/vllm-dev:base` is an image published and maintained by AMD. It is being built using <gh-file:Dockerfile.rocm_base>
162
+- `BASE_IMAGE`: specifies the base image used when running `docker build`. The default value `rocm/vllm-dev:base` is an image published and maintained by AMD. It is being built using <gh-file:docker/Dockerfile.rocm_base>
163
- `USE_CYTHON`: An option to run cython compilation on a subset of python files upon docker build
164
- `BUILD_RPD`: Include RocmProfileData profiling tool in the image
165
- `ARG_PYTORCH_ROCM_ARCH`: Allows to override the gfx architecture values from the base docker image
@@ -169,13 +169,13 @@ Their values can be passed in when running `docker build` with `--build-arg` opt
169
To build vllm on ROCm 6.3 for MI200 and MI300 series, you can use the default:
170
171
```console
172
-DOCKER_BUILDKIT=1 docker build -f Dockerfile.rocm -t vllm-rocm .
172
+DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile.rocm -t vllm-rocm .
173
```
174
175
To build vllm on ROCm 6.3 for Radeon RX7900 series (gfx1100), you should pick the alternative base image:
176
177
```console
178
-DOCKER_BUILDKIT=1 docker build --build-arg BASE_IMAGE="rocm/vllm-dev:navi_base" -f Dockerfile.rocm -t vllm-rocm .
178
+DOCKER_BUILDKIT=1 docker build --build-arg BASE_IMAGE="rocm/vllm-dev:navi_base" -f docker/Dockerfile.rocm -t vllm-rocm .
179
```
180
181
To run the above docker image `vllm-rocm`, use the below command:
docs/source/getting_started/installation/gpu/xpu.inc.md
+1
-1
@@ -54,7 +54,7 @@ Currently, there are no pre-built XPU images.
54
### Build image from source
55
56
```console
57
-$ docker build -f Dockerfile.xpu -t vllm-xpu-env --shm-size=4g .
57
+$ docker build -f docker/Dockerfile.xpu -t vllm-xpu-env --shm-size=4g .
58
$ docker run -it \
59
--rm \
60
--network=host \
docs/source/getting_started/quickstart.md
+1
-1
@@ -208,5 +208,5 @@ Currently, vLLM supports multiple backends for efficient Attention computation a
208
If desired, you can also manually set the backend of your choice by configuring the environment variable `VLLM_ATTENTION_BACKEND` to one of the following options: `FLASH_ATTN`, `FLASHINFER` or `XFORMERS`.
209
210
```{attention}
211
-There are no pre-built vllm wheels containing Flash Infer, so you must install it in your environment first. Refer to the [Flash Infer official docs](https://docs.flashinfer.ai/) or see [Dockerfile](https://github.com/vllm-project/vllm/blob/main/Dockerfile) for instructions on how to install it.
211
+There are no pre-built vllm wheels containing Flash Infer, so you must install it in your environment first. Refer to the [Flash Infer official docs](https://docs.flashinfer.ai/) or see <gh-file:docker/Dockerfile> for instructions on how to install it.
212
```
vllm/config.py
+2
-2
@@ -317,8 +317,8 @@ class ModelConfig:
317
) and backend == "FLASHINFER" and find_spec("flashinfer") is None:
318
raise ValueError(
319
"VLLM_ATTENTION_BACKEND is set to FLASHINFER, but flashinfer "
320
- "module was not found."
321
- "See https://github.com/vllm-project/vllm/blob/main/Dockerfile "
320
+ "module was not found. See "
321
+ "https://github.com/vllm-project/vllm/blob/main/docker/Dockerfile " # noqa: E501
322
"for instructions on how to install it.")
323
324
# The tokenizer version is consistent with the model version by default.