8卡64G-910B4-部署测试报告
**测试日期**:2026-06-06 ~ 2026-06-07
**测试人员**:系统运维团队
**硬件环境**:华为 Atlas 800T A2 服务器,8 × Ascend 910B4(64GB HBM2e)
**软件环境**:CANN 8.5.1 / vLLM-Ascend 0.18.0rc1 / Python 3.11 / Ubuntu 22.04
**报告版本**:V1.0(8卡NUMA绑定部署版)
一、测试背景与目标
1.1 背景
本次测试基于华为昇腾 Atlas 800T A2 服务器(8 × 910B4 NPU,每卡64GB HBM),针对 Qwen3.6-27B-W8A8 模型进行多卡部署验证。与之前单卡32G 910B4测试(该环境下27B W8A8模型因显存不足无法运行)不同,本次64G显存环境为27B模型单卡部署提供了充足空间,核心目标是在8卡环境下实现最优的并行推理架构。
1.2 测试目标
- 完成8卡910B4 NUMA亲和性绑定部署,最大化CPU-NPU协同效率
- 验证Qwen3.6-27B-W8A8在单卡64G环境下的加载与推理稳定性
- 对比Nginx least_conn与round_robin负载均衡算法在长推理场景的表现
- 实现工具调用(Function Calling)和Reasoning内容分离的支持
- 记录8卡并行压测下的吞吐量、延迟及NUMA绑定收益
二、环境搭建过程
2.1 硬件确认
|
项目 |
规格 |
|
服务器型号 |
华为 Atlas 800T A2 |
|
NPU型号 |
昇腾910B4 × 8 |
|
单卡显存 |
64GB HBM2e(实际可用约65.5GB) |
|
CPU |
AMD EPYC 7542 × 2(32核/颗,共64核/128线程) |
|
NUMA架构 |
NPS1(2个NUMA节点,每节点32核) |
2.2 软件栈安装
2.2.1 CANN与驱动安装
安装CANN Toolkit 8.5.1、910B算子库、NNAL加速库及NPU驱动固件:
# CANN Toolkit
./Ascend-cann-toolkit_8.5.1_linux-x86_64.run --full
./Ascend-cann-910b-ops_8.5.1_linux-x86_64.run --install
./Ascend-cann-nnal_8.5.1_linux-x86_64.run --install
# NPU驱动固件
sudo ./Ascend-hdk-910b-npu-driver_25.5.2_linux-x86-64.run --full --install-for-all
sudo ./Ascend-hdk-910b-npu-firmware_7.8.0.7.220.run --full
# 验证
npu-smi info
2.2.2 vLLM-Ascend安装
# 创建虚拟环境
python3.11 -m venv /data/vllm-ascend-env
source /data/vllm-ascend-env/bin/activate
# PyTorch + torch-npu
pip install torch==2.9.0+cpu torchvision==0.24.0+cpu torchaudio==2.9.0+cpu
pip install torch-npu==2.9.0
# vLLM 0.18.0+empty(源码安装,禁用CUDA编译)
git init && git add . && git commit -m "init" && git tag v0.18.0
export VLLM_TARGET_DEVICE=empty
pip install --no-build-isolation .
# vLLM-Ascend
pip install vllm-ascend==0.18.0rc1
# 关键依赖修复
pip install numpy==1.26.4 opencv-python-headless==4.11.0.86 fastapi==0.136.3
pip install triton-ascend==3.2.0.dev20260322
pip uninstall -y cupy-cuda12x xformers
三、NUMA拓扑研究与绑定策略
3.1 NPU互联拓扑分析
通过 npu-smi info -t topo 查看NPU与CPU的PCIe亲和性:
$ npu-smi info -t topo
NPU0 NPU1 NPU2 NPU3 NPU4 NPU5 NPU6 NPU7 CPU Affinity
NPU0 X PHB PHB PHB SYS SYS SYS SYS 0-31,64-95
NPU1 PHB X PHB PHB SYS SYS SYS SYS 0-31,64-95
NPU2 PHB PHB X PHB SYS SYS SYS SYS 0-31,64-95
NPU3 PHB PHB PHB X SYS SYS SYS SYS 0-31,64-95
NPU4 SYS SYS SYS SYS X PHB PHB PHB 32-63,96-127
NPU5 SYS SYS SYS SYS PHB X PHB PHB 32-63,96-127
NPU6 SYS SYS SYS SYS PHB PHB X PHB 32-63,96-127
NPU7 SYS SYS SYS SYS PHB PHB PHB X 32-63,96-127
关键发现:NPU0-3通过PHB(PCIe Host Bridge)互联,归属CPU0/NUMA0;NPU4-7归属CPU1/NUMA1。跨组通信需经过SYS路径(Infinity Fabric),存在额外延迟。
3.2 NUMA绑定策略
采用 numactl 将每个vLLM实例绑定到与其NPU同NUMA的CPU核心,避免跨NUMA内存访问:
|
服务 |
NPU |
NUMA节点 |
numactl参数 |
|
vllm-910b-8000 |
NPU0 |
NUMA0 |
--cpunodebind=0 --membind=0 |
|
vllm-910b-8001 |
NPU1 |
NUMA0 |
--cpunodebind=0 --membind=0 |
|
vllm-910b-8002 |
NPU2 |
NUMA0 |
--cpunodebind=0 --membind=0 |
|
vllm-910b-8003 |
NPU3 |
NUMA0 |
--cpunodebind=0 --membind=0 |
|
vllm-910b-8004 |
NPU4 |
NUMA1 |
--cpunodebind=1 --membind=1 |
|
vllm-910b-8005 |
NPU5 |
NUMA1 |
--cpunodebind=1 --membind=1 |
|
vllm-910b-8006 |
NPU6 |
NUMA1 |
--cpunodebind=1 --membind=1 |
|
vllm-910b-8007 |
NPU7 |
NUMA1 |
--cpunodebind=1 --membind=1 |
四、8卡部署详情
4.1 部署架构
采用 "8独立实例 + Nginx负载均衡" 架构,每卡运行一个独立的vLLM服务,Nginx作为统一入口:
|
架构模式 |
8 × 单卡实例(非Tensor Parallel) |
|
负载均衡 |
Nginx round_robin + keepalive |
|
对外端口 |
2198 |
|
API认证 |
Bearer sk-qwen-27b-w8a8-2026 |
4.2 vLLM启动参数(单实例)
numactl --cpunodebind=0 --membind=0 vllm serve /data/models/Qwen3.6-27B-w8a8 --served-model-name qwen3.6-27b-w8a8 --tensor-parallel-size 1 --port 8000 --enforce-eager --quantization ascend --dtype bfloat16 --max-model-len 262144 --gpu-memory-utilization 0.95 --enable-auto-tool-choice --tool-call-parser qwen3_xml --reasoning-parser qwen3 --enable-prefix-caching
4.3 关键参数说明
|
参数 |
设置值 |
说明 |
|
--enforce-eager |
启用 |
禁用图编译,规避910B算子缺失问题 |
|
--quantization |
ascend |
W8A8昇腾专用量化 |
|
--max-model-len |
262144 |
最大上下文26万tokens |
|
--gpu-memory-utilization |
0.95 |
NPU HBM利用率上限 |
|
--tool-call-parser |
qwen3_xml |
Qwen3 XML格式工具调用解析 |
|
--reasoning-parser |
qwen3 |
思考内容与最终答案分离 |
|
--enable-prefix-caching |
启用 |
重复prompt加速,降低首token延迟 |
|
numactl绑定 |
NUMA0/1 |
CPU-NPU亲和性绑定 |
五、压测结果与分析
5.1 单卡基准性能
在NUMA绑定环境下,单卡推理64 tokens的延迟约4.4秒:
$ time curl -s http://localhost:8000/v1/chat completions -H "Authorization: Bearer sk-qwen-27b-w8a8-2026" -d '{"model":"qwen3.6-27b-w8a8","messages":[{"role":"user","content":"请用50字介绍自己"}],"max_tokens":64}'
real 0m3.96s
user 0m0.003s
sys 0m0.008s
5.2 8卡并行压测
使用 ab 工具同时压测8个实例,验证NUMA绑定后的并发性能:
# 8终端同时执行
ab -n 20 -c 2 -T "application/json" -H "Authorization: Bearer sk-qwen-27b-w8a8-2026" -p /tmp/bench.json -s 60 http://localhost:800X/v1/chat/completions
|
端口 |
NPU |
吞吐(req/s) |
平均延迟(s) |
|
8000 |
NPU0 |
0.43 |
4.70 |
|
8001 |
NPU1 |
0.42 |
4.73 |
|
8002 |
NPU2 |
0.42 |
4.71 |
|
8003 |
NPU3 |
0.43 |
4.67 |
|
8004 |
NPU4 |
0.43 |
4.69 |
|
8005 |
NPU5 |
0.42 |
4.76 |
|
8006 |
NPU6 |
0.42 |
4.72 |
|
8007 |
NPU7 |
0.42 |
4.77 |
8卡总吞吐:3.39 req/s(接近单卡0.42 × 8 = 3.36的理论值)
5.3 Nginx统一入口压测
通过Nginx 2198端口进行负载均衡压测:
$ ab -n 160 -c 16 -T "application/json" -H "Authorization: Bearer sk-qwen-27b-w8a8-2026" -p /tmp/bench.json -s 120 http://10.255.254.64:2198/v1/chat/completions
Requests per second: 3.28 [#/sec] (mean)
Time per request: 4882.133 [ms] (mean)
50% 4412
90% 4667
95% 4783
结论:Nginx round_robin + keepalive 配置下,8卡利用率均匀,总吞吐3.28 req/s,与直接压测8卡(3.39 req/s)差距仅3%,转发开销极小。
六、关键问题与解决方案
|
序号 |
问题描述 |
发生场景 |
解决方案 |
状态 |
|
1 |
libatb.so缺失,EngineCore子进程崩溃 |
venv环境启动 |
将LD_LIBRARY_PATH持久化到activate脚本 |
✅ 解决 |
|
2 |
NPU拓扑NUMA亲和性未知 |
多卡部署前 |
npu-smi info -t topo + lscpu分析 |
✅ 解决 |
|
3 |
工具调用解析器qwen3不支持 |
添加--tool-call-parser qwen3 |
改为qwen3_xml(vLLM 0.18.0支持) |
✅ 解决 |
|
4 |
KV Cache不足(gpu-util=0.85) |
8000启动 |
统一gpu-util为0.95 |
✅ 解决 |
|
5 |
Nginx least_conn负载不均 |
Nginx统一入口压测 |
改为round_robin + keepalive |
✅ 解决 |
|
6 |
Nginx对外端口2189错误 |
实际业务需求 |
修正为2198 |
✅ 解决 |
|
7 |
--host参数限制localhost访问 |
curl localhost:8000失败 |
去掉--host,恢复默认0.0.0.0 |
✅ 解决 |
|
8 |
max-model-len不统一 |
原始配置混乱 |
全部统一为262144 |
✅ 解决 |
6.1 NUMA绑定核心经验
1. 必须先用 npu-smi info -t topo 确认NPU与CPU的PCIe亲和性,再决定numactl绑定策略。
2. vLLM的EngineCore子进程不继承shell环境变量,numactl必须在ExecStart中直接调用。
3. NUMA 0的32核支撑4个实例无压力,8卡并行时单卡性能衰减<3%。
6.2 Nginx负载均衡优化
vLLM推理请求属于长连接/长请求(~4.5秒),least_conn算法在长请求场景下表现不佳(连接粘滞)。round_robin强制均匀分发,配合keepalive减少连接建立开销。
七、结论与建议
7.1 核心结论
- 8卡910B4(64G)环境下,Qwen3.6-27B-W8A8单卡部署完全可行,每卡加载约60GB HBM,剩余空间用于KV Cache
- NUMA亲和性绑定(numactl)是关键优化手段,8卡并行时性能衰减<3%,几乎线性扩展
- vLLM-Ascend 0.18.0在NPU上仅支持 ascend(W8A8)量化,FP8/AWQ仍被显式禁用
- Nginx round_robin + keepalive 是长推理请求场景的最优负载均衡策略
- 工具调用(qwen3_xml)和Reasoning解析(qwen3)已完整支持并验证通过
7.2 最终部署状态
|
8个vLLM服务 |
全部 active (running) |
|
8张NPU负载 |
均 ~60GB HBM占用 |
|
端口监听 |
8000-8007, 2198 |
|
Nginx状态 |
active,round_robin负载均衡 |
|
开机自启 |
8个vLLM + Nginx 全部 enabled |
|
单卡吞吐 |
~0.42 req/s(64 tokens,~4.4s) |
|
8卡总吞吐 |
~3.3 req/s |
|
工具调用 |
✅ 支持(qwen3_xml) |
|
Reasoning分离 |
✅ 支持(qwen3) |
|
Prefix Caching |
✅ 已启用 |
7.3 后续建议
短期:监控NPU温度和AICore利用率,配置告警;部署logrotate防止日志膨胀。
中期:尝试开启Continuous Batching进一步优化吞吐;评估是否启用图编译(需解决算子缺失)。
长期:跟踪vLLM-Ascend社区,等待FP8/AWQ NPU支持;探索更大模型(72B/110B)的PP+TP混合并行。
附录
A. Systemd服务模板
[Unit]
Description=vLLM Qwen3.6-27B-W8A8 on NPU${DEV} (NUMA${NUMA})
After=network.target
[Service]
Type=simple
User=hmtsgpu
Environment="ASCEND_RT_VISIBLE_DEVICES=${DEV}"
Environment="VLLM_API_KEY=sk-qwen-27b-w8a8-2026"
Environment="OMP_NUM_THREADS=8"
ExecStart=/bin/bash -c 'source ... && numactl --cpunodebind=${NUMA} --membind=${NUMA} vllm serve /data/models/Qwen3.6-27B-w8a8 ...'
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
B. Nginx配置
upstream vllm_backend {
server 10.255.254.64:8000;
...
server 10.255.254.64:8007;
keepalive 64;
}
server {
listen 2198;
location /v1/ {
proxy_pass http://vllm_backend;
proxy_http_version 1.1;
proxy_read_timeout 300s;
}
}
C. 工具调用测试示例
curl -s http://10.255.254.64:2198/v1/chat/completions -H "Authorization: Bearer sk-qwen-27b-w8a8-2026" -d '{
"model": "qwen3.6-27b-w8a8",
"messages": [{"role": "user", "content": "北京今天天气怎么样"}],
"tools": [...],
"max_tokens": 256
}'
# 返回:finish_reason: tool_calls, 参数正确
D. 监控命令
# NPU实时状态
watch -n 2 'npu-smi info | grep -E "NPU|AICore|Power"'
# 服务状态
systemctl status vllm-910b-800{0..7}
# 端口监听
ss -tlnp | grep -E "800[0-7]|2198"
报告编制:系统运维团队
审核日期:2026-06-07
更多推荐


所有评论(0)