
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
This container image is optimized for use with Intel® GPUs. It includes the complete source for this vLLM release in /opt/vllm, and vLLM is installed in the Python virtual environment at /opt/venv (package path: /opt/venv/lib/python3.12/site-packages/vllm). It has been validated on https://www.intel.com/content/www/us/en/products/docs/discrete-gpus/arc/workstations/b-series/overview.html. The following bill of materials was used during validation:
| Ingredients | Version |
|---|---|
| vLLM | 0.21.0 |
| vllm-xpu-kernels | 0.1.8.2 |
| Host OS | Ubuntu 24.04 |
| Python | 3.12 |
| PyTorch | 2.11 |
| Transformers | 5.8.0 |
| KMD Driver | 7.0 GA |
| UMD | 26.14.37833.4 |
| Intel(R) OMIX | 0.1.0 |
| oneCCL | 2021.15.9.14 |
For more information about vLLM, visit https://docs.vllm.ai/en/latest/.
The Dockerfiles used to build the container images are available by the links below:
--temperature=0 to collect stable and reproducible performance data.deepseek-ai/DeepSeek-V2-Lite model.This release supports core vLLM serving capabilities on Intel® GPUs, including online FP8 quantization, multimodal models, pooling models, and multi-GPU scaling strategies. In addition to dense model serving, it also includes expert parallelism and validated support for MoE models.
| Feature | Description | Note |
|---|---|---|
| FP8 Online Quantization | vLLM supports weight-only online dynamic quantization with FP8, enabling up to a 2x reduction in model memory requirements and up to a 1.6x throughput improvement with minimal accuracy impact. BF16 and FP16 models can be quantized dynamically to FP8 without calibration data. | See the https://docs.vllm.ai/en/stable/features/quantization/fp8/?h=online+dynamic#online-dynamic-quantization. |
| Multi-Modality Support | Intel® GPUs support many of the popular multimodal models listed upstream https://docs.vllm.ai/en/stable/models/supported_models/#list-of-multimodal-language-models, including the Qwen VL series, InternVL series, whisper-large-v3, DeepSeek-OCR, and PaddleOCR-VL. | For example, Qwen/Qwen2.5-VL-32B-Instruct can run on four Intel® Arc™ Pro B60 Graphics cards for multimodal workloads. |
| Pooling Models Support | vLLM supports pooling models such as embedding, classification, and reward models, and these model types are supported on Intel® GPUs. | For detailed usage, refer to the https://docs.vllm.ai/en/latest/models/pooling_models.html. |
| Pipeline Parallelism | Pipeline parallelism distributes model layers across multiple GPUs, with each GPU processing a different stage of the model in sequence. | On Intel® GPUs, this is supported on a single node with mp as the backend. |
| Data Parallelism | vLLM supports https://docs.vllm.ai/en/latest/serving/data_parallel_deployment.html, where model weights are replicated across separate instances or GPUs to process independent request batches. | Supports both dense and MoE models. |
| Expert Parallelism | Experimental support for https://docs.vllm.ai/en/stable/serving/expert_parallel_deployment, which allows experts in Mixture-of-Experts (MoE) models to be deployed across separate GPUs. | In this release, TP+DP+EP is supported. |
| Speculative Decoding | https://docs.vllm.ai/en/stable/features/speculative_decoding/ with vLLM helps reduce inter-token latency under medium-to-low QPS (query per second), memory-bound workloads. | XPU supports methods n-gram, EAGLE, EAGLE3, medusa, and suffix. |
| FP8 KV cache | Quantized KV cache can reduce memory footprint by allowing approximately double the amount of space for KV cache allocation. This enables either processing longer context lengths for individual requests, or handling more concurrent request batches. | XPU supports FP8 KV cache with per-tensor quantization. |
In addition, features such as async scheduling, cpu kv cache offloading, https://docs.vllm.ai/en/latest/design/prefix_caching, https://docs.vllm.ai/en/latest/features/reasoning_outputs.html, https://docs.vllm.ai/en/latest/features/structured_outputs.html and https://docs.vllm.ai/en/latest/features/tool_calling.html are also supported.
The following tables list the models validated by Intel. Support for vLLM on Intel® GPUs extends to a broader set of models beyond this list.
These models primarily use the LLM.generate API. Chat and instruct variants also support the LLM.chat API.
| Model (company/model name) | BF16/FP16 | Dynamic Online FP8 | MXFP4 |
|---|---|---|---|
| openai/gpt-oss-20b | ✅︎ | ||
| openai/gpt-oss-120b | ✅︎ | ||
| deepseek-ai/DeepSeek-R1-Distill-Llama-8B | ✅︎ | ✅︎ | |
| deepseek-ai/DeepSeek-R1-Distill-Qwen-14B | ✅︎ | ✅︎ | |
| deepseek-ai/DeepSeek-R1-Distill-Qwen-32B | ✅︎ | ✅︎ | |
| deepseek-ai/DeepSeek-R1-Distill-Llama-70B | ✅︎ | ✅︎ | |
| deepseek-ai/DeepSeek-Coder-33B-base | ✅︎ | ✅︎ | |
| Qwen/Qwen2.5-72B-Instruct | ✅︎ | ✅︎ | |
| Qwen/Qwen3-14B | ✅︎ | ✅︎ | |
| Qwen/Qwen3-32B | ✅︎ | ✅︎ | |
| Qwen/Qwen3-30B-A3B | ✅︎ | ✅︎ | |
| Qwen/Qwen3-coder-30B-A3B-Instruct | ✅︎ | ✅︎ | |
| Qwen/Qwen3-NEXT-80B-A3B-Instruct | ✅︎ | ✅︎ | |
| Qwen/Qwen3-NEXT-80B-A3B-Thinking | ✅︎ | ✅︎ | |
| Qwen/QwQ-32B | ✅︎ | ✅︎ | |
| openbmb/MiniCPM-V-4 | ✅︎ | ✅︎ | |
| deepseek-ai/DeepSeek-V2-Lite | ✅︎ | ✅︎ | |
| meta-llama/Llama-3.1-8B-Instruct | ✅︎ | ✅︎ | |
| THUDM/GLM-4-9B-chat | ✅︎ | ✅︎ | |
| THUDM/GLM-4v-9B-chat | ✅︎ | ✅︎ | |
| THUDM/CodeGeex4-All-9B | ✅︎ | ✅︎ | |
| chuhac/TeleChat2-35B | ✅︎ | ✅︎ | |
| 01-ai/Yi1.5-34B-Chat | ✅︎ | ✅︎ | |
| meta-llama/Llama-2-13b-chat-hf | ✅︎ | ✅︎ | |
| Qwen/Qwen1.5-14B-Chat | ✅︎ | ✅︎ | |
| Qwen/Qwen1.5-32B-Chat | ✅︎ | ✅︎ |
Per-tensor and per-channel compressed_tensors quantized models such as RedHatAI/Meta-Llama-3.1-8B-Instruct-FP8-dynamic are also supported.
Supported modalities vary by model and include text, image, video, and audio:
| Model (company/model name) | BF16/FP16 | Dynamic Online FP8 | Text | Image | Video | Audio |
|---|---|---|---|---|---|---|
| openai/whisper-large-v3 | ✅︎ | ✅︎ | ||||
| deepseek-ai/DeepSeek-OCR | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ||
| PaddlePaddle/PaddleOCR-VL | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ||
| Qwen/Qwen2-VL-7B-Instruct | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| Qwen/Qwen2.5-VL-72B-Instruct | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| Qwen/Qwen2.5-VL-32B-Instruct | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| OpenGVLab/InternVL3_5-8B | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| OpenGVLab/InternVL3_5-14B | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| OpenGVLab/InternVL3_5-38B | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| OpenGVLab/InternVL3_5-30B-A3B | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ | |
| openbmb/MiniCPM-V-4 | ✅︎ | ✅︎ | ✅︎ | ✅︎ | ✅︎ |
These models primarily support the LLM.embed API. The following table lists the models validated on XPU.
| Model Type | Model (company/model name) | BF16 | Dynamic Online FP8 |
|---|---|---|---|
| Embedding Model | Qwen/Qwen3-Embedding-8B | ✅︎ | ✅︎ |
| Reranker Model | Qwen/Qwen3-Reranker-8B | ✅︎ | ✅︎ |
The following items are currently known issues and limitations:
vllm serve uses aggressive GPU memory allocation by default. If you encounter an out-of-memory (OOM) condition, reduce the GPU memory utilization setting when starting the server. For example: vllm serve --gpu-memory-utilization 0.8.torch.compile is currently not supported.FusedMoE refactor in upstream.| OS | Hardware |
|---|---|
| Ubuntu 24.04 | Intel® Arc™ B-Series |
Pull the released Docker image:
bashdocker pull <docker-image-name>:<tag>
Start the container:
bashdocker run -t -d --shm-size 10g --net=host --ipc=host --privileged \ -v /dev/dri/by-path:/dev/dri/by-path --name=vllm-test \ --device /dev/dri:/dev/dri --entrypoint=/bin/bash <docker-image-name>:<tag>
Open two terminals and run docker exec -it vllm-test bash in both. Use one terminal for the server and the other for the client.
From this point on, all commands are expected to be run inside the Docker container unless noted otherwise.
In both environments, you may want to set the HUGGING_FACE_HUB_TOKEN environment variable so the required files can be downloaded from Hugging Face.
bashexport HUGGING_FACE_HUB_TOKEN=xxxxxx
5.3.1. Launch the Server in the Server Environment
Command:
bashVLLM_WORKER_MULTIPROC_METHOD=spawn vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \ --dtype=float16 \ --enforce-eager \ --port 8000 \ --block-size 64 \ --gpu-memory-utilization 0.9 \ --no-enable-prefix-caching \ --trust-remote-code \ --max-num-batched-tokens=8192 \ --max-model-len 4096 \ -tp=4 \ --quantization fp8
Expected output:
bashINFO 03-20 03:20:29 api_server.py:937] Starting vLLM API server on http://0.0.0.0:8000 INFO 03-20 03:20:29 launcher.py:23] Available routes are: INFO 03-20 03:20:29 launcher.py:31] Route: /openapi.json, Methods: HEAD, GET INFO 03-20 03:20:29 launcher.py:31] Route: /docs, Methods: HEAD, GET INFO 03-20 03:20:29 launcher.py:31] Route: /docs/oauth2-redirect, Methods: HEAD, GET INFO 03-20 03:20:29 launcher.py:31] Route: /redoc, Methods: HEAD, GET INFO 03-20 03:20:29 launcher.py:31] Route: /health, Methods: GET INFO 03-20 03:20:29 launcher.py:31] Route: /ping, Methods: POST, GET INFO 03-20 03:20:29 launcher.py:31] Route: /tokenize, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /detokenize, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/models, Methods: GET INFO 03-20 03:20:29 launcher.py:31] Route: /version, Methods: GET INFO 03-20 03:20:29 launcher.py:31] Route: /v1/chat/completions, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/completions, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/embeddings, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /pooling, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /score, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/score, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/audio/transcriptions, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /rerank, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v1/rerank, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /v2/rerank, Methods: POST INFO 03-20 03:20:29 launcher.py:31] Route: /invocations, Methods: POST INFO: Started server process [1636943] INFO: Waiting for application startup. INFO: Application startup complete.
Startup may take some time. When INFO: Application startup complete. appears, the server is ready.
5.3.2. Send Benchmark Requests from the Client Environment
Use the following command to send benchmark requests:
bashvllm bench serve \ --model deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \ --dataset-name random \ --random-input-len=1024 \ --random-output-len=1024 \ --ignore-eos \ --num-prompt 16 \ --max-concurrency 16 \ --temperature=0 \ --request-rate inf \ --backend vllm \ --port=8000 \ --host 0.0.0.0 \ --ready-check-timeout-sec 1
This command uses the deepseek-ai/DeepSeek-R1-Distill-Qwen-32B model. Both the input and output lengths are set to 1024 tokens, and the server processes up to 16 requests concurrently.
Expected output:
bashMaximum request concurrency: 16 ============ Serving Benchmark Result ============ Successful requests: 1 Benchmark duration (s): xxx Total input tokens: 1024 Total generated tokens: 1024 Request throughput (req/s): xxx Output token throughput (tok/s): xxx Total Token throughput (tok/s): xxx ---------------Time to First Token---------------- Mean TTFT (ms): xxx Median TTFT (ms): xxx P99 TTFT (ms): xxx -----Time per Output Token (excl. 1st token)------ Mean TPOT (ms): xxx Median TPOT (ms): xxx P99 TPOT (ms): xxx ---------------Inter-token Latency---------------- Mean ITL (ms): xxx Median ITL (ms): xxx P99 ITL (ms): xxx ==================================================
If you encounter any issues or have questions, please submit an issue at https://github.com/vllm-project/vllm/issues. Include the text [Intel GPU] in the issue title so it is routed appropriately.
By downloading and using these container images and the included software, you agree to the terms and conditions of the https://github.com/intel/containers/tree/main/LICENSE.
In accordance with the terms and conditions of these licenses, particularly those requiring source code availability, such as GPL, the source code for all open-source components included in these container images can be obtained from https://iotdk.intel.com/container-sources/.
All Ubuntu container images are intended for demo purposes only and not intended for production use. To receive expanded security maintenance from Canonical on the Ubuntu base layer, you may follow the https://documentation.ubuntu.com/pro-client/en/docs/howtoguides/enable_in_dockerfile/ which will require the image to be rebuilt.
FFmpeg is an open source project licensed under LGPL and GPL. See https://www.ffmpeg.org/legal.html. You are solely responsible for determining if your use of FFmpeg requires any additional licenses. Intel is not responsible for obtaining any such licenses, nor liable for any licensing fees due, in connection with your use of FFmpeg.
© Intel Corporation. Intel, Intel® Graphics Compute Runtime for oneAPI Level Zero and OpenCL™ Driver and other Intel marks are trademarks of Intel Corporation or its subsidiaries.
* Other names and brands may be claimed as the property of others.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 intel/vllm 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: