2025-11-30 20:39:06 +08:00
# --8<-- [start:requirements]
2026-07-03 15:01:25 +08:00
For detailed hardware and software requirements, please refer to the [vLLM-Ascend installation documentation ](https://docs.vllm.ai/projects/ascend/en/latest/installation.html ).
2025-11-30 20:39:06 +08:00
# --8<-- [end:requirements]
2026-02-26 14:26:50 +08:00
# --8<-- [start:installation-release]
2025-11-28 11:03:52 +08:00
2026-07-03 15:01:25 +08:00
The recommended way to use vLLM-Omni on NPU is through the vLLM-Ascend pre-built Docker images:
2025-11-30 20:39:06 +08:00
2026-09-10 10:16:14 +08:00
=== "A2"
```bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0
2026-09-10 10:16:14 +08:00
` ``
=== "A3"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-a3
2026-09-10 10:16:14 +08:00
` ``
=== "A5"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-a5
2026-09-10 10:16:14 +08:00
` ``
=== "310P (Experimental)"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/atlas-ci/vllm-ascend:v0.29.0-310p
2026-09-10 10:16:14 +08:00
` ``
2025-11-30 20:39:06 +08:00
` ``bash
docker run --rm \
--name vllm-omni-npu \
2026-09-10 10:16:14 +08:00
--shm-size=64g \
2026-02-26 14:26:50 +08:00
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
2025-11-30 20:39:06 +08:00
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
2026-09-10 10:16:14 +08:00
-p 8091:8091 \
-it "$IMAGE" bash
2025-11-30 20:39:06 +08:00
# Inside the container, install vLLM-Omni from source
cd /vllm-workspace
2026-09-12 12:14:42 +08:00
git clone -b v0.29.0rc1 https://github.com/vllm-project/vllm-omni.git
2025-11-30 20:39:06 +08:00
cd vllm-omni
2026-03-16 14:42:59 +08:00
pip install -v -e . --no-build-isolation
# or VLLM_OMNI_TARGET_DEVICE=npu pip install -v -e .
2025-11-30 20:39:06 +08:00
export VLLM_WORKER_MULTIPROC_METHOD=spawn
` ``
The default workdir is ` /workspace`, with vLLM, vLLM-Ascend and vLLM-Omni code placed in ` /vllm-workspace` installed in development mode.
For other installation methods (pip installation, building from source, custom Docker builds), please refer to the [vllm-ascend installation guide](https://docs.vllm.ai/projects/ascend/en/latest/installation.html).
2025-11-28 11:03:52 +08:00
2026-02-28 12:46:13 +08:00
We are keeping [issue #886](https://github.com/vllm-project/vllm-omni/issues/886) up to date with the aligned versions of vLLM, vLLM-Ascend, and vLLM-Omni, and also outlining the Q1 roadmap there.
2026-02-04 15:10:50 +08:00
2026-02-26 14:26:50 +08:00
# --8<-- [end:installation-release]
# --8<-- [start:installation-main]
2026-09-12 12:14:42 +08:00
You can also install vLLM-Omni from the latest main branch if you want to use the latest features or bug fixes. Use the aligned vLLM-Ascend v0.29.0 image described above, and check [issue #886](https://github.com/vllm-project/vllm-omni/issues/886) for the status of the latest vLLM-Omni commit on NPU.
2026-02-26 14:26:50 +08:00
` ``bash
2026-09-12 12:14:42 +08:00
# Inside the vLLM-Ascend v0.29.0 container, install vLLM-Omni from main
2026-09-01 19:50:26 +08:00
cd /vllm-workspace
2026-02-26 14:26:50 +08:00
git clone https://github.com/vllm-project/vllm-omni.git
2026-08-04 14:18:51 +08:00
cd vllm-omni
2026-02-26 14:26:50 +08:00
pip install -v -e . --no-build-isolation
# or VLLM_OMNI_TARGET_DEVICE=npu pip install -v -e .
export VLLM_WORKER_MULTIPROC_METHOD=spawn
` ``
# --8<-- [end:installation-main]
2026-02-04 15:10:50 +08:00
# --8<-- [start:pre-built-images]
2026-02-26 14:26:50 +08:00
vLLM-Omni offers Docker images for Ascend NPU deployment. You can just pull the **prebuilt image** from the image repository [ascend/vllm-omni](https://quay.io/repository/ascend/vllm-omni?tab=tags) and run it with bash.
2026-02-04 15:10:50 +08:00
Supported images as following.
| image name | Hardware | OS |
|-|-|-|
2026-09-10 10:16:14 +08:00
| image-tag | A2 | Ubuntu |
| image-tag-a3 | A3 | Ubuntu |
| image-tag-a5 | A5 | Ubuntu |
| image-tag-310p | 310P (experimental) | Ubuntu |
2026-02-04 15:10:50 +08:00
2026-02-26 14:26:50 +08:00
Here's an example deployment command that has been verified on 4 x NPUs:
2026-02-04 15:10:50 +08:00
2026-09-10 10:16:14 +08:00
=== "A2"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/ascend/vllm-omni:v0.29.0
2026-09-10 10:16:14 +08:00
docker run --rm \
--name vllm-omni-a2 \
--shm-size=64g \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v ~/.cache:/root/.cache \
-p 8091:8091 \
-it "$IMAGE" bash
` ``
=== "A3"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-a3
2026-09-10 10:16:14 +08:00
docker run --rm \
--name vllm-omni-a3 \
--shm-size=64g \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v ~/.cache:/root/.cache \
-p 8091:8091 \
-it "$IMAGE" bash
` ``
=== "A5"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-a5
2026-09-10 10:16:14 +08:00
docker run --rm \
--name vllm-omni-a5 \
--shm-size=64g \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v ~/.cache:/root/.cache \
-p 8091:8091 \
-it "$IMAGE" bash
` ``
=== "310P (Experimental)"
` ``bash
2026-09-12 12:14:42 +08:00
export IMAGE=quay.io/ascend/vllm-omni:v0.29.0-310p
2026-09-10 10:16:14 +08:00
docker run --rm \
--name vllm-omni-310p \
--shm-size=64g \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v ~/.cache:/root/.cache \
-p 8091:8091 \
-it "$IMAGE" bash
` ``
2026-02-04 15:10:50 +08:00
!!! tip
You can use this docker image to serve models the same way you would with in vLLM! To do so, make sure you overwrite the default entrypoint (` vllm serve --omni`) which works only for models supported in the vLLM-Omni project.
2026-09-10 10:16:14 +08:00
Or build the image from **source code**:
2026-02-04 15:10:50 +08:00
` ``bash
git clone https://github.com/vllm-project/vllm-omni.git
cd vllm-omni
` ``
2026-09-10 10:16:14 +08:00
All hardware variants use ` docker/Dockerfile.npu`. Choose the device suffix for your hardware:
=== "A2"
` ``bash
docker build -t vllm-omni-dev-image:latest -f docker/Dockerfile.npu .
` ``
=== "A3"
` ``bash
docker build -t vllm-omni-dev-image:latest -f docker/Dockerfile.npu \
--build-arg VLLM_ASCEND_DEVICE_SUFFIX=-a3 .
` ``
=== "A5"
` ``bash
docker build -t vllm-omni-dev-image:latest -f docker/Dockerfile.npu \
--build-arg VLLM_ASCEND_DEVICE_SUFFIX=-a5 .
` ``
=== "310P (Experimental)"
` ``bash
docker build -t vllm-omni-dev-image:latest -f docker/Dockerfile.npu \
--build-arg VLLM_ASCEND_DEVICE_SUFFIX=-310p .
` ``
2026-02-04 15:10:50 +08:00
# --8<-- [end:pre-built-images]