# PR #29146 完整报告

- 仓库：`sgl-project/sglang`
- 标题：bugfix revise interface get cpu copy for npu mem pool to align with gpu
- 合并时间：2026-06-29 19:30
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/29146

---

# 执行摘要

- 一句话：修复 NPU 内存池接口签名与 GPU 对齐
- 推荐动作：可精读，这是一个典型的接口兼容性修复案例，展示了跨硬件后端接口对齐的重要性。

# 功能与动机

修复 deepseekR1 pd 分解 2p1d 32p 场景下的崩溃。调用链中 base 类 MLATokenToKVPool.get_cpu_copy 已支持 mamba_indices 参数，但 NPU 子类未对齐签名，导致 TypeError 异常。

# 实现拆解

1. 在 `python/sglang/srt/hardware_backend/npu/memory_pool_npu.py` 中，将 `NPUMLATokenToKVPool.get_cpu_copy(self, indices)` 改为 `get_cpu_copy(self, indices, mamba_indices=None)`。
2. 同样将 `load_cpu_copy(self, kv_cache_cpu, indices)` 改为 `load_cpu_copy(self, kv_cache_cpu, indices, mamba_indices=None)`。
3. 这两个函数内部原有逻辑对 mamba_indices 参数不作处理（直接忽略），仅保持签名兼容。

关键文件：
- `python/sglang/srt/hardware_backend/npu/memory_pool_npu.py`（模块 内存池；类别 source；类型 core-logic；符号 get_cpu_copy, load_cpu_copy）: 核心修复文件，为 NPUMLA 缓存池的两个方法添加 mamba_indices 可选参数，与 GPU 超类签名对齐。

关键符号：get_cpu_copy, load_cpu_copy


# 评论区精华

Gemini Code Assist 机器人提出：应同时更新 NPUMLATokenToKVPool 中继承的相关方法以保持一致性，防止多态调用时抛出 TypeError。sglang-npu-bot 给予了批准，没有进一步讨论。

- NPUMLATokenToKVPool 方法签名未对齐 GPU 超类 (correctness): PR 已经添加了可选参数，修复完成。

# 风险与影响

- 风险：风险极低：仅添加可选参数，不影响现有调用；NPU 池子暂不支持 mamba，忽略该参数无副作用；已在生产场景中验证修复。
- 影响：直接影响 NPU 上使用 MLA 缓存池的 PD 分解场景（如 deepseekR1），使该场景能正常运行；不影响 GPU 或其他硬件后端。
- 风险标记：接口签名不一致

# 关联脉络

- 暂无明显关联 PR