| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !11248 merge feat/flash_attn_templateid into master feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 flash_attn 引入 templateId 模板参数,将 DN/ND 模板选择从 kernel 内编译期推导改为 host 侧 tiling key 下发;同时将 CV_RATIO 统一为架构感知定义,消除各处硬编码。 ## 改动 - tiling key 新增第 5 参数 TemplateId(0=ND,1=DN):host 侧 UpdateTilingKeyTemplateId 按"无 mask 且 config∈{0,2,6}"选 DN 并同步置 dnFlag_ 供 workspace 分配;kernel 侧 if constexpr(templateId == FA_Template_DN) 分发两套模板;SEL 分两段实例化(ND 全组合 192 个,DN 仅无 mask×config{0,2,6} 共 32 个),行为与原 EnableSoftmaxDn 推导一致 - const_def.h 新增架构感知 CV_RATIO(__NPU_ARCH__==5102/9201 为 1,其余为 2);消除同 TU 重定义冲突;Align 升级 constexpr 支持 buffer 编译期定容(对存量运行时调用透明) - FD block 的 UB BASE 偏移改为由 kernel 侧传入(VecFaBlockType::UB_MM_RES_TOTAL_BYTES),消除 FD/FA 两侧对 mmRes 区域大小的重复推导(原 FD 用 dVBaseSize、FA 用 dBaseSize 判断份数,D≠DV 时会漂移) - vec block 的 softmax sum/max/exp 与 lseOut buffer 按 mBaseSize/CV_RATIO 推导定容(覆盖 actVecMSize×fp32 块对齐的最坏用量);actVecMSize 计算去除硬编码 2 - FaTilingInfo 默认 npuArch_ 改为 DAV_RESV 哨兵值,避免未解析时误判为 3510 ## 关联的Issue #4944 ## 测试 - bash build.sh --pkg --soc=ascend950 --ops=flash_attn 全量编译通过(224 变体×2 dtype,产物核验 ND=192 + DN=32,DN 均为无 mask×config∈{0,2,6}) - --tiling_key=67108864,67239936 定点编译通过 - 全量编译通过(公共头 CV_RATIO/Align 变更跨算子回归) ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11248 | 15 天前 | |
[QFA][Mxfp8] support FD Co-authored-by: shen_weiling<shenweiling@huawei.com> # message auto-generated for no-merge-commit merge: !12275 merge master into master [QFA][Mxfp8] support FD Created-by: shen_weiling Commit-by: shen_weiling Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> qfa Mxfp8 支持FD ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5508 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> rdv已过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12275 | 4 天前 | |
FIA support mask Co-authored-by: kevinjia<jiakun4@huawei.com> # message auto-generated for no-merge-commit merge: !12005 merge mask_branch into master FIA support mask Created-by: kevinjia Commit-by: kevinjia Merged-by: cann-robot Description: ## 描述 arch38 FIA在PFA场景下支持Atten Mask;解决PFA文件相对引用路径问题; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #5352 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12005 | 7 天前 | |
[CleanCode] 清理FIA伪量化&负载均衡重复代码 Co-authored-by: ChengjiaWu<wuchengjia1@h-partners.com> # message auto-generated for no-merge-commit merge: !12506 merge master into master [CleanCode] 清理FIA伪量化&负载均衡重复代码 Created-by: ChengjiaWu Commit-by: ChengjiaWu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> clean code清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#5513](https://gitcode.com/cann/ops-transformer/issues/5513) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12506 | 2 天前 | |
memcpy重复代码整改,拷贝功能新增 Co-authored-by: yangxh1203<yangxinhao7@huawei.com> # message auto-generated for no-merge-commit merge: !12468 merge common into master memcpy重复代码整改,拷贝功能新增 Created-by: yangxh1203 Commit-by: yangxh;yangxh1203 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、新增HIScaleDNToNZ拷贝的判断分支 2、重复代码整改 3、新增PA_BnNDBs偏移计算 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5354 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12468 | 3 天前 | |
pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !4878 merge compile into master pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 关联的Issue 关联Issue https://gitcode.com/cann/ops-transformer/issues/4850 ## 描述 对仓内算子源码提前做 pre-commit 历史格式问题清理,为后续功能改动(如 Regbase API 替换等)扫清钩子障碍,避免后续 PR 因格式问题被大面积格式化污染 diff。 处理方式: find <目录> -type f \( -name '*.h' -o -name '*.hpp' \) | xargs pre-commit run --files,多轮执行直到所有 hook 收敛(无 Failed / 无自动修复)。 修复内容(仅格式,不改任何代码语义): - 尾随空白(trailing whitespace) - 文件末尾换行(end of file) - clang-format 代码重排(换行、缩进、对齐,遵循仓内 .clang-format) ### 排除范围(不做格式化) - *_def.cpp 算子定义文件(排版由开发者自行维护,另见 PR #11041) - */op_api/aclnn*.h、*/op_graph/*_proto.h、*/op_host/op_api/aclnn*.h 接口/原型头文件(排版由开发者自行维护) - mamba/ 目录(该目录 causal_conv1d 算子 UT 上游基线存在失败,见 Issue #4840,本批不涉及) - examples/、experimental/ 目录 ### PR 拆分说明 全仓 .h/.hpp 清理共 2362 个文件,按场景目录拆分为 6 个 PR(分支不同、内容互不重叠,可独立 review 合入): | PR | 分支 | 范围 | |---|---|---| | #4878 | compile | attention 第1批(按算子字母序前段) | | #10422 | graph | attention 第2批(按算子字母序中段) | | #9331 | test | attention 第3批(按算子字母序后段) | | #10991 | fix | mc2 | | #11020 | fix_2 | moe、gmm | | #11021 | fix_3 | posembedding、mhc、ffn、common、tests、torch_extension | ## 测试 - 纯格式化改动:不改变任何代码语义,逐文件 diff 均为空白/换行/clang-format 重排 - pre-commit 全量 hook 收敛验证:多轮执行后 trailing-whitespace / end-of-file-fixer / clang-format 均 Passed - 建议合入前对相关算子做一次编译验证 See merge request: cann/ops-transformer!4878 | 22 天前 | |
pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !4878 merge compile into master pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 关联的Issue 关联Issue https://gitcode.com/cann/ops-transformer/issues/4850 ## 描述 对仓内算子源码提前做 pre-commit 历史格式问题清理,为后续功能改动(如 Regbase API 替换等)扫清钩子障碍,避免后续 PR 因格式问题被大面积格式化污染 diff。 处理方式: find <目录> -type f \( -name '*.h' -o -name '*.hpp' \) | xargs pre-commit run --files,多轮执行直到所有 hook 收敛(无 Failed / 无自动修复)。 修复内容(仅格式,不改任何代码语义): - 尾随空白(trailing whitespace) - 文件末尾换行(end of file) - clang-format 代码重排(换行、缩进、对齐,遵循仓内 .clang-format) ### 排除范围(不做格式化) - *_def.cpp 算子定义文件(排版由开发者自行维护,另见 PR #11041) - */op_api/aclnn*.h、*/op_graph/*_proto.h、*/op_host/op_api/aclnn*.h 接口/原型头文件(排版由开发者自行维护) - mamba/ 目录(该目录 causal_conv1d 算子 UT 上游基线存在失败,见 Issue #4840,本批不涉及) - examples/、experimental/ 目录 ### PR 拆分说明 全仓 .h/.hpp 清理共 2362 个文件,按场景目录拆分为 6 个 PR(分支不同、内容互不重叠,可独立 review 合入): | PR | 分支 | 范围 | |---|---|---| | #4878 | compile | attention 第1批(按算子字母序前段) | | #10422 | graph | attention 第2批(按算子字母序中段) | | #9331 | test | attention 第3批(按算子字母序后段) | | #10991 | fix | mc2 | | #11020 | fix_2 | moe、gmm | | #11021 | fix_3 | posembedding、mhc、ffn、common、tests、torch_extension | ## 测试 - 纯格式化改动:不改变任何代码语义,逐文件 diff 均为空白/换行/clang-format 重排 - pre-commit 全量 hook 收敛验证:多轮执行后 trailing-whitespace / end-of-file-fixer / clang-format 均 Passed - 建议合入前对相关算子做一次编译验证 See merge request: cann/ops-transformer!4878 | 22 天前 | |
[CleanCode] 清理FIA伪量化&负载均衡重复代码 Co-authored-by: ChengjiaWu<wuchengjia1@h-partners.com> # message auto-generated for no-merge-commit merge: !12506 merge master into master [CleanCode] 清理FIA伪量化&负载均衡重复代码 Created-by: ChengjiaWu Commit-by: ChengjiaWu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> clean code清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#5513](https://gitcode.com/cann/ops-transformer/issues/5513) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12506 | 2 天前 | |
feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !11248 merge feat/flash_attn_templateid into master feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 flash_attn 引入 templateId 模板参数,将 DN/ND 模板选择从 kernel 内编译期推导改为 host 侧 tiling key 下发;同时将 CV_RATIO 统一为架构感知定义,消除各处硬编码。 ## 改动 - tiling key 新增第 5 参数 TemplateId(0=ND,1=DN):host 侧 UpdateTilingKeyTemplateId 按"无 mask 且 config∈{0,2,6}"选 DN 并同步置 dnFlag_ 供 workspace 分配;kernel 侧 if constexpr(templateId == FA_Template_DN) 分发两套模板;SEL 分两段实例化(ND 全组合 192 个,DN 仅无 mask×config{0,2,6} 共 32 个),行为与原 EnableSoftmaxDn 推导一致 - const_def.h 新增架构感知 CV_RATIO(__NPU_ARCH__==5102/9201 为 1,其余为 2);消除同 TU 重定义冲突;Align 升级 constexpr 支持 buffer 编译期定容(对存量运行时调用透明) - FD block 的 UB BASE 偏移改为由 kernel 侧传入(VecFaBlockType::UB_MM_RES_TOTAL_BYTES),消除 FD/FA 两侧对 mmRes 区域大小的重复推导(原 FD 用 dVBaseSize、FA 用 dBaseSize 判断份数,D≠DV 时会漂移) - vec block 的 softmax sum/max/exp 与 lseOut buffer 按 mBaseSize/CV_RATIO 推导定容(覆盖 actVecMSize×fp32 块对齐的最坏用量);actVecMSize 计算去除硬编码 2 - FaTilingInfo 默认 npuArch_ 改为 DAV_RESV 哨兵值,避免未解析时误判为 3510 ## 关联的Issue #4944 ## 测试 - bash build.sh --pkg --soc=ascend950 --ops=flash_attn 全量编译通过(224 变体×2 dtype,产物核验 ND=192 + DN=32,DN 均为无 mask×config∈{0,2,6}) - --tiling_key=67108864,67239936 定点编译通过 - 全量编译通过(公共头 CV_RATIO/Align 变更跨算子回归) ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11248 | 15 天前 | |
style(attention): 应用 pre-commit clang-format 格式化 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !9087 merge style/precommit-clang-format-attention into master style(attention): 应用 pre-commit clang-format 格式化 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 对 attention/common 目录执行 pre-commit clang-format 统一格式化,覆盖 184 个文件,不涉及任何功能逻辑变更。 ## 改动 - 折行、大括号位置、指针对齐、 } else { 等格式调整 - #include 排序、宏续行符 \ 重排 - const_def.h 等文件 namespace 闭合注释修正(clang-tidy) - arch35/38 util_regbase.h 的 using 声明顺序重排(语义等价) - fia_tiling_shape.cpp 字符串字面量拆分(拼接后内容相同) ## 逻辑一致性 通过「去注释 → 去 #include → 去行续行符 → 去全部空白」三层归一化比对,184 个文件均无功能性改动,无数值/运算符/标识符变化。 ## 关联的Issue #3913 ## 测试 - 格式化前后行为一致,不传新参数时原有行为不受影响 - 建议跑一次 UT 编译验证 #include 重排无自包含问题 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9087 | 2 个月前 | |
feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !11248 merge feat/flash_attn_templateid into master feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 flash_attn 引入 templateId 模板参数,将 DN/ND 模板选择从 kernel 内编译期推导改为 host 侧 tiling key 下发;同时将 CV_RATIO 统一为架构感知定义,消除各处硬编码。 ## 改动 - tiling key 新增第 5 参数 TemplateId(0=ND,1=DN):host 侧 UpdateTilingKeyTemplateId 按"无 mask 且 config∈{0,2,6}"选 DN 并同步置 dnFlag_ 供 workspace 分配;kernel 侧 if constexpr(templateId == FA_Template_DN) 分发两套模板;SEL 分两段实例化(ND 全组合 192 个,DN 仅无 mask×config{0,2,6} 共 32 个),行为与原 EnableSoftmaxDn 推导一致 - const_def.h 新增架构感知 CV_RATIO(__NPU_ARCH__==5102/9201 为 1,其余为 2);消除同 TU 重定义冲突;Align 升级 constexpr 支持 buffer 编译期定容(对存量运行时调用透明) - FD block 的 UB BASE 偏移改为由 kernel 侧传入(VecFaBlockType::UB_MM_RES_TOTAL_BYTES),消除 FD/FA 两侧对 mmRes 区域大小的重复推导(原 FD 用 dVBaseSize、FA 用 dBaseSize 判断份数,D≠DV 时会漂移) - vec block 的 softmax sum/max/exp 与 lseOut buffer 按 mBaseSize/CV_RATIO 推导定容(覆盖 actVecMSize×fp32 块对齐的最坏用量);actVecMSize 计算去除硬编码 2 - FaTilingInfo 默认 npuArch_ 改为 DAV_RESV 哨兵值,避免未解析时误判为 3510 ## 关联的Issue #4944 ## 测试 - bash build.sh --pkg --soc=ascend950 --ops=flash_attn 全量编译通过(224 变体×2 dtype,产物核验 ND=192 + DN=32,DN 均为无 mask×config∈{0,2,6}) - --tiling_key=67108864,67239936 定点编译通过 - 全量编译通过(公共头 CV_RATIO/Align 变更跨算子回归) ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11248 | 15 天前 | |
feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !11248 merge feat/flash_attn_templateid into master feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 flash_attn 引入 templateId 模板参数,将 DN/ND 模板选择从 kernel 内编译期推导改为 host 侧 tiling key 下发;同时将 CV_RATIO 统一为架构感知定义,消除各处硬编码。 ## 改动 - tiling key 新增第 5 参数 TemplateId(0=ND,1=DN):host 侧 UpdateTilingKeyTemplateId 按"无 mask 且 config∈{0,2,6}"选 DN 并同步置 dnFlag_ 供 workspace 分配;kernel 侧 if constexpr(templateId == FA_Template_DN) 分发两套模板;SEL 分两段实例化(ND 全组合 192 个,DN 仅无 mask×config{0,2,6} 共 32 个),行为与原 EnableSoftmaxDn 推导一致 - const_def.h 新增架构感知 CV_RATIO(__NPU_ARCH__==5102/9201 为 1,其余为 2);消除同 TU 重定义冲突;Align 升级 constexpr 支持 buffer 编译期定容(对存量运行时调用透明) - FD block 的 UB BASE 偏移改为由 kernel 侧传入(VecFaBlockType::UB_MM_RES_TOTAL_BYTES),消除 FD/FA 两侧对 mmRes 区域大小的重复推导(原 FD 用 dVBaseSize、FA 用 dBaseSize 判断份数,D≠DV 时会漂移) - vec block 的 softmax sum/max/exp 与 lseOut buffer 按 mBaseSize/CV_RATIO 推导定容(覆盖 actVecMSize×fp32 块对齐的最坏用量);actVecMSize 计算去除硬编码 2 - FaTilingInfo 默认 npuArch_ 改为 DAV_RESV 哨兵值,避免未解析时误判为 3510 ## 关联的Issue #4944 ## 测试 - bash build.sh --pkg --soc=ascend950 --ops=flash_attn 全量编译通过(224 变体×2 dtype,产物核验 ND=192 + DN=32,DN 均为无 mask×config∈{0,2,6}) - --tiling_key=67108864,67239936 定点编译通过 - 全量编译通过(公共头 CV_RATIO/Align 变更跨算子回归) ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11248 | 15 天前 | |
pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !4878 merge compile into master pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 关联的Issue 关联Issue https://gitcode.com/cann/ops-transformer/issues/4850 ## 描述 对仓内算子源码提前做 pre-commit 历史格式问题清理,为后续功能改动(如 Regbase API 替换等)扫清钩子障碍,避免后续 PR 因格式问题被大面积格式化污染 diff。 处理方式: find <目录> -type f \( -name '*.h' -o -name '*.hpp' \) | xargs pre-commit run --files,多轮执行直到所有 hook 收敛(无 Failed / 无自动修复)。 修复内容(仅格式,不改任何代码语义): - 尾随空白(trailing whitespace) - 文件末尾换行(end of file) - clang-format 代码重排(换行、缩进、对齐,遵循仓内 .clang-format) ### 排除范围(不做格式化) - *_def.cpp 算子定义文件(排版由开发者自行维护,另见 PR #11041) - */op_api/aclnn*.h、*/op_graph/*_proto.h、*/op_host/op_api/aclnn*.h 接口/原型头文件(排版由开发者自行维护) - mamba/ 目录(该目录 causal_conv1d 算子 UT 上游基线存在失败,见 Issue #4840,本批不涉及) - examples/、experimental/ 目录 ### PR 拆分说明 全仓 .h/.hpp 清理共 2362 个文件,按场景目录拆分为 6 个 PR(分支不同、内容互不重叠,可独立 review 合入): | PR | 分支 | 范围 | |---|---|---| | #4878 | compile | attention 第1批(按算子字母序前段) | | #10422 | graph | attention 第2批(按算子字母序中段) | | #9331 | test | attention 第3批(按算子字母序后段) | | #10991 | fix | mc2 | | #11020 | fix_2 | moe、gmm | | #11021 | fix_3 | posembedding、mhc、ffn、common、tests、torch_extension | ## 测试 - 纯格式化改动:不改变任何代码语义,逐文件 diff 均为空白/换行/clang-format 重排 - pre-commit 全量 hook 收敛验证:多轮执行后 trailing-whitespace / end-of-file-fixer / clang-format 均 Passed - 建议合入前对相关算子做一次编译验证 See merge request: cann/ops-transformer!4878 | 22 天前 | |
refactor(fa): 封装 idCounterNum 初始化为 ResetIdCounter 函数 Co-authored-by: luojing-666<luojing51@huawei.com> # message auto-generated for no-merge-commit merge: !10789 merge refactor/attention_id_counter_reset_func into master refactor(fa): 封装 idCounterNum 初始化为 ResetIdCounter 函数 Created-by: luojing-666 Commit-by: luojing-666 Merged-by: cann-robot Description: Fixes #4671 ## 修改内容 - 在 attention/common/op_kernel/buffer.h 与 buffer_mix_core.h 中封装 ResetIdCounter() 函数(fa_base_matmul 命名空间),统一 idCounterNum 初始化逻辑。 - 将各 attention 算子 kernel 入口处 fa_base_matmul::idCounterNum = 0; 的直接赋值统一替换为 fa_base_matmul::ResetIdCounter();,共 13 个文件 19 处。 - experimental/ 目录暂不改动。 ## 关联 - Issue: #4671 ## 改动文件 - buffer.h / buffer_mix_core.h:新增 ResetIdCounter() - flash_attn、fused_infer_attention_score、quant_flash_attn、sparse_flash_mla、quant_sparse_flash_mla、mixed_quant_sparse_flash_mla、kv_quant_sparse_flash_attention、flash_attention_score、arch38 等 ## 测试 - [ ] pre-commit(本地未启用,由 CI 校验) - [ ] 精度验证 See merge request: cann/ops-transformer!10789 | 26 天前 | |
feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Co-authored-by: leiqingji<leiqingji@h-partners.com> # message auto-generated for no-merge-commit merge: !11248 merge feat/flash_attn_templateid into master feat(fa): flash_attn新增templateId模板参数并统一CV_RATIO架构感知 Created-by: leiqingji Commit-by: leiqingji Merged-by: cann-robot Description: ## 描述 flash_attn 引入 templateId 模板参数,将 DN/ND 模板选择从 kernel 内编译期推导改为 host 侧 tiling key 下发;同时将 CV_RATIO 统一为架构感知定义,消除各处硬编码。 ## 改动 - tiling key 新增第 5 参数 TemplateId(0=ND,1=DN):host 侧 UpdateTilingKeyTemplateId 按"无 mask 且 config∈{0,2,6}"选 DN 并同步置 dnFlag_ 供 workspace 分配;kernel 侧 if constexpr(templateId == FA_Template_DN) 分发两套模板;SEL 分两段实例化(ND 全组合 192 个,DN 仅无 mask×config{0,2,6} 共 32 个),行为与原 EnableSoftmaxDn 推导一致 - const_def.h 新增架构感知 CV_RATIO(__NPU_ARCH__==5102/9201 为 1,其余为 2);消除同 TU 重定义冲突;Align 升级 constexpr 支持 buffer 编译期定容(对存量运行时调用透明) - FD block 的 UB BASE 偏移改为由 kernel 侧传入(VecFaBlockType::UB_MM_RES_TOTAL_BYTES),消除 FD/FA 两侧对 mmRes 区域大小的重复推导(原 FD 用 dVBaseSize、FA 用 dBaseSize 判断份数,D≠DV 时会漂移) - vec block 的 softmax sum/max/exp 与 lseOut buffer 按 mBaseSize/CV_RATIO 推导定容(覆盖 actVecMSize×fp32 块对齐的最坏用量);actVecMSize 计算去除硬编码 2 - FaTilingInfo 默认 npuArch_ 改为 DAV_RESV 哨兵值,避免未解析时误判为 3510 ## 关联的Issue #4944 ## 测试 - bash build.sh --pkg --soc=ascend950 --ops=flash_attn 全量编译通过(224 变体×2 dtype,产物核验 ND=192 + DN=32,DN 均为无 mask×config∈{0,2,6}) - --tiling_key=67108864,67239936 定点编译通过 - 全量编译通过(公共头 CV_RATIO/Align 变更跨算子回归) ## 类型标签 - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11248 | 15 天前 | |
新增 Flash MLA WITH CACHE算子及 M96×112 流水性能优化 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !11808 merge perf/flash-mla-mfu90-portable into master 新增 Flash MLA WITH CACHE算子及 M96×112 流水性能优化 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 新增 flash_mla_with_kvcache 和 flash_mla_with_kvcache_metadata,支持分页 KV 的 MLA attention,包含 host/API、AICPU metadata、AscendC kernel、Torch 接入及文档。 - 按 flash_attn 的函数组织方式整理 tiling,完善 dtype、layout、shape、mask、序列长度、metadata 和 LSE 检查,同步默认值并修复序列索引、padding 输出初始化。 - 使用 M96×112 基本块、常驻 Q 首段及三槽 L1 缓冲,配合 L0A/L0B 同步复用,降低搬运与 scalar 开销。 - Flash Decode 根据分片数量选择 16/8 行规约,减少规约尾部开销;不使用固定 28 核的任务重排。 全部历史提交已压缩为 317f35490,与压缩前 84b784d4d 的 Git tree 完全一致,未改变代码内容。本 PR 提交 perf/flash-mla-mfu90-portable 分支;相对 master 包含算子完整实现。 ## 关联的Issue Fixes #5229 https://gitcode.com/cann/ops-transformer/issues/5229 ## 测试 - 格式、ruff、OAT 等检查通过;37 个格式修正文件已核对 C++ token、Python AST 或非空白内容等价。压缩提交后,以全部新增文件为 staged 范围检查时,duplicate-header-check 发现原有头文件 basename 重名,因此完整 pre-commit 尚未全部通过;本次仅压缩历史,未调整文件命名。与抓取的 master 无合并冲突。 - 既有固定性能用例:B=1、H=96、Q=8、KV=128000、DQK=576、DV=512,TND/PA_NZ、sparse_mode=3,返回 LSE。在原测试平台上耗时约 620 us,按有效 FLOPs / (耗时 × 378.47 TFLOPS) 口径达到约 91% MFU;该数据不代表所有 case 或核数均达到 90%。 - 既有 BF16/FP16 各 500 条泛化及边界测试用于核对优化前后输出。严格逐点阈值仍存在失败:BF16 abs>0.0001 且 rel>0.0078125;FP16 abs>0.000025 且 rel>0.005。不能视为全点精度通过;此前观察的最差 512 维行分别为 107/512、30/512 个失败点,未达到 70%。 - 本次 PR 提交未重新整包编译或运行 NPU 测试。后续 mask 提前准备、mask 跳过及实验性 FD 优化不属于此分支。 ## 文档更新 提供 attention/flash_mla_with_kvcache/docs/torchapi_flash_mla_with_kvcache.md,说明输入输出、默认值、支持规格、mask 与 metadata 使用要求。 ## 类型标签 - [x] 新特性 - [x] 性能优化 - [x] Bug 修复 - [x] 文档更新 See merge request: cann/ops-transformer!11808 | 7 天前 | |
pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !4878 merge compile into master pre-commit修复attention目录.h/.hpp历史格式问题(第1批) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 关联的Issue 关联Issue https://gitcode.com/cann/ops-transformer/issues/4850 ## 描述 对仓内算子源码提前做 pre-commit 历史格式问题清理,为后续功能改动(如 Regbase API 替换等)扫清钩子障碍,避免后续 PR 因格式问题被大面积格式化污染 diff。 处理方式: find <目录> -type f \( -name '*.h' -o -name '*.hpp' \) | xargs pre-commit run --files,多轮执行直到所有 hook 收敛(无 Failed / 无自动修复)。 修复内容(仅格式,不改任何代码语义): - 尾随空白(trailing whitespace) - 文件末尾换行(end of file) - clang-format 代码重排(换行、缩进、对齐,遵循仓内 .clang-format) ### 排除范围(不做格式化) - *_def.cpp 算子定义文件(排版由开发者自行维护,另见 PR #11041) - */op_api/aclnn*.h、*/op_graph/*_proto.h、*/op_host/op_api/aclnn*.h 接口/原型头文件(排版由开发者自行维护) - mamba/ 目录(该目录 causal_conv1d 算子 UT 上游基线存在失败,见 Issue #4840,本批不涉及) - examples/、experimental/ 目录 ### PR 拆分说明 全仓 .h/.hpp 清理共 2362 个文件,按场景目录拆分为 6 个 PR(分支不同、内容互不重叠,可独立 review 合入): | PR | 分支 | 范围 | |---|---|---| | #4878 | compile | attention 第1批(按算子字母序前段) | | #10422 | graph | attention 第2批(按算子字母序中段) | | #9331 | test | attention 第3批(按算子字母序后段) | | #10991 | fix | mc2 | | #11020 | fix_2 | moe、gmm | | #11021 | fix_3 | posembedding、mhc、ffn、common、tests、torch_extension | ## 测试 - 纯格式化改动:不改变任何代码语义,逐文件 diff 均为空白/换行/clang-format 重排 - pre-commit 全量 hook 收敛验证:多轮执行后 trailing-whitespace / end-of-file-fixer / clang-format 均 Passed - 建议合入前对相关算子做一次编译验证 See merge request: cann/ops-transformer!4878 | 22 天前 | |
fix(matmul): 修正 BScaleType 默认实参类型 Co-authored-by: luojing-666<luojing51@huawei.com> # message auto-generated for no-merge-commit merge: !12237 merge perf/matmul_l0b_flag_merge into master fix(matmul): 修正 BScaleType 默认实参类型 Created-by: luojing-666 Commit-by: luojing-666 Merged-by: cann-robot Description: Refs #5374(仅修复问题 2:BScaleType 默认实参类型错误;问题 1 同步 flag 优化已回退,另行处理) ## 修改内容 ### BScaleType 默认实参类型修正 MatmulFullMX/MatmulFull/MatmulK/MatmulN 的 bScaleL1Tensor 默认实参由 LocalTensor<AScaleType>() 改为 LocalTensor<BScaleType>(): - 默认实参类型必须与形参 LocalTensor<BScaleType> 精确匹配 - 原写法在调用方传入的 AScaleType 与 BScaleType(默认 fp8_e8m0_t)不同且未显式传 B scale 时会编译失败 - 当前调用方 A/B scale 类型恰好相同,问题未暴露,属防御性修复 - 行为等价(均为空 tensor),无运行时影响 > 说明:初版包含的 L0A/L0B 同步 flag 合并优化(MatmulFull/MatmulK)已回退,恢复 l0bBuffer 原有双 flag 模式,待进一步上板验证后另行提交。 ## 改动文件 - attention/common/op_kernel/matmul.h(+4/-4,仅 4 处默认实参类型修正) ## 测试 - [x] 本地 pre-commit 检查通过(clang-format / trailing-whitespace / end-of-file-fixer) - [x] diff 逐行核对:仅 4 处 BScaleType 修正,无其他改动 - [ ] 精度验证 See merge request: cann/ops-transformer!12237 | 4 天前 | |
combine fa offset calculator Co-authored-by: jiang-lirui<jianglirui1@huawei.com> # message auto-generated for no-merge-commit merge: !1974 merge fa_common_950_0225 into master combine fa offset calculator Created-by: jiang-lirui Commit-by: jiang-lirui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!1974 | 6 个月前 | |
fia entry split by quantmode Co-authored-by: jiang-lirui<jianglirui1@huawei.com> # message auto-generated for no-merge-commit merge: !9374 merge fia_arch35_quantmode_split into master fia entry split by quantmode Created-by: jiang-lirui Commit-by: jiang-lirui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 前序Issue [#3998](https://gitcode.com/cann/ops-transformer/issues/3998) fused_infer_attention_score_apt.cpp 原按 quantMode < 15 二分,IFA entry(antiquant)与 PFA entry(noquant+fullquant)耦合:IFA entry 仅因 emptyTensor 需要 INVOKE_PFA_ZERO_OP_IMPL_V2 而 include PFA entry,形成不必要交叉依赖。 目标:在 arch35/ 下按量化模式拆为 3 个路由文件 + 1 个公共头 + 2 个公共依赖,apt.cpp 按 quantMode 三分路由,解除 IFA→PFA 交叉依赖,消除 IFA/PFA 命名残留,提升结构清晰度。 影响面:仅 apt.cpp + arch35/ 目录内部。arch38 为独立文件,不受影响。两个 entry 文件原仅被 apt.cpp 引用(已核实)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#4051](https://gitcode.com/cann/ops-transformer/issues/4051) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9374 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 15 天前 | ||
| 4 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 22 天前 | ||
| 22 天前 | ||
| 2 天前 | ||
| 15 天前 | ||
| 2 个月前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 22 天前 | ||
| 26 天前 | ||
| 15 天前 | ||
| 7 天前 | ||
| 22 天前 | ||
| 4 天前 | ||
| 6 个月前 | ||
| 1 个月前 |