已关闭
[Requirement|需求建议]: ScatterPaKvCache/GatherPaKvCache支持Ascend960平台 #5896
yu_qinfei创建于  21 天前关闭于  11 天前
yu_qinfei成员
21 天前 创建

Backgroud(背景信息)

ScatterPaKvCache / GatherPaKvCache 算子需要支持 Ascend960 平台,现有 950/350 实现保持不动。

Benefit / Necessity (价值/作用)

使能 KV Cache 更新/读取(PagedAttention)算子在 Ascend960 上的推理场景,支持 HIFLOAT4/FP4 等低比特 KV Cache。

Design(设计方案)

  • scatter_pa_kv_cache:新增 arch92 专属 kernel(HIFLOAT4、OffsetDtype ScatterDMA、ubBlockFactor 分块),apt.cpp 按 __NPU_ARCH__==9201 编译期分流,tiling 按运行时架构分流
  • gather_pa_kv_cache:复用现有 kernel 与 tiling,新增平台识别与 FP4 dtype 支持(尾轴偶数校验、NZ 字节折半对齐)

关联 PR:https://gitcode.com/cann/ops-transformer/merge_requests/13478

likedislike
Yyu_qinfei成员
21 天前 添加了label:requirement
yu_qinfei成员
21 天前 评论:

/assign @yu_qinfei

likedislike
CANN-robotCANN-robot成员
21 天前 将 yu_qinfei 设为负责人
游震成员
21 天前 评论:

/assign @yu_qinfei

likedislike
周云飞
周云飞成员
13 天前 评论:

感谢补充需求和关联 PR。此次需求的目标是在保持现有 950/350 实现不变的前提下,为 ScatterPaKvCache / GatherPaKvCache 增加 Ascend960 支持,用于 PagedAttention 场景的 KV Cache 更新与读取,并覆盖 HIFLOAT4/FP4 等低比特数据类型。

适配方向

Issue 中提出的方案是:ScatterPaKvCache 新增 arch92 专属 kernel,在 apt.cpp 中通过 __NPU_ARCH__==9201 进行编译期分流,并在 tiling 中按运行时架构选择对应路径;GatherPaKvCache 则复用现有 kernel 和 tiling,补充平台识别与 FP4 支持。这种划分有利于隔离新平台实现,但仍需确认编译期与运行时的架构选择一致,避免影响原有平台路径。

低比特适配需要同时考虑逻辑元素数与实际存储字节数。对于方案中提到的 FP4 尾轴偶数校验和 NZ 字节折半对齐,需要确保形状校验、tiling 分块与 kernel 搬运使用一致的计算方式;复用现有实现能否覆盖这些约束,也需要结合具体改动确认。

已注意到您关联的 PR #13478。目前尚无该 PR 的具体变更和合入状态信息,上述内容仅是对 Issue 所述方案的分析,不代表已经完成平台适配或验证。

likedislike
Yyu_qinfei成员
11 天前 修改了issue 的描述
CANN-robotCANN-robot成员
11 天前 关闭了 issue
CANN-robotCANN-robot成员
11 天前 添加了label:resolved