SGLang 在昇腾 910B 部署 Qwen3.6-35B-A3B 简记

发表于 2026-08-13  194 次阅读


文章目录

单机 4 卡昇腾 910B,用 SGLang 部署 Qwen3.6-35B-A3B(MoE,激活参数 35B,总参数约 300B),TP=4,上下文 256K。记录容器启动与调优脚本,后续直接复用。

一、拉取镜像

使用官方昇腾适配镜像,910B 对应 CANN 9.0 版本:

export IMAGE=quay.io/ascend/sglang:v0.5.16-cann9.0.0-910b
export NAME=sglang-qwen36-35b-1

二、启动容器

昇腾 910B 八块卡全部透传进容器,挂载 DCMI/HCCL 驱动与数据目录。注意 --shm-size 给到 200g,避免大上下文场景下共享内存不足:

docker run -itd \
 --name $NAME \
 --net=host \
 --shm-size=200g \
 --privileged \
 --device /dev/davinci0 \
 --device /dev/davinci1 \
 --device /dev/davinci2 \
 --device /dev/davinci3 \
 --device /dev/davinci4 \
 --device /dev/davinci5 \
 --device /dev/davinci6 \
 --device /dev/davinci7 \
 --device /dev/davinci_manager \
 --device /dev/devmm_svm \
 --device /dev/hisi_hdc \
 -v /usr/local/dcmi:/usr/local/dcmi \
 -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
 -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 /etc/hccn.conf:/etc/hccn.conf \
 -v /mnt/data:/mnt/data \
 -v /data/huawei/:/data \
 -it $IMAGE bash

三、编写调优脚本 qwen36.sh

在容器 /data 下编写启动脚本,先做 CPU / NPU 调优,再拉起服务:

# CPU调优
#echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
sysctl -w vm.swappiness=0
sysctl -w kernel.numa_balancing=0
sysctl -w kernel.sched_migration_cost_ns=50000
export ASCEND_VISIBLE_DEVICES=4,5,6,7
export ASCEND_RT_VISIBLE_DEVICES=4,5,6,7
export SGLANG_SET_CPU_AFFINITY=1

# 清除代理
unset https_proxy http_proxy HTTPS_PROXY HTTP_PROXY
unset ASCEND_LAUNCH_BLOCKING

# 抑制torch_npu冗余警告
export TORCH_NPU_TRANSFER_WARNING=0

# CANN环境
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

# NPU调优环境变量
export STREAMS_PER_DEVICE=32
export HCCL_OP_EXPANSION_MODE=AIV
export HCCL_SOCKET_IFNAME=lo
export GLOO_SOCKET_IFNAME=lo
export SGLANG_ENABLE_SPEC_V2=1
export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=0

# 启动服务
python3 -m sglang.launch_server \
 --model-path /data/models/Qwen3.6-35B-A3B \
 --served-model-name Qwen35 \
 --host 0.0.0.0 \
 --port 21414 \
 --tp-size 4 \
 --context-length 262144 \
 --reasoning-parser qwen3 \
 --tool-call-parser qwen3_coder \
 --device npu \
 --attention-backend ascend \
 --disable-radix-cache \
 --mem-fraction-static 0.70 \
 --trust-remote-code \
 --dtype bfloat16 \
 --enable-prefill-delayer \
 --prefill-delayer-max-delay-passes 100

其中 ASCEND_VISIBLE_DEVICES=4,5,6,7 选择四张卡,对应容器内透传的设备,按实际资源自行调整。

四、启动命令参数解析

参数说明
--tp-size4张量并行度,对应 4 张 910B
--context-length262144最大上下文 256K
--device npu指定昇腾 NPU 后端
--attention-backendascend使用昇腾 attention 实现
--disable-radix-cache关闭 radix cache(昇腾场景常用)
--mem-fraction-static0.70静态 KV 缓存显存占比
--dtypebfloat16模型精度
--reasoning-parserqwen3推理模型 reasoning 解析
--tool-call-parserqwen3_coder工具调用解析
--enable-prefill-delayer启用 prefill 延迟,配合 max-delay-passes 缓解长输入时的 prefill/decode 抢占

调优环境变量解析:

  • STREAMS_PER_DEVICE=32:提升并发流
  • HCCL_OP_EXPANSION_MODE=AIV:HCCL 算子扩展模式
  • HCCL_SOCKET_IFNAME=lo / GLOO_SOCKET_IFNAME=lo:多机/多卡走回环网卡
  • SGLANG_ENABLE_SPEC_V2=1:启用 speculation v2
  • SGLANG_ENABLE_OVERLAP_PLAN_STREAM=0:关闭计划流重叠

五、注意事项

  • 使用的卡号(4,5,6,7)可按实际资源调整,需与容器挂载的设备一致
  • --shm-size 场景下,若出现 OOM 优先检查共享内存大小
  • 若需多机部署,将 HCCL_SOCKET_IFNAME 改为实际业务网卡并配置 --nnodes
  • 大上下文场景建议根据显存余量微调 --mem-fraction-static

以上为单机 4 卡 TP=4 部署 Qwen3.6-35B-A3B 的完整简记,供后续复用。


scanz个人博客