vllm-project/vllm-ascend

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

Aberta

#14.140 aberto em 13 de ago. de 2026

 (4 comentários) (0 reação) (0 responsável)C++ (2.101 forks)github user discovery
help wanted

Métricas do repositório

Stars
 (2.689 estrelas)
Métricas de merge de PR
 (Mesclagem média 3d 22h) (733 fundiu PRs em 30d)

Description

背景

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

Guia do colaborador