本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 13 天前 | |
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!1765 | 2 个月前 | |
revert//sliklg metadata support A5 Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !7747 merge revert-mr-7429-1782573016939-auto into master revert//sliklg metadata support A5 Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7747 | 1 天前 | |
engram Co-authored-by: wuchenhao123<wuchenhao6@huawei.com> Co-authored-by: wangliangpei<wangliangpei@huawei.com> # message auto-generated for no-merge-commit merge: !6705 merge dev_engram into master engram Created-by: wangliangpei Commit-by: wangliangpei;wuchenhao123 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> EngramFetch算子工程代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3297 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: # 代码检视报告 **项目名称**:NPU 算子检视报告 **检视模块**:ops-transformer/mc2/engram_fetch(Host 侧:op_host/op_tiling/engram_fetch_tiling.cpp、op_host/engram_fetch_def.cpp、op_api/aclnn_engram_fetch.cpp;该算子无 kernel 具体逻辑,本次仅检视 Host 侧) **检视依据**:references/cpp-secure.md(C++ 安全编码规范)、references/ascendc-topk.md(TOPK 问题清单)、AGENTS.md 红线问题 **检视人**:Turing Team **检视日期**:2026-06-25 ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 发现问题总数 | 3 个 | | 严重级(CRITICAL)问题 | 1 个 | | 中等级(MEDIUM)问题 | 2 个 | | 存疑(待确认)问题 | 1 个 | | 误报数量 | 0 个 | **核心结论**:tensor / 属性 / shape 的合法性校验框架较完整(判空、dtype、format、维度均有覆盖)。存在 1 处严重问题: hidden_size 属性获取类型与 IR 原型不一致(int64 当作 int32 读取)。另有 2 处无符号乘法回绕 / 截断(中等),1 处指针解引用依赖调用顺序(存疑)。 ## ❌ 问题详情及修改建议 ### 问题ID:ISSUE-001 | 严重级别:CRITICAL(严重) #### 🔬 假设检验过程 **代码段**:hidden_size 属性获取(CheckAttrPtrNullptr / CheckAttrParams / SetTilingData) **假设**:H0: 该代码段是安全的 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | TOPK-5 / cpp-secure 1.1 | engram_fetch_def.cpp:38 中 Attr("hidden_size").Int(),IR 原型为 Int(存储为 int64_t);tiling 用 GetAttrPointer<int32_t> 读取 | +40% | 40% | | 2 | 数据流追踪风险 | cpp-secure 1.1 | 8 字节 int64 存储被当作 4 字节 int32 解引用,取值错误且属未定义行为(类型不安全) | +25% | 65% | **结论**:自信值 **65%** > 60%,**推翻原假设 H0**,该代码段存在风险。 --- **关联条款**:TOPK 清单第 5 条「属性获取类型需与 ir 原型一致」[适用: Host];cpp-secure 规则 1.1「保证静态类型安全」[适用: All] **代码路径**: - op_host/op_tiling/engram_fetch_tiling.cpp:237 attrs->GetAttrPointer<int32_t>(ATTR_HIDDEN_SIZE_INDEX) - op_host/op_tiling/engram_fetch_tiling.cpp:265 attrs->GetAttrPointer<int32_t>(ATTR_HIDDEN_SIZE_INDEX) - op_host/op_tiling/engram_fetch_tiling.cpp:360 attrs->GetAttrPointer<int32_t>(ATTR_HIDDEN_SIZE_INDEX) - 对照 op_host/engram_fetch_def.cpp:38 this->Attr("hidden_size").AttrType(REQUIRED).Int(); **问题类型**:属性获取类型与 IR 原型不一致 / 类型不安全 **问题描述**:IR 原型中 hidden_size 定义为 Int(),GE 框架内部以 int64_t 存储该属性。tiling 代码用 GetAttrPointer<int32_t> 获取,相当于把 8 字节存储按 4 字节 int32 解引用,取到的数值不可靠(依赖字节序,且为未定义行为)。num_entries_per_rank、output_dtype 两个属性均正确使用了 int64_t,仅 hidden_size 不一致。 #### 修改建议 **修改前代码**: cpp auto hiddenSizePtr = attrs->GetAttrPointer<int32_t>(ATTR_HIDDEN_SIZE_INDEX); **修改后代码**: cpp auto hiddenSizePtr = attrs->GetAttrPointer<int64_t>(ATTR_HIDDEN_SIZE_INDEX); // 后续如需 uint32_t,再在范围校验通过后显式 static_cast **修改说明**:将 237/265/360 三处 int32_t 统一改为 int64_t,与 IR 原型 Int() 对齐;范围校验(*hiddenSizePtr <= 0、对齐校验)改在 int64 上进行,确认安全后再窄化为 uint32_t,符合 TOPK 第 5 条与 cpp-secure 1.1。 --- ### 问题ID:ISSUE-003 | 严重级别:MEDIUM(中等) #### 🔬 假设检验过程 **代码段**:SetTilingData() 中 hiddenBytes 计算 **假设**:H0: 该代码段是安全的 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | cpp-secure 2.2 | hiddenDim * FP32_BYTES 为 uint32×uint32 → uint32,超出范围回绕 | +40% | 40% | | 2 | 上下文防御缺失 | cpp-secure 2.2 | hidden_size 仅校验 >0 与 128 对齐,无上界约束(int32 最大约 2.1e9,×4 即回绕) | +30% | 70% | **结论**:自信值 **70%** > 60%,**推翻原假设 H0**,该代码段存在风险。 --- **关联条款**:cpp-secure 规则 2.2「确保无符号整数运算不回绕」[适用: All];AGENTS.md 红线第 3 条(乘法溢出保护);可参考 TOPK 第 8 条(GM 大小/偏移用 int64) **代码路径**: - op_host/op_tiling/engram_fetch_tiling.cpp:370 tilingData.hiddenBytes = hiddenDim * BF16_BYTES; - op_host/op_tiling/engram_fetch_tiling.cpp:372 tilingData.hiddenBytes = hiddenDim * FP32_BYTES; **问题类型**:无符号乘法回绕 / 字节大小未用 int64 表示 **问题描述**:hiddenDim 为 uint32_t,hidden_size 仅有下界与对齐校验,无上界。hiddenDim * FP32_BYTES(4) 当 hiddenDim > UINT32_MAX/4 时回绕,得到错误的 hiddenBytes。该值后续大概率用于 GM 搬运字节数/偏移,回绕会导致内存计算错误。 #### 修改建议 **修改前代码**: cpp if (fetchedDtype == ge::DT_BF16 || fetchedDtype == ge::DT_FLOAT16) { tilingData.hiddenBytes = hiddenDim * BF16_BYTES; } else { tilingData.hiddenBytes = hiddenDim * FP32_BYTES; } **修改后代码**: cpp uint32_t bytesPerElem = (fetchedDtype == ge::DT_BF16 || fetchedDtype == ge::DT_FLOAT16) ? BF16_BYTES : FP32_BYTES; // hidden_size 增加上界校验后,回绕不可能发生(建议在 CheckAttrParams 中补充上界) uint64_t hiddenBytes64 = static_cast<uint64_t>(hiddenDim) * bytesPerElem; OP_TILING_CHECK(hiddenBytes64 > UINT32_MAX, OP_LOGE(nodeName, "hiddenBytes overflow uint32: %lu", hiddenBytes64), return ge::GRAPH_FAILED); tilingData.hiddenBytes = static_cast<uint32_t>(hiddenBytes64); **修改说明**:用 uint64_t 做中间乘法运算并校验上界后再写回 uint32_t;同时建议在 CheckAttrParams 给 hidden_size 增加上界校验,从源头消除回绕,符合 cpp-secure 2.2 与红线第 3 条。 --- ### 问题ID:ISSUE-004 | 严重级别:MEDIUM(中等) #### 🔬 假设检验过程 **代码段**:SetTilingData() 中 numEntriesPerRank 窄化 **假设**:H0: 该代码段是安全的 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | cpp-secure 1.1(缩窄) | static_cast<uint32_t>(*numEntriesPerRankPtr),int64→uint32 静默截断 | +40% | 40% | | 2 | 上下文防御缺失 | cpp-secure 4.1 | CheckAttrParams 仅校验 < 0,无上界(UINT32_MAX)校验 | +30% | 70% | **结论**:自信值 **70%** > 60%,**推翻原假设 H0**,该代码段存在风险。 --- **关联条款**:cpp-secure 规则 1.1「保证静态类型安全(缩窄转换)」、规则 4.1「外部输入合法性校验」[适用: All] **代码路径**: - op_host/op_tiling/engram_fetch_tiling.cpp:364 tilingData.numEntriesPerRank = static_cast<uint32_t>(*numEntriesPerRankPtr); - 对照校验 op_host/op_tiling/engram_fetch_tiling.cpp:287 OP_TILING_CHECK(*numEntriesPerRankPtr < 0, ...) **问题类型**:int64→uint32 缩窄截断,缺上界校验 **问题描述**:num_entries_per_rank 为 int64 属性,仅在 287 行校验了 < 0,未校验上界。第 364 行直接 static_cast<uint32_t>,当属性值 > UINT32_MAX 时静默截断,写入 tilingData 的值与用户传入不一致。 #### 修改建议 **修改前代码**: cpp // CheckAttrParams 中 OP_TILING_CHECK(*numEntriesPerRankPtr < 0, ... , return ge::GRAPH_FAILED); // SetTilingData 中 tilingData.numEntriesPerRank = static_cast<uint32_t>(*numEntriesPerRankPtr); **修改后代码**: cpp // CheckAttrParams 中:负值与上界一并校验 OP_TILING_CHECK(*numEntriesPerRankPtr < 0 || *numEntriesPerRankPtr > static_cast<int64_t>(UINT32_MAX), OP_LOGE_FOR_INVALID_VALUE(nodeName, "num_entries_per_rank", std::to_string(*numEntriesPerRankPtr).c_str(), "[0, UINT32_MAX]"), return ge::GRAPH_FAILED); **修改说明**:在校验阶段补充上界判断,确保窄化前数值落在 uint32 范围内,避免静默截断,符合 cpp-secure 1.1 / 4.1。 --- ## ⚠️ 存疑问题(供用户自主判断) ### 存疑-001 | 指针解引用依赖调用顺序 **代码路径**: - op_host/op_tiling/engram_fetch_tiling.cpp:265-266 CheckAttrParams 内 *hiddenSizePtr 解引用 - op_host/op_tiling/engram_fetch_tiling.cpp:360-364 SetTilingData 内 *hiddenSizePtr、*numEntriesPerRankPtr 解引用 **说明**:上述函数内部重新 GetAttrPointer 后直接解引用,未在本函数内判空。判空逻辑位于 CheckAttrPtrNullptr(320 行先于 323 行 CheckAttrParams 调用),SetTilingData(436 行)也在 CheckAttrs(428 行)之后调用,故当前调用链下指针已被校验,**不构成红线违规**。但该防御依赖固定调用顺序,若后续重构调整顺序或单独复用这些函数,存在解引用空指针风险。建议:要么在解引用处补一次判空,要么以注释固化"必须在 CheckAttrs 之后调用"的前置约定。对照 cpp-secure 3.5 / TOPK 第 1 条,列为存疑。 ## ✅ 检视未发现问题项(已确认合规) - 输入/输出 tensor 的判空、dtype、format、维度校验(CheckTensorPtrNullptr / CheckTensorDataType / CheckTensorDim / CheckTensorFormat)覆盖完整。 - num_entries_per_rank、output_dtype 属性获取类型与 IR 原型(Int() → int64_t)一致。 - workspace 指针判空(SetWorkSpace, 399 行)、platformInfo 判空(337 行)、tilingData 判空(419 行)到位。 - LOG 宏格式说明符与参数类型基本匹配(uint32_t 用 %u、int64_t 用 %ld)。 ## 报告生成时间 2026-06-25 ## 报告状态 已完成检视,待修复验证 See merge request: cann/ops-transformer!6705 | 1 天前 | |
fp8 fullquant Co-authored-by: wangke293<wangke293@huawei.com> # message auto-generated for no-merge-commit merge: !6637 merge master into master fp8 fullquant Created-by: wangke293 Commit-by: wangke293 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增fp8 fullquant, qk pertoken-head, v perhead ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/3217 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> pytest下golden脚本 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/fused_infer_attention_score/docs/aclnnFusedInferAttentionScoreV5.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6637 | 5 天前 | |
modified md files (mhc_pre_sinkhorn and mhc_post) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !7701 merge master into master modified md files (mhc_pre_sinkhorn and mhc_post) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Updated the PTA interface documents of mhc_pre_sinkhorn and mhc_post. 1. Deleted meta form the level-1 title of the interface name. 2. Changed the supported data types to lowercase. 3. Updated the ACLNN link. ## 关联的Issue NA ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/torch_api_list.md mhc/mhc_post/README.md mhc/mhc_pre_sinkhorn/README.md torch_extension/cann_ops_transformer/docs/zh/mhc_post.md torch_extension/cann_ops_transformer/docs/zh/mhc_pre_sinkhorn.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7701 | 1 天前 | |
change flash_attn_example name Co-authored-by: wangzhe123456789<wangzhe92@huawei.com> # message auto-generated for no-merge-commit merge: !7729 merge master into master change flash_attn_example name Created-by: wangzhe123456789 Commit-by: wangzhe123456789 Merged-by: cann-robot Description: ## 描述 change flash_attn_example name ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7729 | 1 天前 | |
FAG HIFP8 Directory Migration Co-authored-by: yanwenshu<yanwenshu1@huawei.com> # message auto-generated for no-merge-commit merge: !7410 merge fag_fp8 into master FAG HIFP8 Directory Migration Created-by: yan-wenshu Commit-by: yanwenshu Merged-by: cann-robot Description: ## 描述 <!--FAG HIFP8 Directory Migration。--> FAG HIFP8 Directory Migration A5 FAG算子删除HIFP8相关代码,包括aclnn接口、tiling和kernel侧相关代码,并在tiling侧添加FP8拦截,将HIFP8相关代码迁移到experimental下,在该目录下支持。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3317 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7410 | 3 天前 | |
移除FFN显式CheckLogLevel调用改为OP_LOGD调用 Co-authored-by: huang-wei-chen<chenhuangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !7115 merge ffn into master 移除FFN显式CheckLogLevel调用改为OP_LOGD调用 Created-by: huang-wei-chen Commit-by: huang-wei-chen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 显式的CheckLogLevel调用改为OP_LOGD调用 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#3173](https://gitcode.com/cann/ops-transformer/issues/3173) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7115 | 11 天前 | |
[Clean Code]Clean Code,解决无符号类型转换为有符号类型的报错 Co-authored-by: qq_38336763<liuyunhai4@huawei.com> # message auto-generated for no-merge-commit merge: !7114 merge fix_gmm_clean_code into master [Clean Code]Clean Code,解决无符号类型转换为有符号类型的报错 Created-by: qq_38336763 Commit-by: qq_38336763 Merged-by: cann-robot Description: ## 描述 GroupedMatmulSwigluQuantV2算子在获取矩阵Shape时,使用了一些无符号隐式转换为有符号的代码,具有代码风险,需Clean Code。 本修改将一部分有符号变量在不更改功能的情况下修改为无符号,避免了不必要的转换,在需要用到有符号的地方,使用了显式的操作, <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#3175](https://gitcode.com/cann/ops-transformer/issues/3175) ## 测试 经过ATK测试验证通过。 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7114 | 1 天前 | |
feat: add causal_conv1d for ascend950 Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !6870 merge br_causal_conv1d_no_run_mode into master feat: add causal_conv1d for ascend950 Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add causal_conv1d for ascend950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3312 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6870 | 2 天前 | |
revert: 回退 MegaMoe weight1/weight2 算子原型修改 Co-authored-by: luobaiqing<luobaiqing1@huawei.com> # message auto-generated for no-merge-commit merge: !7745 merge revert-def into master revert: 回退 MegaMoe weight1/weight2 算子原型修改 Created-by: luobaiqing Commit-by: luobaiqing Merged-by: cann-robot Description: ## 变更说明 回退 mega_moe_def.cpp 中 weight1 / weight2 的 DataType/Format 列表修改。 ## 变更原因 原有的编译隔离(基于 ASC_DEVKIT_MAJOR/ASC_DEVKIT_MINOR 的 #ifdef ENABLE_FORMAT_NZ_C0_32 条件编译)在回黄时失效,导致 FORMAT_FRACTAL_NZ_C0_32 相关的 DataType/Format 条目在回黄时编译失败。 ## 变更内容 - 移除 #include "version/asc_devkit_version.h" 及 ENABLE_FORMAT_NZ_C0_32 条件宏 - 回退 weight1/weight2 的 .DataType() 和 .Format() 列表,去掉分项注释和条件编译分支,回到修改前的一行式写法 ## 影响范围 仅影响 mc2/mega_moe/op_host/mega_moe_def.cpp,不影响 kernel 实现和其他模块。 See merge request: cann/ops-transformer!7745 | 1 天前 | |
modified md files (mhc_pre_sinkhorn and mhc_post) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !7701 merge master into master modified md files (mhc_pre_sinkhorn and mhc_post) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Updated the PTA interface documents of mhc_pre_sinkhorn and mhc_post. 1. Deleted meta form the level-1 title of the interface name. 2. Changed the supported data types to lowercase. 3. Updated the ACLNN link. ## 关联的Issue NA ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/torch_api_list.md mhc/mhc_post/README.md mhc/mhc_pre_sinkhorn/README.md torch_extension/cann_ops_transformer/docs/zh/mhc_post.md torch_extension/cann_ops_transformer/docs/zh/mhc_pre_sinkhorn.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7701 | 1 天前 | |
修复MoeInitRoutingQuantV2部分用例精度失败问题 Co-authored-by: wuxiyuan<wuxiyuan@huawei.com> # message auto-generated for no-merge-commit merge: !7722 merge master into master 修复MoeInitRoutingQuantV2部分用例精度失败问题 Created-by: wuxiyuan Commit-by: wuxiyuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MoeInitRoutingQuantV2 算子(arch35)在部分测试用例中出现精度失败。 ### 根因分析 moe_v2_gather_quant_simt.h 中 floatQueue_ 的 Buffer 初始化大小计算存在缺陷: - 原逻辑:AlignBytes(perLoopCols_, sizeof(float)) 直接按 perLoopCols_ 计算,未考虑数据类型 T 的对齐 - 当 perLoopCols_ 未按 T 类型大小对齐时,分配的 Buffer 空间不足,导致后续计算精度异常 ### 修复方案 在 AlignBytes 之前增加 Align(perLoopCols_, sizeof(T)),确保先按数据类型 T 对齐,再按 float 字节要求对齐: cpp // 修复前 pipe_->InitBuffer(floatQueue_, 1, AlignBytes(perLoopCols_, sizeof(float))); // 修复后 pipe_->InitBuffer(floatQueue_, 1, AlignBytes(Align(perLoopCols_, sizeof(T)), sizeof(float))); ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3372 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 完成自验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7722 | 1 天前 | |
feat(inplace_partial_rotary_mul): add torch interface migration Co-authored-by: wangxun21<wangxun21@huawei.com> # message auto-generated for no-merge-commit merge: !7202 merge torch_api_add into master feat(inplace_partial_rotary_mul): add torch interface migration Created-by: wangxun21 Commit-by: wangxun21 Merged-by: cann-robot Description: ## 描述 为 inplace_partial_rotary_mul 算子新增 PyTorch 接口迁移,使其可通过 cann_ops_transformer 包在 NPU 上直接调用。 具体改动内容: 1. **Python 封装层** (inplace_partial_rotary_mul.py):使用 OpBuilder 模式实现 JIT 编译 + dispatcher 注册,提供 Python 调用接口 - OpBuilder 定义 schema、sources、meta 注册 - PrivateUse1 dispatcher 实现 NPU 调用 - 公开函数 inplace_partial_rotary_mul(x, r1, r2, rotary_mode, partial_slice) 2. **C++ 绑定层** (inplace_partial_rotary_mul.cpp):通过 ACLNN_CMD 宏调用底层 aclnnInplacePartialRotaryMul 算子 - 参数校验:x dim=4、rotary_mode 合法性、当前仅支持 interleave 模式 - rotary_mode 映射:half=0, interleave=1, quarter=2, interleave-half=3 3. **图模式转换器** (graph_convert_inplace_partial_rotary_mul.py):实现 torchair GE converter,支持图模式下调用 - 定义 InplacePartialRotaryMul GE op - 注册 torch.ops.cann_ops_transformer.inplace_partial_rotary_mul.default 转换器 4. **算子文档** (npu_inplace_partial_rotary_mul.md):新增接口说明文档,包含参数说明和使用示例 5. **导出注册** (__init__.py):注册 inplace_partial_rotary_mul 及 convert_inplace_partial_rotary_mul 到包导出 6. **.gitignore**:添加本地测试文件排除规则 ## 关联的Issue 关联Issue #3239 ## 测试 - Python eager 模式基本功能验证 - 参数校验覆盖:dim 检查、rotary_mode 检查、partial_slice 检查 - 图模式转换器注册验证 ## 文档更新 新增 torch_extension/cann_ops_transformer/doc/npu_inplace_partial_rotary_mul.md 算子接口文档 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧠 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7202 | 2 天前 | |
fix(packaging): 安装whl包后设置cann_ops_transformer目录权限 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !7384 merge fix/opp-install-chmod-perm into master fix(packaging): 安装whl包后设置cann_ops_transformer目录权限 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 安装 cann_ops_transformer whl 包后,未对安装目录及 .dist-info 目录设置权限,可能导致其他用户无法正确访问已安装的包文件。 ## 改动 - 在 install_whl_package() 中,pip/cp 安装完成后新增对 cann_ops_transformer 和 cann_ops_transformer-*.dist-info 目录执行 chmod -R ${CUSTOM_PERM} - IS_FOR_ALL=y 时权限为 755,IS_FOR_ALL=n 时权限为 750,与同文件 es_transformer 包的处理逻辑(L335-336)保持一致 ## 关联的Issue #3267 ## 测试 - 验证安装后 cann_ops_transformer/ 和 cann_ops_transformer-*.dist-info/ 目录权限符合预期(755/750) - 安装失败路径(pip 不可用且 whl_file 不存在)下 chmod 静默失败,不影响安装结果 ## 类型标签 - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7384 | 4 天前 | |
BlockSparseAttention UT Co-authored-by: t00935269<tangkaidi1@huawei.com> # message auto-generated for no-merge-commit merge: !7187 merge master into master BlockSparseAttention UT Created-by: tangkaidi Commit-by: t00935269 Merged-by: cann-robot Description: ## 描述 现有BlockSparseAttention UT无法运行,缺少维护用例。 新增BlockSparseAttention UT用例。 执行bash build.sh -u --ops=block_sparse_attention --cov命令后, 显示当前覆盖率如下: [2026-06-18 22:33:58] |Lines |Functions |Branches [2026-06-18 22:33:58] Filename |Rate Num|Rate Num|Rate Num [2026-06-18 22:33:58] ================================================================================ [2026-06-18 22:33:58] [/home/t00935269/bsa-ut/attention/block_sparse_attention/op_host/] [2026-06-18 22:33:58] block_sparse_attention_infershape.cpp |96.3% 107| 100% 2| - 0 [2026-06-18 22:33:58] block_sparse_attention_tiling.cpp |92.6% 678|87.5% 40| - 0 [2026-06-18 22:33:58] block_sparse_attention_tiling.h |98.3% 60|81.0% 21| - 0 [2026-06-18 22:33:58] op_api/aclnn_block_sparse_attention.cpp |87.0% 108|88.9% 9| - 0 [2026-06-18 22:33:58] op_api/aclnn_block_sparse_attention_v2.cpp|89.0% 127|88.9% 9| - 0 [2026-06-18 22:33:58] op_api/block_sparse_attention.cpp |96.6% 29| 100% 2| - 0 [2026-06-18 22:33:58] ================================================================================ [2026-06-18 22:33:58] Total:|92.4% 1109|86.7% 83| - 0 实际覆盖率100%(排除不可达冗余分支和尚不支持预留功能)。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue [Requirement|需求建议]: BlockSparseAttention UT用例补充 #3208 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7187 | 5 天前 | |
revert//sliklg metadata support A5 Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !7747 merge revert-mr-7429-1782573016939-auto into master revert//sliklg metadata support A5 Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7747 | 1 天前 | |
更新license Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge lic into master 更新license Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新license <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!568 | 5 个月前 | |
transformer仓引入tensor仓 Co-authored-by: zhangzhizhuo<zhangzhizhuo1@huawei.com> # message auto-generated for no-merge-commit merge: !6256 merge transformertensor into master transformer仓引入tensor仓 Created-by: zhangzhizhuo Commit-by: zhangzhizhuo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ops-nn仓引入ops-tensor作为子模块,ops-tensor包含tensor_api的实现及blaze模板 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联issue [#2842](https://gitcode.com/cann/ops-transformer/issues/2842) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地编包正常出包,验证离线编译功能正常,线上出包正常。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> na ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6256 | 24 天前 | |
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!1765 | 2 个月前 | |
fix: 修复clang-format配置 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !6029 merge master into master fix: 修复clang-format配置 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 fix: 修复clang-format配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2728 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6029 | 26 天前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 13 天前 | |
feat: add causal_conv1d for ascend950 Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !6870 merge br_causal_conv1d_no_run_mode into master feat: add causal_conv1d for ascend950 Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> add causal_conv1d for ascend950 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3312 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6870 | 2 天前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 13 天前 | |
init | 8 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !3571 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3571 | 2 个月前 | |
修改仓上中英文空格 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6933 merge master into master 修改仓上中英文空格 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改仓上中英文空格。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [X] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6933 | 13 天前 | |
doc Tools工具扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !3432 merge master into master doc Tools工具扫描问题修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools工具扫描问题修改 See merge request: cann/ops-transformer!3432 | 2 个月前 | |
支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Co-authored-by: lidongsheng<lidongsheng43@huawei.com> Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2170 merge 910_lds into master 支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Created-by: qq_46353993 Commit-by: 吴剑飞;lidongsheng Merged-by: cann-robot Description: ## 描述 本次修改支持用户通过build.sh的编译入口传入模板参数--kernel_template_input后按tilingkey编译、传入--bisheng_flags进行调试异常 ## 关联的Issue [支持按模板参数指定编译kernel](https://gitcode.com/cann/ops-transformer/issues/1036) [支持编译入参新增调试异常和调优参数](https://gitcode.com/cann/ops-transformer/issues/1044) ## 测试 二级冒烟、指定模板参数编译并执行测试用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!2170 | 3 个月前 | |
更新protobuf版本 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !522 merge prof into master 更新protobuf版本 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新protobuf版本 ## 关联的Issue 关联Issue [#316](https://gitcode.com/cann/ops-transformer/issues/316) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!522 | 6 个月前 | |
ops-transformer仓支持指定模块编译 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !1889 merge test_compile_ut into master ops-transformer仓支持指定模块编译 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!1889 | 2 天前 | |
prolog及fia的op_api目录不加入ut覆盖率统计 Co-authored-by: caizhengyang<caizhengyang1@huawei.com> # message auto-generated for no-merge-commit merge: !7239 merge master_ut into master prolog及fia的op_api目录不加入ut覆盖率统计 Created-by: caizhengyang Commit-by: caizhengyang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> prolog及fia的op_api目录不加入ut覆盖统计 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3243 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7239 | 2 天前 | |
fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !6194 merge fix/add-packaging-dependency into master fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 仓库代码依赖了 packaging 包(cmake/scripts/util/const_var.py:15 使用 from packaging import version),但 requirements.txt 和 install_deps.sh 中未声明该依赖,导致全新环境下缺少该包时构建会报 ImportError。 ## 改动 - requirements.txt:添加 packaging>=26.0 - install_deps.sh:在 COMMON_PKGS 数组中添加 "packaging>=26.0" ## 关联的Issue #2812 ## 测试 - 执行 bash install_deps.sh 脚本无报错 - python3 -c "from packaging import version" 验证模块可用 - 不传新参数时原有依赖安装行为不受影响 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6194 | 22 天前 | |
fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !6194 merge fix/add-packaging-dependency into master fix(deps): add packaging>=26.0 to requirements.txt and install_deps.sh Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 仓库代码依赖了 packaging 包(cmake/scripts/util/const_var.py:15 使用 from packaging import version),但 requirements.txt 和 install_deps.sh 中未声明该依赖,导致全新环境下缺少该包时构建会报 ImportError。 ## 改动 - requirements.txt:添加 packaging>=26.0 - install_deps.sh:在 COMMON_PKGS 数组中添加 "packaging>=26.0" ## 关联的Issue #2812 ## 测试 - 执行 bash install_deps.sh 脚本无报错 - python3 -c "from packaging import version" 验证模块可用 - 不传新参数时原有依赖安装行为不受影响 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6194 | 22 天前 | |
chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5895 merge chore/version-upgrade-9.1.0 into master chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 ops-transformer 版本升级至 9.1.0,同步更新 opbase 依赖 tag,移除不再需要的 asc-tools 构建依赖。 ## 改动 - version.cmake: 版本号从 9.0.0 升级至 9.1.0 - version.cmake: 移除 asc-tools >=8.5 构建依赖 - cmake/third_party/opbase.cmake: opbase tag ID 从 6604d3c 更新为 ee5334d ## 关联的Issue #2662 https://gitcode.com/cann/ops-transformer/issues/2599 ## 测试 - bash build.sh --pkg --jit 编译打包通过 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:版本升级 See merge request: cann/ops-transformer!5895 | 1 个月前 | |
check_compile_version Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2085 merge check_version into master check_compile_version Created-by: hid81635372 Commit-by: 吴剑飞 Merged-by: cann-robot Description: ## 描述 工程上支持在编译时对子包版本进行校验 ## 关联的Issue https://gitcode.com/cann/ops-transformer/pull/2085 ## 测试 功能上可以在子包版本低于构建依赖时进行告警,RDV已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 工程能力增加编译时版本校验功能 See merge request: cann/ops-transformer!2085 | 3 个月前 |
ops-transformer
🔥Latest News
- [2026/02] 新支持算子mhc_post、mhc_pre、mhc_res。
- [2026/01] 新支持算子grouped_matmul<<<>>>调用示例,方便用户自定义使用。
- [2026/01] 新支持算子fused_floyd_attention、fused_floyd_attention_grad、matmul_allto_all。
- [2025/12] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导。
- [2025/12] 支持transformer类onnx算子插件,包括NPUFlashAttention、NPUMultiHeadAttention、NPUMoeComputeExpertTokens等。
- [2025/12] 新支持算子kv_rms_norm_rope_cache、attention_update、attention_worker_scheduler、gather_pa_kv_cache、kv_quant_sparse_flash_attention、lightning_indexer_grad、mla_preprocess、mla_preprocess_v2、grouped_matmul_swiglu_quant_v2、attention_to_ffn、ffn_to_attention。
- [2025/12] 开源算子支持CANN Simulator仿真工具开发调试。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT/KirinX90系列产品。
- [2025/11] 新支持算子kv_quant_sparse_flash_attention、lightning_indexer、quant_lightning_indexer、sparse_flash_attention。
- [2025/11] 新支持示例算子rope_matrix和all_gather_add。
- [2025/11] 新增算子开发工程模板NpuOpsTransformerExt,无缝集成PyTorch张量操作,支持自动微分和GPU/NPU统一接口。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-transformer项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-transformer是CANN(Compute Architecture for Neural Networks)算子库中提供transformer类大模型计算的进阶算子库,包括attention类、moe类、mc2类等,覆盖各类attention、MoE计算、通算融合等场景,算子库在架构图中的位置如下。

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,通用命令如下,${tag_version}替换为分支标签名。以9.0.0分支源码下载为例:
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-transformer.git
git clone -b 9.0.0 https://gitcode.com/cann/ops-transformer.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。