作者​:昇腾实战派
知识地图​:https://blog.csdn.net/Lumos_Lovegood/article/details/161601003

背景概述

本文档将介绍基于vLLM-Ascend的Qwen3.5-397B模型在Atlas 800I A3上的单机混部部署实践,包括支持的特性、特性配置、环境信息以及性能测试典型case。

基本信息

软件版本设备信息组网形态总卡数数据格式
0.18.0NPU: Atlas 800I A3-560T, HBM 128G
CPU: Kunpeng 920 (80核-2900MHz)
内存: 32根64G 5200MHz
OS: OpenEuler 22.03 LTS-SP4
Atlas 800I A3单机8W4A8C16

服务化配置

低时延

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
export PYTORCH_NPU_ALLOC_CONF="expandable_segments:True"
export HCCL_IF_IP="xxx"
export HCCL_OP_EXPANSION_MODE="AIV"
export HCCL_BUFFSIZE=1024
export OMP_NUM_THREADS=1
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
sysctl -w vm.swappiness=0
sysctl -w kernel.numa_balancing=0
sysctl kernel.sched_migration_cost_ns=50000
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so.2:$LD_PRELOAD
export TASK_QUEUE_ENABLE=1
export VLLM_ASCEND_ENABLE_FUSED_MC2=1

vllm serve /mnt/share/weights/Qwen3.5-397B-A17B-w8a8-org/ \
    --served-model-name "qwen3.5" \
    --host 0.0.0.0 \
    --port 8010 \
    --data-parallel-size 1 \
    --tensor-parallel-size 16 \
    --enable-expert-parallel \
    --max-model-len 5000 \
    --max-num-batched-tokens 16384  \
    --max-num-seqs 128 \
    --gpu-memory-utilization 0.9 \
    --compilation-config '{"cudagraph_capture_sizes":[1,6,12,18,24,30,36,42,48,54,72,78,84,90,96,102,108,144,192], "cudagraph_mode":"FULL_DECODE_ONLY"}' \
    --speculative_config '{"method": "qwen3_5_mtp", "num_speculative_tokens": 3, "enforce_eager": true}' \
    --trust-remote-code \
    --async-scheduling \
    --allowed-local-media-path / \
    --quantization ascend \
    --mm-processor-cache-gb 0 \
    --additional-config '{"enable_cpu_binding":true}'
典型测试用例
平均输入平均输出并行策略上下文长度Prefix Cache命中率总请求数最大并发数请求频率(req/s)
20482048MLA:DP1+TP1650000128320
35001500MLA:DP1+TP168000080200
163841024MLA:DP1+TP161843203690
32768512MLA:DP1+TP163430401640
655361024MLA:DP1+TP16675840820
1310721024MLA:DP1+TP161331200820

高吞吐

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
export PYTORCH_NPU_ALLOC_CONF="expandable_segments:True"
export HCCL_IF_IP="xxx"
export HCCL_OP_EXPANSION_MODE="AIV"
export HCCL_BUFFSIZE=1024
export OMP_NUM_THREADS=1
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
sysctl -w vm.swappiness=0
sysctl -w kernel.numa_balancing=0
sysctl kernel.sched_migration_cost_ns=50000
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so.2:$LD_PRELOAD
export TASK_QUEUE_ENABLE=1
export VLLM_ASCEND_ENABLE_FUSED_MC2=1
export VLLM_ASCEND_ENABLE_FLASHCOMM1=1

vllm serve /mnt/share/weights/Qwen3.5-397B-A17B-w8a8-org/ \
    --served-model-name "qwen3.5" \
    --host 0.0.0.0 \
    --port 8010 \
    --data-parallel-size 1 \
    --tensor-parallel-size 16 \
    --enable-expert-parallel \
    --max-model-len 5000 \
    --max-num-batched-tokens 16384  \
    --max-num-seqs 128 \
    --gpu-memory-utilization 0.9 \
    --compilation-config '{"cudagraph_capture_sizes":[1,4,8,12,16,24,32,48,56,64,72,84,96,108,112,128,160,172,196,200,212,232,256,272,288,312,328,344,360,384,400,416,432,448,480,512], "cudagraph_mode":"FULL_DECODE_ONLY"}' \
    --speculative_config '{"method": "qwen3_5_mtp", "num_speculative_tokens": 3, "enforce_eager": true}' \
    --trust-remote-code \
    --async-scheduling \
    --allowed-local-media-path / \
    --quantization ascend \
    --mm-processor-cache-gb 0 \
    --additional-config '{"enable_cpu_binding":true}'
典型测试用例
平均输入平均输出并行策略上下文长度Prefix Cache命中率总请求数最大并发数请求频率(req/s)
20482048MLA:DP1+TP165000020485120
35001500MLA:DP1+TP16800005121280
163841024MLA:DP1+TP16184320144360
32768512MLA:DP1+TP1634304048120
655361024MLA:DP1+TP166758403280
1310721024MLA:DP1+TP1613312001640

测试命令

参考aisbench官方测试指南。

aisbench测试命令

vllm-ascend社区官网

特别声明

  1. 以上配置均未开启Prefix Cache,若实际生产环境需要使用该特性,参考vLLM-Ascend社区参数指南开启–enable-prefix-caching

更多推荐