Run This Ai
EN DE

How to Deploy vLLM Ascend with Docker: Step-by-Step Tutorial

Deploy vLLM on Huawei Ascend NPUs in minutes with the official ascendai/vllm-ascend Docker image. Pull, run, and query an OpenAI-compatible LLM endpoint.

In this tutorial you'll get vLLM Ascend serving an LLM on Huawei Ascend hardware using the official Docker image. The whole flow β€” from pull to a working OpenAI-compatible endpoint β€” takes about ten minutes on a machine with an Ascend 910B or 310P NPU.

πŸš€ Want to deploy vLLM Ascend yourself?

Docker configs, system requirements, and installation guides β€” all on one page.

View vLLM Ascend Tool Page β†’

Prerequisites

  • An Ascend 910B / 310P NPU with the CANN toolkit installed and npu-smi info reporting your device
  • Docker with the Ascend container runtime (Ascend Docker Runtime)
  • 8 GB+ RAM minimum; 32 GB recommended for larger models

Step 1 β€” Pull the image

docker pull ascendai/vllm-ascend:latest

The image bundles vLLM, the vllm-ascend plugin, and the Ascend runtime β€” no manual pip installs needed. It has been pulled over 315,000 times, so it is battle-tested in production setups.

Step 2 β€” Run the server

docker run --rm \
  --device=/dev/davinci0 \
  --device=/dev/davinci_manager \
  --device=/dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /usr/local/dcmi:/usr/local/dcmi \
  -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
  -p 8080:8080 \
  ascendai/vllm-ascend:latest \
  --model Qwen/Qwen2.5-7B-Instruct --max-model-len 8192

This exposes the standard vLLM server on port 8080. You can swap in any model from Hugging Face that fits your NPU memory.

Step 3 β€” Query the endpoint

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "Hello from Ascend!"}]}'

Because the API is OpenAI-compatible, your existing clients β€” LangChain, LiteLLM, Open WebUI β€” work without modification. Just point base_url at http://localhost:8080/v1.

Performance notes

SettingRecommendation
Tensor parallelismUse --tensor-parallel-size to split across multiple NPUs
Max model lengthTune --max-model-len to fit NPU memory
BatchingContinuous batching is on by default β€” no tuning needed

πŸš€ Ready to run LLMs on Ascend?

Get the full Docker Compose config, requirements, and installation guide.

View vLLM Ascend Tool Page β†’
#vllm #ascend #docker #tutorial #npu