快速开始¶
以下流程均已在生产服务器上验证通过(docker 容器 qwen38-p800 内)。
完整安装细节见 安装,参数说明见 启动参数。
1. 创建容器(8 卡全映射)¶
docker run -itd --name qwen38-p800 \
--device=/dev/xpu0..7:/dev/xpu0..7 \
--device=/dev/xpuctrl:/dev/xpuctrl \
--net=host --cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
--tmpfs /dev/shm:rw,nosuid,nodev,exec,size=32g \
-v /home/newdata:/home/newdata \
-v /usr/local/bin/xpu-smi:/usr/local/bin/xpu-smi \
-w /home/newdata \
docker.int.aoripus.com/vllm-kunlun-exp:base /bin/bash
操作要求
- 宿主机不执行任何 vllm 相关命令(仅允许 docker create/start/exec)
- 容器创建后所有操作在容器内进行:
docker exec -it qwen38-p800 bash - 8 张卡必须全部映射进容器
- 容器内 python 位于
/opt/vllm_kunlun/bin/python(venv,无 pip),包安装统一使用uv pip install --python /opt/vllm_kunlun/bin/python --index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. 安装环境(官方验证组合)¶
# 驱动插件/算子栈(kunlun_ops 0.1.58 + triton + xspeedgate_ops + cocopod)
# cocopod 安装需 UV_SKIP_WHEEL_FILENAME_CHECK=1(wheel 文件名与内部版本号不一致)
# vLLM(PyPI 直装)
uv pip install vllm==0.15.1 --force-reinstall --no-deps
# vllm-kunlun(在仓库根目录编译)
cd /home/newdata/vLLM-Kunlun-0.25.1-dev
python setup.py build && python setup.py install
# transformers(必须为 5.2.0)
uv pip install transformers==5.2.0 --no-deps --force-reinstall
# 补丁(vllm-kunlun 自带,针对 vllm 0.15.x:11 applied / 0 failed)
python vllm_kunlun/patches/patch_torch251.py
cp vllm_kunlun/patches/eval_frame.py /opt/vllm_kunlun/lib/python3.10/site-packages/torch/_dynamo/eval_frame.py
cp vllm_kunlun/quantization/__init__.py /opt/vllm_kunlun/lib/python3.10/site-packages/vllm/model_executor/layers/quantization/__init__.py
editable 安装形态说明
vllm-kunlun 采用 editable 安装:_editable_impl_vllm_kunlun.pth 将仓库根加入
sys.path,但实际加载路径为 site-packages/vllm_kunlun(可通过
python -c "import vllm_kunlun; print(vllm_kunlun.__file__)" 验证)。
源码同步需双份(site-packages 与仓库根);编译必须在仓库根执行
(构建文件位于仓库根,扩展源码在 vllm_kunlun/csrc/)。
_kunlun 扩展位于包根 _kunlun.cpython-310-x86_64-linux-gnu.so(13.5MB)。
3. 环境变量(启动前 source)¶
source /home/newdata/vLLM-Kunlun-0.25.1-dev/setup_env.sh
XPU_VISIBLE_DEVICES=0-7
XFT_USE_FAST_SWIGLU=1
XMLIR_CUDNN_ENABLED=1
XPU_USE_DEFAULT_CTX=1
XMLIR_FORCE_USE_XPU_GRAPH=1
VLLM_HOST_IP=$(hostname -i)
VLLM_USE_V1=1
USE_ORI_ROPE=1 # Qwen3 融合大算子开关
4. 加载验证(03)¶
# qwen38-deploy/03_vllm_load.py 核心参数
LLM(model="/home/newdata/models/Qwen3.8-27B-W8A8-INT8-Dynamic",
tensor_parallel_size=8, # TP=8 固定
dtype='float16', # 与 config.dtype 一致
quantization='kl3-compressed-xline',
max_model_len=262144, # 原生,无 YaRN
mamba_ssm_cache_dtype='float16', # PR 408 必需
enable_chunked_prefill=True,
gpu_memory_utilization=0.9)
实测结果(2026-08-16):
[OK] 模型加载成功 (TP=8, kl3-compressed-xline, float16, max_len=262144)
[短生成] 你好,我是通义千问,由阿里巴巴通义实验室研发的大语言模型。
[长上下文] 模型回答: 200 TOPS # 8000 token 前的事实,成功召回
[PASS] 召回结果: 包含正确数值 200
模型路径
真实目录名为 models/Qwen3.8-27B-W8A8-INT8-Dynamic(约 30GB,含同名 .zip)。
简写 models/Qwen3.8 不存在,vllm 会触发 snapshot_download 并报 HFValidationError。
5. 吞吐压测(04,已验证通过)¶
# short 组:512/512,256 prompts(对齐官方基准口径)
python 04_throughput_bench.py --model /home/newdata/models/Qwen3.8-27B-W8A8-INT8-Dynamic --group short
# long 组:32768/256,16 prompts
python 04_throughput_bench.py --model /home/newdata/models/Qwen3.8-27B-W8A8-INT8-Dynamic --group long --num-prompts 16