vllm-project/vllm-ascend

[Contribution] 任务 #1:[Perf] MLA 读侧去重

開放

#14,140 建立於 2026年8月13日

 (4 則留言) (0 個反應) (0 位負責人)C++ (2,048 個分叉)github user discovery
help wanted

倉庫指標

星標
 (2,637 顆星)
PR 合併指標
 (平均合併 4天 5小時) (30 天內合併 559 個 PR)

描述

背景

MLA 写侧已做去重(仅 rank 0 写入 KV 池,见 _store_kvtp_rank % put_step 判断),但读侧未对齐:每个 TP rank 各自从 KV 池取同一份数据到各自 buffer(start_load_kv 读路径)。TP 越大冗余越多,且 MLA 数据量小,固定开销占比高。

相关代码路径:vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store

任务

实现 MLA 读侧去重:仅一个 rank 从 KV 池取数,再分发到其余 TP rank,消除多 rank 重复 I/O。

  • 模型:MLA 架构(如 GLM-5.2 等)
  • 路径:worker 侧 start_load_kv 读路径
  • 数据分发方式(broadcast / scatter / 其他)由开发者自定,需保证各 rank 最终拿到的数据与去重前逐字节一致

验收标准

1. 功能正确性

  • 去重后各 TP rank 拿到的数据与去重前逐字节一致
  • TP mismatch 路径不破坏去重逻辑
  • MLA / 非 MLA 模型均无回归

2. 性能验证

  • TP=2/4/8 下改动前后 get 调用次数与端到端延迟对比
  • 长序列(16K/64K)下的收益数据

3. 交付件

  • PR + 设计说明(改动动机 / 方案 / 风险 / 回退路径)+ 单测 + 性能数据

环境约定

  • vllm-ascend:最新 main
  • 硬件:Ascend NPU(注明型号 + 卡数 + TP/CP/PP 配置)
  • 关联任务池:#9079
  • 验收人:@赵鹏博

重点关注

  • put_step 与读侧 step 的语义对齐

任务周期

  • 发布:2026-08-12
  • 回收:2026-09-30

貢獻者指南