本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
添加 sub_pipline_support.yaml 工作流配置 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5072 merge master into master 添加 sub_pipline_support.yaml 工作流配置 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 添加 sub_pipline_support.yaml 工作流配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2314 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5072 | 5 个月前 | |
通过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 | 6 个月前 | |
fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !4937 merge master into master fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1784 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4937 | 5 个月前 | |
distributebarrier算子在A5上context结构体切换 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge hccl_context_lyy into master distributebarrier算子在A5上context结构体切换 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 distributebarrier算子在A5上context结构体切换 # 代码检视报告 ## 基本信息 | 项目 | 内容 | |-----|-----| | Commit ID | eaa63da32ae4e3c706de387152a8b8d946c5a932 | | 提交说明 | distributebarrier算子在A5上context结构体切换 | | 检视范围 | C++安全规范 + 通用编码规范 + TOPK高频问题 | | 检视日期 | 2026-05-12 | --- ## 检视摘要 | 类别 | 问题数 | 严重级别 | |-----|-------|---------| | C++ 安全规范 | 0 | - | | C++ 通用规范 | 1 | 中 | | TOPK 高频问题 | 0 | - | | **总计** | **1** | **中危问题: 1** | --- ## 详细检视结果 ### 一、C++ 通用编码规范问题 #### 问题1: 未使用的头文件包含 [中] [规范2.3] **文件**: mc2/distribute_barrier_extend/op_host/op_tiling/distribute_barrier_extend_tiling.cpp **位置**: 行1827-1838 **风险代码**: cpp #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> **假设检验过程**: | 步骤 | 分析内容 | 自信值增量 | |-----|---------|-----------| | 头文件用途识别 | dlfcn.h: 动态加载, fcntl.h: 文件控制, sys/types.h: 系统类型定义 | +30% | | 代码引用检查 | 文件中未调用 dlopen/dlclose, open/fcntl, 未使用 pid_t 等类型 | +40% | | 规范违反 | cpp-general.md 2.3: 禁止包含用不到的头文件 | +40% | | **自信值** | **110%** | **存在风险** | **问题说明**: - 文件包含多个未使用的系统头文件和标准库头文件 - 增加编译依赖,可能导致不必要的重新编译 - 实际仅使用 <string> 和 <vector> (通过间接引用) **修复建议**: 删除以下未使用的头文件: cpp // 删除以下行 #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> // 保留实际使用的头文件 #include <string> // 用于 std::string #include <vector> // 可能通过其他头文件间接使用 **规范引用**: [cpp-general.md] 2.3 禁止包含用不到的头文件 --- ## 安全红线问题检视结果 ### Host侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | 除法操作除零保护 | ✅ 通过 | 所有除法操作除数来自TilingData,已校验非零 | | 数组访问越界保护 | ✅ 通过 | 数组索引均有边界判断或来自TilingData | | 整数运算溢出保护 | ✅ 通过 | 关键运算有业务约束保护 | | 指针操作判空 | ✅ 通过 | 属性获取和指针操作均有判空检查 | | 变量初始化 | ✅ 通过 | 成员变量在Init函数中正确初始化 | | 资源匹配 | ✅ 通过 | Kernel侧静态分配,无需释放 | ### Kernel侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | GM地址偏移用int64 | ✅ 通过 | 业务约束确保安全范围 | | 除法除零保护 | ✅ 通过 | 除数来自TilingData,符合排除规则 | | 数组索引校验 | ✅ 通过 | 索引访问有边界保护 | --- ## Kernel侧排除规则执行说明 根据 cpp-secure.md Kernel侧排除规则,以下情况在检视中自动排除: | 排除规则 | 排除原因 | 检视执行情况 | |---------|---------|-------------| | 除数来自TilingData | Tiling阶段已校验非零 | ✅ 已严格执行 | | 索引来自TilingData | Tiling阶段已校验范围 | ✅ 已严格执行 | | 循环边界内索引 | 循环条件保证范围 | ✅ 已严格执行 | --- ## TOPK高频问题检视结果 | TOPK问题 | 检视结果 | 说明 | |---------|---------|-----| | 函数返回值校验 | ✅ 通过 | 所有关键函数调用均有返回值检查 | | GetInputDesc获取Dtype | ✅ 通过 | 正确使用GetInputDesc获取数据类型 | | 属性从context获取 | ✅ 通过 | 属性正确从context获取,未通过CompileInfo传递 | | 属性类型与IR原型一致 | ✅ 通过 | int64_t与IR原型Int类型匹配 | | 外部输入校验 | ✅ 通过 | Tiling阶段有完整的输入校验 | | GM偏移用int64表示 | ✅ 通过 | 业务约束确保安全 | | 特殊值处理 | ✅ 通过 | 无特殊值计算场景 | | atomic累加清零 | ✅ 通过 | 无atomic操作 | | 通信算子核间同步 | ✅ 通过 | 有SyncAll同步 | | 宏定义变量冲突 | ✅ 通过 | 无风险宏定义 | --- ## 建议修复优先级 ### 中危问题(建议修复) **唯一待修复问题**: 删除未使用的头文件 - 文件: distribute_barrier_extend_tiling.cpp - 行: 1827-1838 - 操作: 删除8个未使用的头文件包含 - 影响: 减少编译依赖,提升代码整洁度 --- ## 总结 本次检视严格执行假设检验方法论和Kernel侧排除规则: **检视统计**: - 代码文件: 32个文件变更 - 检视重点: Tiling代码 + Kernel代码 - 发现问题: 1个中危问题(未使用头文件) - 安全红线: 全部通过 ✅ - TOPK问题: 全部通过 ✅ **整体评价**: 代码质量优秀,安全防护完善。Host侧和Kernel侧均符合安全红线要求。唯一发现的问题为代码整洁性问题(未使用头文件),不影响功能和安全。 **建议**: 删除 distribute_barrier_extend_tiling.cpp 中的未使用头文件,保持代码整洁。 --- ## 附录: 检视方法论 本次检视采用假设检验驱动方法论: | 阶段 | 执行情况 | |-----|---------| | 阶段1: 参数校验 | ✅ 已校验必需参数完整性 | | 阶段2: 规范学习 | ✅ 已完整阅读3份规范文档 | | 阶段3: 代码段识别 | ✅ 已划分代码段进行分析 | | 阶段4: 假设建立 | ✅ 对每个代码段建立H0/H1假设 | | 阶段5: 证据收集 | ✅ 按规范条款系统性收集证据 | | 阶段6: 有效性校验 | ✅ 已排除误报(应用排除规则) | | 阶段7: 决策判断 | ✅ 自信值超过60%才判定为风险 | | 阶段8: 报告生成 | ✅ 已生成完整检视报告 | **排除规则应用统计**: - Kernel侧除法排除: 3处 - Kernel侧索引排除: 5处 - 业务约束保护认定: 2处 --- *报告生成时间: 2026-05-12* *检视工具: ascendc-code-review skill* *规范版本: cpp-secure.md (47条), cpp-general.md (46条), ascendc-topk.md (13条)* ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2300 ## 测试 二级冒烟,泛化测试 ## 文档更新 更新了README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3730 | 5 个月前 | |
fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !4937 merge master into master fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1784 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4937 | 5 个月前 | |
修改CANNLab描述 Co-authored-by: git config --global user.name gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !5116 merge 20260511 into master 修改CANNLab描述 Created-by: gcw_CRjbEjwl Commit-by: git config --global user.name gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 云开发环境名称由WebIDE更正为CANNLab ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_install.md QUICKSTART.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!5116 | 5 个月前 | |
Author: Yang Zeheng | 5 个月前 | |
fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !4937 merge master into master fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 fix: 修改common/FIA/IFA/PFA算子下面的arch32为arch22 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1784 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4937 | 5 个月前 | |
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/ 和 common/src/tiling_base/ 合并到 common/include/op_host/ 和 common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4870 | 5 个月前 | |
gmm类算子torch通路资产剥离 Co-authored-by: wangmingli<wangmingli6@h-partners.com> # message auto-generated for no-merge-commit merge: !4654 merge master into master gmm类算子torch通路资产剥离 Created-by: wangmingli Commit-by: wangmingli Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> gmm类算子torch通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2263 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验证用例通过,不影响算子功能 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4654 | 5 个月前 | |
distributebarrier算子在A5上context结构体切换 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge hccl_context_lyy into master distributebarrier算子在A5上context结构体切换 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 distributebarrier算子在A5上context结构体切换 # 代码检视报告 ## 基本信息 | 项目 | 内容 | |-----|-----| | Commit ID | eaa63da32ae4e3c706de387152a8b8d946c5a932 | | 提交说明 | distributebarrier算子在A5上context结构体切换 | | 检视范围 | C++安全规范 + 通用编码规范 + TOPK高频问题 | | 检视日期 | 2026-05-12 | --- ## 检视摘要 | 类别 | 问题数 | 严重级别 | |-----|-------|---------| | C++ 安全规范 | 0 | - | | C++ 通用规范 | 1 | 中 | | TOPK 高频问题 | 0 | - | | **总计** | **1** | **中危问题: 1** | --- ## 详细检视结果 ### 一、C++ 通用编码规范问题 #### 问题1: 未使用的头文件包含 [中] [规范2.3] **文件**: mc2/distribute_barrier_extend/op_host/op_tiling/distribute_barrier_extend_tiling.cpp **位置**: 行1827-1838 **风险代码**: cpp #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> **假设检验过程**: | 步骤 | 分析内容 | 自信值增量 | |-----|---------|-----------| | 头文件用途识别 | dlfcn.h: 动态加载, fcntl.h: 文件控制, sys/types.h: 系统类型定义 | +30% | | 代码引用检查 | 文件中未调用 dlopen/dlclose, open/fcntl, 未使用 pid_t 等类型 | +40% | | 规范违反 | cpp-general.md 2.3: 禁止包含用不到的头文件 | +40% | | **自信值** | **110%** | **存在风险** | **问题说明**: - 文件包含多个未使用的系统头文件和标准库头文件 - 增加编译依赖,可能导致不必要的重新编译 - 实际仅使用 <string> 和 <vector> (通过间接引用) **修复建议**: 删除以下未使用的头文件: cpp // 删除以下行 #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> // 保留实际使用的头文件 #include <string> // 用于 std::string #include <vector> // 可能通过其他头文件间接使用 **规范引用**: [cpp-general.md] 2.3 禁止包含用不到的头文件 --- ## 安全红线问题检视结果 ### Host侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | 除法操作除零保护 | ✅ 通过 | 所有除法操作除数来自TilingData,已校验非零 | | 数组访问越界保护 | ✅ 通过 | 数组索引均有边界判断或来自TilingData | | 整数运算溢出保护 | ✅ 通过 | 关键运算有业务约束保护 | | 指针操作判空 | ✅ 通过 | 属性获取和指针操作均有判空检查 | | 变量初始化 | ✅ 通过 | 成员变量在Init函数中正确初始化 | | 资源匹配 | ✅ 通过 | Kernel侧静态分配,无需释放 | ### Kernel侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | GM地址偏移用int64 | ✅ 通过 | 业务约束确保安全范围 | | 除法除零保护 | ✅ 通过 | 除数来自TilingData,符合排除规则 | | 数组索引校验 | ✅ 通过 | 索引访问有边界保护 | --- ## Kernel侧排除规则执行说明 根据 cpp-secure.md Kernel侧排除规则,以下情况在检视中自动排除: | 排除规则 | 排除原因 | 检视执行情况 | |---------|---------|-------------| | 除数来自TilingData | Tiling阶段已校验非零 | ✅ 已严格执行 | | 索引来自TilingData | Tiling阶段已校验范围 | ✅ 已严格执行 | | 循环边界内索引 | 循环条件保证范围 | ✅ 已严格执行 | --- ## TOPK高频问题检视结果 | TOPK问题 | 检视结果 | 说明 | |---------|---------|-----| | 函数返回值校验 | ✅ 通过 | 所有关键函数调用均有返回值检查 | | GetInputDesc获取Dtype | ✅ 通过 | 正确使用GetInputDesc获取数据类型 | | 属性从context获取 | ✅ 通过 | 属性正确从context获取,未通过CompileInfo传递 | | 属性类型与IR原型一致 | ✅ 通过 | int64_t与IR原型Int类型匹配 | | 外部输入校验 | ✅ 通过 | Tiling阶段有完整的输入校验 | | GM偏移用int64表示 | ✅ 通过 | 业务约束确保安全 | | 特殊值处理 | ✅ 通过 | 无特殊值计算场景 | | atomic累加清零 | ✅ 通过 | 无atomic操作 | | 通信算子核间同步 | ✅ 通过 | 有SyncAll同步 | | 宏定义变量冲突 | ✅ 通过 | 无风险宏定义 | --- ## 建议修复优先级 ### 中危问题(建议修复) **唯一待修复问题**: 删除未使用的头文件 - 文件: distribute_barrier_extend_tiling.cpp - 行: 1827-1838 - 操作: 删除8个未使用的头文件包含 - 影响: 减少编译依赖,提升代码整洁度 --- ## 总结 本次检视严格执行假设检验方法论和Kernel侧排除规则: **检视统计**: - 代码文件: 32个文件变更 - 检视重点: Tiling代码 + Kernel代码 - 发现问题: 1个中危问题(未使用头文件) - 安全红线: 全部通过 ✅ - TOPK问题: 全部通过 ✅ **整体评价**: 代码质量优秀,安全防护完善。Host侧和Kernel侧均符合安全红线要求。唯一发现的问题为代码整洁性问题(未使用头文件),不影响功能和安全。 **建议**: 删除 distribute_barrier_extend_tiling.cpp 中的未使用头文件,保持代码整洁。 --- ## 附录: 检视方法论 本次检视采用假设检验驱动方法论: | 阶段 | 执行情况 | |-----|---------| | 阶段1: 参数校验 | ✅ 已校验必需参数完整性 | | 阶段2: 规范学习 | ✅ 已完整阅读3份规范文档 | | 阶段3: 代码段识别 | ✅ 已划分代码段进行分析 | | 阶段4: 假设建立 | ✅ 对每个代码段建立H0/H1假设 | | 阶段5: 证据收集 | ✅ 按规范条款系统性收集证据 | | 阶段6: 有效性校验 | ✅ 已排除误报(应用排除规则) | | 阶段7: 决策判断 | ✅ 自信值超过60%才判定为风险 | | 阶段8: 报告生成 | ✅ 已生成完整检视报告 | **排除规则应用统计**: - Kernel侧除法排除: 3处 - Kernel侧索引排除: 5处 - 业务约束保护认定: 2处 --- *报告生成时间: 2026-05-12* *检视工具: ascendc-code-review skill* *规范版本: cpp-secure.md (47条), cpp-general.md (46条), ascendc-topk.md (13条)* ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2300 ## 测试 二级冒烟,泛化测试 ## 文档更新 更新了README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3730 | 5 个月前 | |
mhc_pre_sinkhorn算子性能优化增加切M分支 Co-authored-by: weixin_44156099<heyuhang20@h-partners.com> # message auto-generated for no-merge-commit merge: !5033 merge fix_mhc_pre_sinkhorn into master mhc_pre_sinkhorn算子性能优化增加切M分支 Created-by: weixin_44156099 Commit-by: weixin_44156099 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> mhc_pre_sinkhorn算子修复性能问题,使用切M分支,针对n*c 场景提升性能 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2329 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 精度泛化测试:  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5033 | 5 个月前 | |
修正moe_gating_top_k算子文档说明 Co-authored-by: ZhouChuping<zhouchuping1@huawei.com> # message auto-generated for no-merge-commit merge: !5124 merge master into master 修正moe_gating_top_k算子文档说明 Created-by: ZhouChuping Commit-by: ZhouChuping Merged-by: cann-robot Description: ## 描述 修正moe_gating_top_k算子文档说明 ## 关联的Issue [#2339](https://gitcode.com/cann/ops-transformer/issues/2339) ## 测试 不涉及 ## 文档更新 更新了moe/moe_gating_top_k/docs/aclnnMoeGatingTopK.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5124 | 5 个月前 | |
整改遗漏的OP_LOGE日志 Co-authored-by: LuckySun<sunwenlong8@huawei.com> # message auto-generated for no-merge-commit merge: !5101 merge 0509 into master 整改遗漏的OP_LOGE日志 Created-by: LuckySun Commit-by: LuckySun Merged-by: cann-robot Description: ## 描述 整改遗漏的OP_LOGE ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2108 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:日志整改 See merge request: cann/ops-transformer!5101 | 5 个月前 | |
distributebarrier算子在A5上context结构体切换 Co-authored-by: Yuyu-Li<liyuyu6@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge hccl_context_lyy into master distributebarrier算子在A5上context结构体切换 Created-by: Yuyu-Li Commit-by: Yuyu-Li Merged-by: cann-robot Description: ## 描述 distributebarrier算子在A5上context结构体切换 # 代码检视报告 ## 基本信息 | 项目 | 内容 | |-----|-----| | Commit ID | eaa63da32ae4e3c706de387152a8b8d946c5a932 | | 提交说明 | distributebarrier算子在A5上context结构体切换 | | 检视范围 | C++安全规范 + 通用编码规范 + TOPK高频问题 | | 检视日期 | 2026-05-12 | --- ## 检视摘要 | 类别 | 问题数 | 严重级别 | |-----|-------|---------| | C++ 安全规范 | 0 | - | | C++ 通用规范 | 1 | 中 | | TOPK 高频问题 | 0 | - | | **总计** | **1** | **中危问题: 1** | --- ## 详细检视结果 ### 一、C++ 通用编码规范问题 #### 问题1: 未使用的头文件包含 [中] [规范2.3] **文件**: mc2/distribute_barrier_extend/op_host/op_tiling/distribute_barrier_extend_tiling.cpp **位置**: 行1827-1838 **风险代码**: cpp #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> **假设检验过程**: | 步骤 | 分析内容 | 自信值增量 | |-----|---------|-----------| | 头文件用途识别 | dlfcn.h: 动态加载, fcntl.h: 文件控制, sys/types.h: 系统类型定义 | +30% | | 代码引用检查 | 文件中未调用 dlopen/dlclose, open/fcntl, 未使用 pid_t 等类型 | +40% | | 规范违反 | cpp-general.md 2.3: 禁止包含用不到的头文件 | +40% | | **自信值** | **110%** | **存在风险** | **问题说明**: - 文件包含多个未使用的系统头文件和标准库头文件 - 增加编译依赖,可能导致不必要的重新编译 - 实际仅使用 <string> 和 <vector> (通过间接引用) **修复建议**: 删除以下未使用的头文件: cpp // 删除以下行 #include <dlfcn.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <cmath> #include <cstdio> #include <cstdlib> #include <queue> // 保留实际使用的头文件 #include <string> // 用于 std::string #include <vector> // 可能通过其他头文件间接使用 **规范引用**: [cpp-general.md] 2.3 禁止包含用不到的头文件 --- ## 安全红线问题检视结果 ### Host侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | 除法操作除零保护 | ✅ 通过 | 所有除法操作除数来自TilingData,已校验非零 | | 数组访问越界保护 | ✅ 通过 | 数组索引均有边界判断或来自TilingData | | 整数运算溢出保护 | ✅ 通过 | 关键运算有业务约束保护 | | 指针操作判空 | ✅ 通过 | 属性获取和指针操作均有判空检查 | | 变量初始化 | ✅ 通过 | 成员变量在Init函数中正确初始化 | | 资源匹配 | ✅ 通过 | Kernel侧静态分配,无需释放 | ### Kernel侧红线问题 | 红线要求 | 检视结果 | 说明 | |---------|---------|-----| | GM地址偏移用int64 | ✅ 通过 | 业务约束确保安全范围 | | 除法除零保护 | ✅ 通过 | 除数来自TilingData,符合排除规则 | | 数组索引校验 | ✅ 通过 | 索引访问有边界保护 | --- ## Kernel侧排除规则执行说明 根据 cpp-secure.md Kernel侧排除规则,以下情况在检视中自动排除: | 排除规则 | 排除原因 | 检视执行情况 | |---------|---------|-------------| | 除数来自TilingData | Tiling阶段已校验非零 | ✅ 已严格执行 | | 索引来自TilingData | Tiling阶段已校验范围 | ✅ 已严格执行 | | 循环边界内索引 | 循环条件保证范围 | ✅ 已严格执行 | --- ## TOPK高频问题检视结果 | TOPK问题 | 检视结果 | 说明 | |---------|---------|-----| | 函数返回值校验 | ✅ 通过 | 所有关键函数调用均有返回值检查 | | GetInputDesc获取Dtype | ✅ 通过 | 正确使用GetInputDesc获取数据类型 | | 属性从context获取 | ✅ 通过 | 属性正确从context获取,未通过CompileInfo传递 | | 属性类型与IR原型一致 | ✅ 通过 | int64_t与IR原型Int类型匹配 | | 外部输入校验 | ✅ 通过 | Tiling阶段有完整的输入校验 | | GM偏移用int64表示 | ✅ 通过 | 业务约束确保安全 | | 特殊值处理 | ✅ 通过 | 无特殊值计算场景 | | atomic累加清零 | ✅ 通过 | 无atomic操作 | | 通信算子核间同步 | ✅ 通过 | 有SyncAll同步 | | 宏定义变量冲突 | ✅ 通过 | 无风险宏定义 | --- ## 建议修复优先级 ### 中危问题(建议修复) **唯一待修复问题**: 删除未使用的头文件 - 文件: distribute_barrier_extend_tiling.cpp - 行: 1827-1838 - 操作: 删除8个未使用的头文件包含 - 影响: 减少编译依赖,提升代码整洁度 --- ## 总结 本次检视严格执行假设检验方法论和Kernel侧排除规则: **检视统计**: - 代码文件: 32个文件变更 - 检视重点: Tiling代码 + Kernel代码 - 发现问题: 1个中危问题(未使用头文件) - 安全红线: 全部通过 ✅ - TOPK问题: 全部通过 ✅ **整体评价**: 代码质量优秀,安全防护完善。Host侧和Kernel侧均符合安全红线要求。唯一发现的问题为代码整洁性问题(未使用头文件),不影响功能和安全。 **建议**: 删除 distribute_barrier_extend_tiling.cpp 中的未使用头文件,保持代码整洁。 --- ## 附录: 检视方法论 本次检视采用假设检验驱动方法论: | 阶段 | 执行情况 | |-----|---------| | 阶段1: 参数校验 | ✅ 已校验必需参数完整性 | | 阶段2: 规范学习 | ✅ 已完整阅读3份规范文档 | | 阶段3: 代码段识别 | ✅ 已划分代码段进行分析 | | 阶段4: 假设建立 | ✅ 对每个代码段建立H0/H1假设 | | 阶段5: 证据收集 | ✅ 按规范条款系统性收集证据 | | 阶段6: 有效性校验 | ✅ 已排除误报(应用排除规则) | | 阶段7: 决策判断 | ✅ 自信值超过60%才判定为风险 | | 阶段8: 报告生成 | ✅ 已生成完整检视报告 | **排除规则应用统计**: - Kernel侧除法排除: 3处 - Kernel侧索引排除: 5处 - 业务约束保护认定: 2处 --- *报告生成时间: 2026-05-12* *检视工具: ascendc-code-review skill* *规范版本: cpp-secure.md (47条), cpp-general.md (46条), ascendc-topk.md (13条)* ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2300 ## 测试 二级冒烟,泛化测试 ## 文档更新 更新了README.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3730 | 5 个月前 | |
restore UT for 9 verified operators Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !5186 merge ut_restore/consolidated_success into master restore UT for 9 verified operators Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: 基于各算子独立 PR 的 CI 验证结果,恢复 9 个通过验证的算子 UT: 通过(ut: False → ut: True): - flash_attention_score - flash_attention_score_grad - lightning_indexer - sparse_flash_attention - quant_lightning_indexer - kv_quant_sparse_flash_attention - mla_prolog - mla_prolog_v2 - mla_prolog_v3 未通过 CI 验证,保持 ut: False: - swin_attention_ffn - swin_transformer_ln_qkv See merge request: cann/ops-transformer!5186 | 5 个月前 | |
训推归一-flash_attn Co-authored-by: Yuanfeng_HW<yuanfeng24@huawei.com> # message auto-generated for no-merge-commit merge: !5014 merge 5/7-se into master 训推归一-flash_attn Created-by: Yuanfeng_HW Commit-by: Yuanfeng_HW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 需求:新增新接口算子flash_attn,该算子支持非量化场景下FA训练正向与推理功能 具体支持功能: 1、基础端到端功能,tiling + kernel + interface (继承 + 新开发) 1.1 基础layout layout_q: BSND dtype_q BF16/FP16 layout_kv: BSND dtype_kv BF16/FP16 layout_out: BSND dtype_out BF16/FP16 1.2 使用aicpu MetaData 输入进行负载均衡调度 1.3 Metadata参数支持不传 1.4 PTA接口放Transformer仓 2、支持 seqused_q, seqused_kv (继承 + int32 适配) 3、 layout 泛化支持(含PageAttention)(继承 + cu_seqlens_q、cu_seqlens_kv shape dtype 适配 ) 4、mask 支持 mode 1 , 3 5、支持行无效 (继承) 6、softmax_scale 支持None输入(新开发) 7、支持softmaxLse 输出,支持全量layout (继承功能) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2336 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5014 | 5 个月前 | |
更新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 | 9 个月前 | |
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3578 | 6 个月前 | |
通过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 | 6 个月前 | |
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!3578 | 6 个月前 | |
Transformer 更新Latest News Co-authored-by: lidongsheng<lidongsheng43@huawei.com> # message auto-generated for no-merge-commit merge: !771 merge docs into master Transformer 更新Latest News Created-by: qq_46353993 Commit-by: lidongsheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!771 | 8 个月前 | |
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4314 | 5 个月前 | |
docs: 补充生态算子精度标准引用 Co-authored-by: chaotang233<tangchao47@hisilicon.com> # message auto-generated for no-merge-commit merge: !5006 merge master into master docs: 补充生态算子精度标准引用 Created-by: chaotang233 Commit-by: chaotang233 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加精度标准的索引,确保仓可以引用到精度标准 会议纪要:https://etherpad-cann.meeting.osinfra.cn/p/TSC  ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5006 | 5 个月前 | |
init | 1 年前 | |
规范化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 | 6 个月前 | |
修改CANNLab描述 Co-authored-by: git config --global user.name gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !5116 merge 20260511 into master 修改CANNLab描述 Created-by: gcw_CRjbEjwl Commit-by: git config --global user.name gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 云开发环境名称由WebIDE更正为CANNLab ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> quick_install.md QUICKSTART.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!5116 | 5 个月前 | |
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 | 6 个月前 | |
支持按模板参数编译算子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 | 7 个月前 | |
更新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 | 9 个月前 | |
fix: 修复asan和ut的强关联 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !5027 merge master into master fix: 修复asan和ut的强关联 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ## 描述 asan和ut强关联(跑ut时默认开启asan),会导致部分缺少asan环境的mc2 ut执行失败,特此修复 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2280 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5027 | 5 个月前 | |
增加fused_infer_attention_score算子 splitefuse部分pse输入的校验 Co-authored-by: wangsong96<wangsong109@huawei.com> # message auto-generated for no-merge-commit merge: !4141 merge master into master 增加fused_infer_attention_score算子 splitefuse部分pse输入的校验 Created-by: wangsong96 Commit-by: wangsong96 Merged-by: cann-robot Description: ## 描述 1、增加了推理FA算子splitefuse部分对于pseshift这个可选输入的校验; 2、与海思对齐后,去除了pfa组件了部分classifyrule ## 关联的Issue 关联Issue [#1877](https://gitcode.com/cann/ops-transformer/issues/1877) ## 测试 二级冒烟、算子泛化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4141 | 5 个月前 | |
移除gawk依赖,使用shell内置命令替代 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4704 merge master into master 移除gawk依赖,使用shell内置命令替代 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 移除gawk依赖,使用shell内置命令替代 资料描述错误修改 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2119 https://gitcode.com/cann/ops-transformer/issues/2049 https://gitcode.com/cann/ops-transformer/issues/2149 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4704 | 5 个月前 | |
前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4532 merge master into master 前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 1、手动安装,最小化环境依赖不清晰 资料调整 2、SOC 参数错误应更新 build.sh 支持列表并完善文档说明 3、requirement.txt Python 依赖冲突应显式声明版本约束与缺失依赖 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2018 https://gitcode.com/cann/ops-transformer/issues/2017 https://gitcode.com/cann/ops-transformer/issues/2016 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4532 | 5 个月前 | |
修复CANN 8.5.2 补丁版本的兼容性问题 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2959 merge version_cmake into master 修复CANN 8.5.2 补丁版本的兼容性问题 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 安装8.5.2的ops包和toolkit包后,单独升级9.0.0的transformer包,再安装hccl的8.5.2的包会报错要求hccl版本大于9.0 现在修改这个限制为8.5 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!2959 | 6 个月前 | |
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 | 7 个月前 |
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}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码 。
git clone -b ${tag_version} https://gitcode.com/cann/ops-transformer.git
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。