感谢提出命名统一建议。将非量化 MLA 主算子统一为 flash_mla / FlashMla,metadata 统一为 flash_mla_metadata / FlashMlaMetadata,有助于减少 Python 接口与底层实现之间的名称映射。不过,这属于涉及接口兼容性的工程调整,不能仅凭名称不一致认定现有实现存在功能缺陷。
需求分析
当前 ACLNN 实现仍声明并依赖自动生成的 aclnnInnerFlashMlaWithKvcache* 接口;手写 L0 封装也使用 FlashMlaWithKvcache 完成算子注册、形状推导和内核启动登记。因此,这次调整不只是目录和文件改名,还需要保证对外符号、自动生成接口及运行时注册名称同步一致。主算子的 metadata 输入用于传入预计算的切分方案,改名时也应保持两者的数据约定不变。
不保留旧名称别名可以避免长期维护两套入口,但会使依赖旧 ACLNN 符号或模块路径的使用方必须同步迁移。这是方案的主要兼容性成本,需要明确旧名称到新名称的对应关系和适用范围;保留过渡别名是另一种兼容策略,但不符合本次直接移除旧入口的目标。
调整方向
一个可行的方向是,在限定非量化 MLA 主算子及 metadata 范围内,同步调整目录、ACLNN、Torch schema/C++ 绑定、tiling/kernel/AICPU 注册和构建引用,并更新测试路径、编译影响白名单及算子列表;量化 MLA 和外部 FlashMLA 参考实现保持不变。移除旧手写 L0 封装时,还需确认其可选输入占位、输出分配及形状推导和启动登记等必要行为仍由保留的调用链承担,避免将行为变化混入命名迁移。
您提供的 pre-commit、头文件查重和 OAT 结果属于静态检查进展,目前尚不能据此确认改名后的编译、链接及运行时调用正常。后续评估的重点是新名称能否贯通构建与调用链,以及主算子和 metadata 配合时是否保持原有计算行为。我们会继续评估该方案及其兼容性影响。


/close


Notice
@PerrySkywalker , this issue is linked to an open PR. Please merge the PR before closing this issue.


/close


Notice
@PerrySkywalker , this issue is linked to an open PR. Please merge the PR before closing this issue.


Backgroud(背景信息)
非量化 MLA 的 Python 接口已采用
flash_mla,但算子目录、ACLNN 接口、算子注册及 metadata 仍使用flash_mla_with_kvcache/FlashMlaWithKvcache命名,接口和实现名称不一致。Benefit / Necessity(价值/作用)
统一非量化 MLA 主算子和 metadata 的命名,避免继续暴露旧的
flash_mla_with_kvcache兼容入口,减少调用、构建与维护中的歧义。Design(设计方案)
flash_mla/FlashMla,metadata 统一为flash_mla_metadata/FlashMlaMetadata。调用旧 ACLNN 符号或旧模块路径的使用方需要同步迁移,不保留旧名称别名。
验证
本地暂存范围及相对 upstream/master 的完整 PR 文件集合均通过 pre-commit;头文件查重实际检查 30 个新增/重命名头文件,OAT 实际扫描 82 个文件。未重新编译,未执行 NPU 精度、性能或运行时测试。
关联 PR
https://gitcode.com/cann/ops-transformer/merge_requests/13884