目录

vLLM-Ascend 参数适配统一 PR

基本信息

组ID: npuishard
认领参数(1 组 2 个):

  • --enable-dbo / enable_dbo (ParallelConfig, hard)
  • --kv-cache-memory-bytes / kv_cache_memory_bytes (CacheConfig, easy)

交付目录:

依赖环境:

组件 版本
upstream vLLM 0.22.1
vllm-ascend 0.22.x,基于 upstream PR #10596(2026-06-18)
torch / torch_npu 2.10.0
CANN 9.0.0
NPU Ascend 910B x 2(DBO benchmark);Ascend 910B 64GB(KV Cache 验证)

本总 PR 按两个本地子交付目录汇总。具体 PR 说明、测试脚本、benchmark 数据和深度分析均参考对应子目录 README。仓库链接:https://github.com/micropuma/vllm-ascend.git(fork vllm-ascend)

DBO 实现

核心改动

类别 内容
DBO 核心机制 双 micro-batch、双 stream 乒乓执行,支持 A2 (AllGather/ReduceScatter) 和 A3 (AllToAll)
MoE hook MoE prepare/finalize、linear column/row、MLA preprocess 等通信边界接入 DBO hook
支持的模型 DeepSeek-V2/V3、Qwen3 MoE/Dense、GLM-4 MoE、Bailing MoE V2.5、GLM MoE DSA
FlashComm1 插入对应的dbo hook
FlashComm2 插入对应的dbo hook;AIV 可用,AI_CPU 受 CANN 9.0.0 AllToAll 限制
torch.compile DBO hook、FlashComm custom op、FakeImpl shape 推导在 Dynamo trace / piecewise backend 下的兼容修复
DP 一致性 _sync_metadata_across_dp 统一两 rank 的 ubatch 决策
精度正确性验证 覆盖 DBO=ON/OFF、FC1+DBO=ON/OFF 两组对比,验证输出 token/text 一致性与 token logprob diff
消融实验 覆盖 DBO、FlashComm1、FlashComm2、HCCL AIV/AI_CPU 的 11 组组合,定位最优收益组合

支持范围

  • A2: AllGather / ReduceScatter overlap。
  • A3: AllToAll overlap。
  • 模型模板: DeepSeek-V2/V3、Qwen3 MoE、Qwen3 Dense、GLM-4 MoE、Bailing MoE V2.5、GLM MoE DSA。
  • 通信优化: FlashComm1、FlashComm2 AIV 路径。
  • 执行模式: eager、torch.compile fullgraph / piecewise、ACLGraph。
  • 并行组合: TP 基础路径已验证,DP=2 兼容性已验证,TP+DP 后续扩展。

实测

测试环境:

项目 配置
Device Ascend 910B x 2
CANN 9.0.0
torch_npu 2.10.0
Model DeepSeek-V2-Lite-Chat
Parallel TP=2, EP=2
Compile torch.compile fullgraph,28 subgraphs / rank
Workload 500 prompts, concurrency 96, input 4096, output 16

性能结果:

配置 QPS TTFT (ms) TPOT (ms) vs baseline
baseline: DBO=OFF, FC1=OFF, FC2=OFF, HCCL=AIV 6.207 6144.9 605.8 baseline
best: DBO=ON, FC1=ON, FC2=OFF, HCCL=AI_CPU 7.609 5027.2 491.8 +22.6%

精度结果:

  • DBO 精度(无 FlashComm1): DBO=ON vs DBO=OFF,50 prompts text 100% 一致。
  • FC1 + DBO 精度: FC1=ON + DBO=ON vs FC1=ON + DBO=OFF,50 prompts text 100% 一致,token logprob diff=0.00e+00。

兼容性结果:

  • TP=2 + DBO: 通过。
  • DP=2 + DBO: baseline_dp / dbo_dp 均 500/0 成功。
  • DBO + torch.compile fullgraph: 通过。
  • DBO + ACLGraph: 通过。
  • DBO + FlashComm1: 通过。
  • DBO + FlashComm2 + AIV: 通过。
  • DBO + FlashComm2 + AI_CPU: CANN 9.0.0 AllToAll crash,归类为已知外部限制,非 DBO 主逻辑问题。

KV Cache memory bytes 实现

kv_cache_memory_bytes 已在 vLLM-Ascend 主线支持,本交付主要补充 Ascend 场景下的行为验证、测试脚本和文档说明。

核心改动

功能 内容
参数行为验证 验证 kv_cache_memory_bytes 在 vLLM-Ascend 中的显式 KV Cache 容量控制语义
边界行为 覆盖 KV bytes 过小且 max_model_len 较大时的早期失败行为,避免进入不可靠推理状态
测试脚本 提供三类可复现实验脚本,覆盖固定 KV bytes、不同 KV bytes、容量不足失败路径

参数机制

路径 触发条件 行为
fast path 用户显式指定 kv_cache_memory_bytes 跳过 memory profiling,直接使用用户指定值;gpu_memory_utilization 被忽略
slow path 未指定 kv_cache_memory_bytes 执行 dummy forward -> memory profiling -> 计算 available_kv_cache_memory_bytes,自动分配剩余显存

实测

测试环境:

项目 配置
Device Ascend 910B (64GB)
Model Qwen3-8B

测试结果:

Case 目的 预期 结果
固定 KV bytes,不同 gpu_memory_utilization 验证 fast path 忽略 gpu_memory_utilization 两次日志 KV cache token 数完全一致 通过
不同 kv_cache_memory_bytes 对比 验证更大的配置获得更大 token 容量 大配置 token 数 > 小配置 通过
小 KV bytes + 大 max_model_len 验证容量不够时早期失败 初始化阶段报错,不进入推理 通过

文档(交付物)

文档 说明
DBO 参数适配说明 DBO PR文档
DBO benchmark 报告 DBO 性能基准、消融实验和结论
Profile 深度分析 profile 结果与性能瓶颈分析
AI/Agent skill 使用说明 AI 工具与自动化分析经验
KV Cache 报告 kv cache memory bytes参数文档

文件清单

目录 说明
DBO 源码 可覆盖到原仓库的 DBO 核心源码,包括 forward context、worker、MoE/linear/MLA hook、FlashComm custom op 等
DBO 单元测试 DBO 触发条件、hook、custom op、forward context 等 UT
DBO benchmark 精度、TP/DP、AutoBench、compile 复现与分析脚本
DBO Skills DBO 分析、调试和 benchmark 自动化 skill
KV Cache 测试脚本 fast path、容量变化、容量不足早期失败三类验证脚本

已知限制 / 后续工作

项目 状态 说明
TP + DP 完整矩阵 待补 基础问题已修复,后续补 TP=2+DP=2+EP、多 batch shape、compile/ACLGraph
FlashComm2 + AI_CPU 已知限制 CANN 9.0.0 AllToAll crash,非 DBO 主逻辑问题
Shared Expert overlap 待实现 DeepSeek shared expert AllReduce 可进一步接入 DBO hook
关于
744.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号