vllm-project/vllm-ascend
[Contribution] 任务 #2:[Arch/Perf] 传输路径改 IPC,消除 GIL 瓶颈
Ouverte
#14 143 ouverte le 13 août 2026
help wanted
Métriques du dépôt
- Stars
- (2 637 étoiles)
- Métriques de merge PR
- (Merge moyen 4j 5h) (559 PRs mergées en 30 j)
Description
背景
ascend_store 的 save/load 当前通过进程内 daemon 线程完成(KVCacheStore*Sending/RecvingThread),主线程与 send/recv 线程之间用 queue.Queue + threading.Event 协作。每进程最多 1 个 send 线程 + 1 个 recv 线程(_start_kv_transfer_threads 在三种模式间二选一)。部分热路径在 Python 层执行:PoolKey.to_string、_handle_stored_request 内 addrs/sizes 构建、key 生成器循环,与 forward 的 Python 层代码共享同一进程的 GIL。
随着多 rank 并行传输、独立崩溃隔离、NPU stream/event 跨进程协作等需求出现,单进程多线程架构在扩展性上存在瓶颈。
相关代码路径:vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store。
任务
将传输路径由"进程内多线程 + queue.Queue"改造为"独立传输子进程 + IPC",使 key 构建、buffer 调度、I/O 提交在独立子进程执行,不再与 worker 主进程共享 GIL。
- 范围:三种传输模式(非 layerwise / key layerwise / GVA layerwise)
- 改造范围较大,建议分阶段推进,阶段划分与方法由开发者自定
验收标准
1. 功能正确性
- 三种传输模式功能与改造前一致
- greedy / non-greedy 输出一致(精度无回归)
- 子进程异常不拖垮 worker 主进程,且能被重启或降级回进程内线程模式
2. 性能验证
- 附改造前后对比数据:吞吐 / 延迟 / key 构建 CPU 占比 / IPC 开销
3. 交付件
- 设计文档(含方案选型、风险清单、回退预案)
- 原型对比报告
- PR + 设计说明 + 单测(覆盖子进程启停、异常恢复、跨进程 buffer 共享、IPC 通道断连)
环境约定
- vllm-ascend:最新 main
- 硬件:Ascend NPU(注明型号 + 卡数 + TP/CP/PP 配置)
- 关联任务池:#9079
- 验收人:@赵鹏博
重点关注
- NPU KV cache buffer 跨进程共享是核心难点
- layerwise 模式的 NPU Event 跨进程语义需重新设计(
AttentionComputeStartGate) - 需保留降级路径,平台不支持或子进程启动失败时能回退到进程内线程模式
任务周期
- 发布:2026-08-12
- 回收:2026-10-31(长线任务,分阶段交付)