本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
| Files | Last commit | Last update |
|---|---|---|
修改compile.sh,kirin编包任务回退到全量编译 Co-authored-by: weixin_46515057<lidaoshuai@h-partners.com> # message auto-generated for no-merge-commit merge: !13548 merge master into master 修改compile.sh,kirin编包任务回退到全量编译 Created-by: weixin_46515057 Commit-by: weixin_46515057 Merged-by: cann-robot Description: 修改compile.sh,kirin编包任务回退到全量编译 See merge request: cann/ops-transformer!13548 | 29 days ago | |
区分sparseMode0和1在tnd&d=256下的功能 Co-authored-by: wym_666<wangyumei11@huawei.com> # message auto-generated for no-merge-commit merge: !13401 merge sparseMode0 into master 区分sparseMode0和1在tnd&d=256下的功能 Created-by: wym_666 Commit-by: wym_666 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 保持sparseMode=0时tnd&d=256场景下不支持外传mask,以区分sparseMode=1 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> atk和rdv ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了attention/fused_infer_attention_score/docs/aclnnFusedInferAttentionScoreV3.md和attention/fused_infer_attention_score/docs/aclnnFusedInferAttentionScoreV4.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13401 | 27 days ago | |
删除cmake/scripts/get_soc_version.py里按arch排除soc逻辑的死代码 | 26 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 28 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 28 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 28 days ago | |
bsa接口文档及示例修复 Co-authored-by: IceBearPolar<xuxuepeng4@huawei.com> # message auto-generated for no-merge-commit merge: !13293 merge master into master bsa接口文档及示例修复 Created-by: IceBearPolar Commit-by: IceBearPolar Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.修改文档拼写错误 attentionMaskOptional应为attenMaskOptional 2.示例参数传递 aclrtDestroyStream(stream)修复为aclrtDestroyStream(*stream) 3.修复文档 约束说明中错误描述innerPrecise ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#5774](https://gitcode.com/cann/ops-transformer/issues/5774) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> bsa example 正常运行  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/block_sparse_attention/README.md attention/block_sparse_attention/docs/aclnnBlockSparseAttention.md attention/block_sparse_attention/docs/aclnnBlockSparseAttentionV2.md attention/block_sparse_attention/docs/aclnnBlockSparseAttentionV3.md experimental/attention/block_sparse_attention/README.md experimental/attention/block_sparse_attention/docs/aclnnBlockSparseAttention.md experimental/attention/block_sparse_attention/docs/aclnnBlockSparseAttentionV2.md experimental/attention/block_sparse_attention/docs/aclnnBlockSparseAttentionV3.md ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13293 | 29 days ago | |
fix(ffn/ffn_worker_batching): monolithic 路径补齐 schedule_context dim[0]>=1024 校验 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !13559 merge fix-ffn-wb-context-check into master fix(ffn/ffn_worker_batching): monolithic 路径补齐 schedule_context dim[0]>=1024 校验 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 monolithic(A2/A3,ascend910b/910_93)路径 tiling 的 CheckInputParam 只校验 dtype==INT8 与 rank==1,缺少 schedule_context dim[0] >= 1024 校验;而 kernel 侧(op_kernel/ffn_wb_get_schedule_context.h)无条件读取固定 1024B。直接 ACLNN/GE 调用传入 dim[0] < 1024(含空张量)时,内核仍下发并 GM 越界读 1024B,导致静默错算或设备断言(910_93 实测见关联 issue)。 本 PR 对齐 arch35 已有检查(ffn_worker_batching_tiling_arch35.cpp): - 新增常量 CONTEXT_BYTES = sizeof(aicpu::ScheduleContext)(static_assert 锁定 1024B,与 kernel 侧 STRUCT_LENGTH 对齐); - CheckInputParam 在 rank 校验后追加 dim[0] >= CONTEXT_BYTES 检查,空输入在下发 kernel 前拒绝; - 补充 monolithic 路径边界 UT,覆盖 910B 与 910_93。 合法调用(>=1024B,含 torch/cpp wrapper 路径)零影响;V1/V2 接口共用该 tiling,一次修复双入口生效。 ## 关联的Issue Closes #5778 ## 测试 - bash build.sh -u --ops=ffn_worker_batching --incremental -j16:40 用例 39 过;唯一失败 ffn_wb_tiling_arch35_async_layer_contract 为 master 基线存量失败(已 stash 改动复跑基线验证,与本修复无关); - 新增用例 monolithic_review_context_length_contract(dim[0] ∈ {0,1,1023} 拒绝;{1024,1056} 通过,soc 覆盖 Ascend910B/Ascend910_93)通过; - 现有 A2/A3 golden 零回归; - pre-commit run --files 全部通过。 说明:为满足 CodeCheck_precommit 门禁,第三笔提交按钩子要求对两文件执行了全文件 clang-format 与 end-of-file 修复,包含与本次功能改动无关的历史行指针声明风格重排(T *p → T* p,22 行/文件)及 tiling.cpp 文件末尾补换行(master 存量缺失),均为纯格式化,无语义变化。 ## 文档更新 无需更新:接口对 schedule_context "至少 1024 字节" 的既有约束未变,本次仅补齐 host 侧校验。 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13559 | 27 days ago | |
perf(gmmfr): use InitValue for legacy output initialization Co-authored-by: dujunyi<dujunyi0304@buaa.edu.cn> # message auto-generated for no-merge-commit merge: !13453 merge fix/gmmfr-initvalue-only into master perf(gmmfr): use InitValue for legacy output initialization Created-by: weixin_52692432 Commit-by: dujunyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 优化fp32输出时候的prologue清0操作 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5620 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 + 算子泛化测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 暂无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!13453 | 27 days ago | |
fix(pre-commit): 全仓代码规范整改——ffn/gmm/mamba/mhc Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13533 merge other into master fix(pre-commit): 全仓代码规范整改——ffn/gmm/mamba/mhc Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——ffn/gmm/mamba/mhc/posembedding 目录。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:1391 个文件,+32218/-31168 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13533 | 28 days ago | |
rollback hcclgetfunc. Co-authored-by: qq_43844249<fanglin17@huawei.com> # message auto-generated for no-merge-commit merge: !13551 merge rollback-getrankgraph into master rollback hcclgetfunc. Created-by: qq_43844249 Commit-by: qq_43844249 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> # 代码检视报告 | 项目 | 内容 | | ---- | ---- | | **检视对象** | 提交 86a10178e096282b30b4eaf6f1474421ca42050b(rollback hcclgetfunc.) | | **作者 / 提交日期** | qq_43844249 / 2026-10-10 | | **分支** | rollback-getrankgraph(父提交 36c9085ab) | | **变更规模** | 26 个文件,+235 / -914 行 | | **检视人** | CANNBot | | **检视日期** | 2026-10-10(共 2 轮:初检 + 修复后复核) | | **检视依据** | 假设检验方法论;git 考古(特性链溯源至基线 b53346fc9~1);全仓 grep 终验 | --- ## 1. 提交概述 ### 1.1 提交意图 回滚"通信算法表 + 选择器"特性链,恢复为固定 HCCL 算法名(AllGather=level0:fullmesh、AlltoAll=level0:fullmesh;level1:pairwise、ReduceScatter=level0:fullmesh),并清理该特性在 mc2_hcom_topo_info 中遗留的死代码。 ### 1.2 提交构成 本提交 = 初版回滚 f5a00f65e(+178/-712)+ 检视修复 4 项(+1/-146)+ clang-format(PointerAlignment: Left,仅指针风格)+ commit message 修正。 ### 1.3 被回滚的特性链(历史溯源) | 提交 | 说明 | | ---- | ---- | | b53346fc9 | get comm topo and select comm alg.(引入 Mc2CommAlgoSelector;扩展 mc2_hcom_topo_info 新增 CommGetNetLayersByGroup/CommGetTopoTypeByLayer) | | a56ee5223 | matmul_reduce_scatter_v2:AICPU 且 rankSize=16 时设置 InsReduceScatterParallelMesh1DNHR(当时无覆盖,功能有效) | | 719470d81 | MatmulReduceScatterV2 切换自适应通信算法选择(删除 16p 直设) | | a04ebab8d / 253df0330 | matmulalltoall 接入选择器 / 更换通信算法表 | | 7f104bda9 / 84316100a / 8a43d451e | AGMM 填充 AllGather 通信算法表 / arch35 依据通信数据动态选择 / 适配 ASC API 变更 | | 6ed79879a / 70357e020 | change-alg-table / fix-ci(重新加回 16p 直设,但同时保留 algoName = rsConfig 覆盖 → **16p 优化自此失效**) | | f5a00f65e | rooback hcclgetfunc.(初版回滚,遗留 4 项问题,见 §3) | --- ## 2. 提交内容明细 ### 2.1 删除(特性链产物,-409 行) - mc2/common/utils/mc2_comm_algo_selector.{h,cpp}:过滤式算法选择器 - mc2/all_gather_matmul_v2/.../arch35/all_gather_comm_algo_table.{h,cpp} - mc2/matmul_allto_all/.../common/allto_all_comm_algo_table.{h,cpp} - mc2/matmul_reduce_scatter_v2/.../arch35/reduce_scatter_comm_algo_table.{h,cpp} - mc2/common/CMakeLists.txt 同步移除 mc2_comm_algo_selector.cpp ### 2.2 恢复固定算法名(与基线 b53346fc9~1 行为一致) - AGMM V1 A5 GetAlgConfig:直接返回 "AllGather=level0:fullmesh" - AGMM V2 / quant_bmm:经 v2 基类静态成员 ALLGATHER_DEFAULT_ALGO_NAME(all_gather_matmul_tiling_base_v2.h:60)传入构造函数 - allto_all 六处(fp/kc/mx × allto_all_matmul/matmul_allto_all):恢复 create(..., AlgConfigType::ALL_TO_ALL) - reduce_scatter 两处:恢复 SetAlgConfig(rsConfig) 基线语义(经修复,见 §4) ### 2.3 死代码清理(检视修复,见 §4) mc2_hcom_topo_info.{h,cpp} 及 UT mocker 中无调用方的层拓扑查询接口链。 ### 2.4 格式化 T *x → T* x(符合 .clang-format:PointerAlignment: Left、DerivePointerAlignment: false),零语义变化。 --- ## 3. 第 1 轮检视发现(针对初版回滚 f5a00f65e) | # | 严重度 | 问题 | 位置 | | - | ------ | ---- | ---- | | 1 | **中** | 16p AICPU 特化算法被回滚遗留的 else { SetAlgConfig(rsConfig); } 覆盖:isPeerOnly_ 仅 CCU 模式可触发,AICPU 模式必走 else 分支,a56ee5223 引入的 InsReduceScatterParallelMesh1DNHR(rankDim==16)被覆盖回默认值,优化实际失效;该 else 分支本身冗余(构造函数已传入 rsConfig) | matmul_reduce_scatter_v2_tiling.cpp、quant_bmm_reduce_scatter_tiling.cpp | | 2 | **中** | 回滚不彻底:MC2HcomTopology::CommGetNetLayersByGroup/CommGetTopoTypeByLayer(b53346fc9 为选择器新增)在主树零调用,仅 UT mocker 为 mock 它们而存在 | mc2_hcom_topo_info.h:41-42、.cpp:349-403 | | 3 | 低 | "AllGather=level0:fullmesh" 双处重复定义(v2 基类静态成员与 A5 函数内局部 constexpr 同名常量) | all_gather_matmul_tiling_base_v2.h:60、all_gather_matmul_tiling_a5.cpp:45 | | 4 | 低 | commDataBytes 计算仅剩日志用途(原为选择器输入,回滚未清理) | all_gather_matmul_tiling_v2.cpp:221-224、all_gather_quant_bmm_tiling.cpp:512-517 | | 5 | 低 | commit message 拼写错误:"rooback hcclgetfunc." | — | | 6 | 信息 | 回滚混入大量指针重排版,功能与格式化耦合(+178 行中约半数为纯格式化) | — | 初检通过项(无需修复):全仓无 selector/算法表残留引用;AGMM/allto_all 回滚行为与基线逐函数比对一致;AllGatherQuantBmmTiling 继承 v2 基类、ALLGATHER_DEFAULT_ALGO_NAME 可正确解析;无 UT 依赖被删选择器(无测试设置 topoType/layerNum mock key);Mc2CcTilingConfigBuilder::create 复用既有 const std::string& 重载。 --- ## 4. 修复内容(f5a00f65e → 86a10178e,delta +61/-206) | 修复 | 内容 | 验证结论 | | ---- | ---- | ---- | | 问题 1 | 删除两个 reduce_scatter 文件中冗余的 else { SetAlgConfig(rsConfig); } 分支 | 16p 特化恢复生效,行为矩阵见 §6 | | 问题 2 | 删除 CommGetNetLayersByGroup/CommGetTopoTypeByLayer 及配套:私有 helper CallCommGetNetLayers/CallCommGetInstTopoTypeByNetLayer、FuncGetNetLayers typedef、getNetLayers_ 成员、HCCL_GET_NET_LAYERS_NAME 常量、构造函数加载与告警;同步删除 UT mocker 对应 4 个 mock | 全仓 grep 零残留;mocker 与裁剪后类声明一一对应 | | 问题 3 | A5 GetAlgConfig 恢复基线写法:直接 return "AllGather=level0:fullmesh"; | v2 侧保留唯一静态成员,跨包不共享(V1/V2 基类同名,同 TU 引入会重定义冲突) | | 问题 4 | 删除 v2 与 quant_bmm 的 commDataBytes/commKValue/commDtypeSize 及其 OP_LOGI | EVEN_ALIGN(余 11 处)、commEngine、isFp4_ 均仍有其他使用 | | 问题 5 | commit message 修正为 "rollback hcclgetfunc." | — | --- ## 5. 第 2 轮复核结论(针对 86a10178e 终态) ### 5.1 问题闭环 上轮 5 项问题全部闭环(4 项代码修复 + 1 项 message 修正),逐 hunk 比对 delta 确认无遗漏、无回归。 ### 5.2 新增检查项(均通过) - **mocker 一致性**:剩余 11 个 mock 方法与裁剪后类声明完全对应(含 BUILD_OPEN_PROJECT 分支的 CallHcomGetRankSizeEx/CallHcomGetL0TopoTypeEx),无悬空定义;mocker 不实现 CallCommGetInstSizeByNetLayer,与 UT 按 BUILD_OPEN_PROJECT 编译一致 - **clang-format 影响**:仅指针风格变化,头文件/实现/mocker 三方签名风格统一,无字符串/注释重排等语义风险 - **保留项正确性**:getTopoTypeByLayer_/FuncGetTopoTypeByLayer/HCCL_GET_TOPO_TYPE_NAME 保留(CallHcomGetL0TopoTypeEx → TryGetGroupTopoType 在用,experimental 树依赖后者);构造函数 fail-close 放宽语义(getRankSize_/getInstSize_ 仅告警)为原作者 ISSUE-001 有意设计,不回退 - **回滚完整性复核**:selector/3 张算法表无任何 include、CMake、符号残留 --- ## 6. 关键行为矩阵(reduce_scatter SetMc2Hcomm 终态) 前置:构造函数以 rsConfig 初始化(isA2APath_ ? "AlltoAll=level0:fullmesh" : "ReduceScatter=level0:fullmesh")。 | 场景 | commMode | rankDim | 生效算法 | 依据 | | ---- | -------- | ------- | -------- | ---- | | AICPU 16 卡 | AICPU | 16 | InsReduceScatterParallelMesh1DNHR | matmul_rs L122-125 / quant_bmm L474-476 | | AICPU 其他卡数 | AICPU | ≠16 | rsConfig(构造默认) | — | | CCU peer-only | CCU | PEER_ONLY_RANK_SIZE | PEER_ONLY_ALGORITHM + SetSkipLocalRankCopy(1) | matmul_rs L134-139 / quant_bmm L487-491 | | CCU 常规 | CCU | 其他 | rsConfig(构造默认) | — | isPeerOnly_ 要求 commMode_ == TPL_CCU_COMM_MODE,与 AICPU 16p 特化互斥,无覆盖冲突。 --- ## 7. 有意保留项 1. getTopoTypeByLayer_ / FuncGetTopoTypeByLayer / HCCL_GET_TOPO_TYPE_NAME:TryGetGroupTopoType(experimental 树在用)的依赖链 2. mc2_hcom_topo_info.h 的 #include <vector>:CommGetNetLayersByGroup 删除后本文件已无使用,但 experimental 树共享此头文件,为防传递依赖暂留 3. 构造函数对 getRankSize_/getInstSize_ 加载失败的降级策略(告警而非 fail-close):特性提交记录在案的有意设计 4. V1 GetAlgConfig 保留 2 参接口签名(两参 [[maybe_unused]]):特性期接口变更未回退,与基类及 arch22/arch35 实现一致 --- ## 8. 遗留观察项(低危/信息,不阻断合入) 1. **[低]** 非 BUILD_OPEN_PROJECT 构建下 getTopoTypeByLayer_ 被加载并参与 fatal check 但无调用方(仅 BUILD_OPEN_PROJECT 的 CallHcomGetL0TopoTypeEx 使用)——与特性前基线一致的历史状态,非本次引入 2. **[信息]** mocker 不再使用 std::vector/std::to_string(经 mocker.h 仍引入),无害 3. **[信息]** 功能回滚与格式化混于同一提交——本轮已成既定形态,建议后续功能与格式化分开提交 --- ## 9. 验证建议 本机(Windows)无 CANN 工具链,未做编译验证。建议合入前: 1. CI 全量构建(重点:mc2/common、mc2/all_gather_matmul(_v2)、mc2/allto_all_matmul、mc2/matmul_allto_all、mc2/matmul_reduce_scatter_v2) 2. UT:tests/ut/framework_normal(mocker 变更)及上述算子 UT 3. ST:补一组 16 卡 AICPU 场景用例,确认 InsReduceScatterParallelMesh1DNHR 在 tiling 结果中生效(本修复的行为恢复点) --- ## 10. 结论 **可合入**(条件:CI / UT 通过)。回滚语义与基线 b53346fc9~1 等价(叠加 peer-only、16p 两个有意增强),死代码清理彻底,无残留引用,格式化符合仓库 .clang-format 规范。 --- ## 附录:证据文件 | 证据 | 来源 | | ---- | ---- | | 初版回滚完整 diff | git show f5a00f65e | | 修复 + 格式化 delta | git diff f5a00f65e 86a10178e(+61/-206) | | 基线对照 | git show b53346fc9~1:<file>(SetMc2Hcomm/GetAlgConfig/SetHcclTiling 原始实现) | | 覆盖缺陷引入点 | git show 70357e020(fix-ci 重新加回 16p 直设但保留 rsConfig 覆盖) | | 残留终验 | 全仓 grep(selector/表/死函数/mock key)零匹配 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述: See merge request: cann/ops-transformer!13551 | 28 days ago | |
fix(pre-commit): 全仓代码规范整改——ffn/gmm/mamba/mhc Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13533 merge other into master fix(pre-commit): 全仓代码规范整改——ffn/gmm/mamba/mhc Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——ffn/gmm/mamba/mhc/posembedding 目录。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:1391 个文件,+32218/-31168 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13533 | 28 days ago | |
Fix the moe_init_routing v4 golden error Co-authored-by: BruceLP<lipeng192@huawei.com> # message auto-generated for no-merge-commit merge: !13419 merge mir_v4_golden into master Fix the moe_init_routing v4 golden error Created-by: BruceLP Commit-by: BruceLP Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> moe/moe_init_routing_v4/tests/assets/golden.py 文件头部缺少 golden 与 input 两个模块级插件声明(及配套的 MoeInitRoutingV4_input 入口函数),导致 TTK kernel 模式下标杆数据无法生成,所有 moe_init_routing_v4 的 kernel 模式精度测试一律误报 FAIL,无法反映算子真实精度。此PR修复该问题,补充插件说明。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#5859](https://gitcode.com/cann/ops-transformer/issues/5859) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 改动仅涉及测试资产(标杆脚本),不影响算子 kernel/host 运行时行为。验证手段为语法校验 + TTK kernel 模式精度实测,共 11 个用例全部 PASS(5 输出精度 100%,OOB 内存检查全 OK): ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13419 | 27 days ago | |
[bugFix][A3]补充KvRmsNormRopeCache Cache尺寸Tiling检验逻辑 Co-authored-by: Thaurissan<chenfangjia2@huawei.com> # message auto-generated for no-merge-commit merge: !13420 merge fixKvTilingMinor into master [bugFix][A3]补充KvRmsNormRopeCache Cache尺寸Tiling检验逻辑 Created-by: Thaurissan Commit-by: Thaurissan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在模型看护中,提出KvRmsNormRopeCache A3实现的精度问题。 经排查确认,问题系KvRmsNormRopeCache的kv_rms_norm_rope_cache_ds_tiling.cpp通路中,缺失对cache尺寸合法性校验,无告警或拦截,静默放行非法shape,引起内存污染。 该问题严重影响算子安全性和易用性,本PR落实: - 对KvRmsNormRopeCache A3的tiling逻辑进行整改和补充,增加CacheShape的合法性检验。 - 检视核对cache shape约束逻辑,澄清和纠正接口文档中对非BLK的PA模式的shape约束。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/Ascend/op-plugin/issues/572 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 常规用例和关联方测试验证,全部通过    ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 更新aclnnKvRmsNormRopeCacheV2.md:修正PA非BLK模式下的cache尺寸约束;新增缓存压缩场景说明,以及对应shape和输入约束规范。 - 更新README.md:修正PA非BLK模式下的cache尺寸约束;新增缓存压缩场景说明,以及对应shape和输入约束规范。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13420 | 27 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 28 days ago | |
rollback hcclgetfunc. Co-authored-by: qq_43844249<fanglin17@huawei.com> # message auto-generated for no-merge-commit merge: !13551 merge rollback-getrankgraph into master rollback hcclgetfunc. Created-by: qq_43844249 Commit-by: qq_43844249 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> # 代码检视报告 | 项目 | 内容 | | ---- | ---- | | **检视对象** | 提交 86a10178e096282b30b4eaf6f1474421ca42050b(rollback hcclgetfunc.) | | **作者 / 提交日期** | qq_43844249 / 2026-10-10 | | **分支** | rollback-getrankgraph(父提交 36c9085ab) | | **变更规模** | 26 个文件,+235 / -914 行 | | **检视人** | CANNBot | | **检视日期** | 2026-10-10(共 2 轮:初检 + 修复后复核) | | **检视依据** | 假设检验方法论;git 考古(特性链溯源至基线 b53346fc9~1);全仓 grep 终验 | --- ## 1. 提交概述 ### 1.1 提交意图 回滚"通信算法表 + 选择器"特性链,恢复为固定 HCCL 算法名(AllGather=level0:fullmesh、AlltoAll=level0:fullmesh;level1:pairwise、ReduceScatter=level0:fullmesh),并清理该特性在 mc2_hcom_topo_info 中遗留的死代码。 ### 1.2 提交构成 本提交 = 初版回滚 f5a00f65e(+178/-712)+ 检视修复 4 项(+1/-146)+ clang-format(PointerAlignment: Left,仅指针风格)+ commit message 修正。 ### 1.3 被回滚的特性链(历史溯源) | 提交 | 说明 | | ---- | ---- | | b53346fc9 | get comm topo and select comm alg.(引入 Mc2CommAlgoSelector;扩展 mc2_hcom_topo_info 新增 CommGetNetLayersByGroup/CommGetTopoTypeByLayer) | | a56ee5223 | matmul_reduce_scatter_v2:AICPU 且 rankSize=16 时设置 InsReduceScatterParallelMesh1DNHR(当时无覆盖,功能有效) | | 719470d81 | MatmulReduceScatterV2 切换自适应通信算法选择(删除 16p 直设) | | a04ebab8d / 253df0330 | matmulalltoall 接入选择器 / 更换通信算法表 | | 7f104bda9 / 84316100a / 8a43d451e | AGMM 填充 AllGather 通信算法表 / arch35 依据通信数据动态选择 / 适配 ASC API 变更 | | 6ed79879a / 70357e020 | change-alg-table / fix-ci(重新加回 16p 直设,但同时保留 algoName = rsConfig 覆盖 → **16p 优化自此失效**) | | f5a00f65e | rooback hcclgetfunc.(初版回滚,遗留 4 项问题,见 §3) | --- ## 2. 提交内容明细 ### 2.1 删除(特性链产物,-409 行) - mc2/common/utils/mc2_comm_algo_selector.{h,cpp}:过滤式算法选择器 - mc2/all_gather_matmul_v2/.../arch35/all_gather_comm_algo_table.{h,cpp} - mc2/matmul_allto_all/.../common/allto_all_comm_algo_table.{h,cpp} - mc2/matmul_reduce_scatter_v2/.../arch35/reduce_scatter_comm_algo_table.{h,cpp} - mc2/common/CMakeLists.txt 同步移除 mc2_comm_algo_selector.cpp ### 2.2 恢复固定算法名(与基线 b53346fc9~1 行为一致) - AGMM V1 A5 GetAlgConfig:直接返回 "AllGather=level0:fullmesh" - AGMM V2 / quant_bmm:经 v2 基类静态成员 ALLGATHER_DEFAULT_ALGO_NAME(all_gather_matmul_tiling_base_v2.h:60)传入构造函数 - allto_all 六处(fp/kc/mx × allto_all_matmul/matmul_allto_all):恢复 create(..., AlgConfigType::ALL_TO_ALL) - reduce_scatter 两处:恢复 SetAlgConfig(rsConfig) 基线语义(经修复,见 §4) ### 2.3 死代码清理(检视修复,见 §4) mc2_hcom_topo_info.{h,cpp} 及 UT mocker 中无调用方的层拓扑查询接口链。 ### 2.4 格式化 T *x → T* x(符合 .clang-format:PointerAlignment: Left、DerivePointerAlignment: false),零语义变化。 --- ## 3. 第 1 轮检视发现(针对初版回滚 f5a00f65e) | # | 严重度 | 问题 | 位置 | | - | ------ | ---- | ---- | | 1 | **中** | 16p AICPU 特化算法被回滚遗留的 else { SetAlgConfig(rsConfig); } 覆盖:isPeerOnly_ 仅 CCU 模式可触发,AICPU 模式必走 else 分支,a56ee5223 引入的 InsReduceScatterParallelMesh1DNHR(rankDim==16)被覆盖回默认值,优化实际失效;该 else 分支本身冗余(构造函数已传入 rsConfig) | matmul_reduce_scatter_v2_tiling.cpp、quant_bmm_reduce_scatter_tiling.cpp | | 2 | **中** | 回滚不彻底:MC2HcomTopology::CommGetNetLayersByGroup/CommGetTopoTypeByLayer(b53346fc9 为选择器新增)在主树零调用,仅 UT mocker 为 mock 它们而存在 | mc2_hcom_topo_info.h:41-42、.cpp:349-403 | | 3 | 低 | "AllGather=level0:fullmesh" 双处重复定义(v2 基类静态成员与 A5 函数内局部 constexpr 同名常量) | all_gather_matmul_tiling_base_v2.h:60、all_gather_matmul_tiling_a5.cpp:45 | | 4 | 低 | commDataBytes 计算仅剩日志用途(原为选择器输入,回滚未清理) | all_gather_matmul_tiling_v2.cpp:221-224、all_gather_quant_bmm_tiling.cpp:512-517 | | 5 | 低 | commit message 拼写错误:"rooback hcclgetfunc." | — | | 6 | 信息 | 回滚混入大量指针重排版,功能与格式化耦合(+178 行中约半数为纯格式化) | — | 初检通过项(无需修复):全仓无 selector/算法表残留引用;AGMM/allto_all 回滚行为与基线逐函数比对一致;AllGatherQuantBmmTiling 继承 v2 基类、ALLGATHER_DEFAULT_ALGO_NAME 可正确解析;无 UT 依赖被删选择器(无测试设置 topoType/layerNum mock key);Mc2CcTilingConfigBuilder::create 复用既有 const std::string& 重载。 --- ## 4. 修复内容(f5a00f65e → 86a10178e,delta +61/-206) | 修复 | 内容 | 验证结论 | | ---- | ---- | ---- | | 问题 1 | 删除两个 reduce_scatter 文件中冗余的 else { SetAlgConfig(rsConfig); } 分支 | 16p 特化恢复生效,行为矩阵见 §6 | | 问题 2 | 删除 CommGetNetLayersByGroup/CommGetTopoTypeByLayer 及配套:私有 helper CallCommGetNetLayers/CallCommGetInstTopoTypeByNetLayer、FuncGetNetLayers typedef、getNetLayers_ 成员、HCCL_GET_NET_LAYERS_NAME 常量、构造函数加载与告警;同步删除 UT mocker 对应 4 个 mock | 全仓 grep 零残留;mocker 与裁剪后类声明一一对应 | | 问题 3 | A5 GetAlgConfig 恢复基线写法:直接 return "AllGather=level0:fullmesh"; | v2 侧保留唯一静态成员,跨包不共享(V1/V2 基类同名,同 TU 引入会重定义冲突) | | 问题 4 | 删除 v2 与 quant_bmm 的 commDataBytes/commKValue/commDtypeSize 及其 OP_LOGI | EVEN_ALIGN(余 11 处)、commEngine、isFp4_ 均仍有其他使用 | | 问题 5 | commit message 修正为 "rollback hcclgetfunc." | — | --- ## 5. 第 2 轮复核结论(针对 86a10178e 终态) ### 5.1 问题闭环 上轮 5 项问题全部闭环(4 项代码修复 + 1 项 message 修正),逐 hunk 比对 delta 确认无遗漏、无回归。 ### 5.2 新增检查项(均通过) - **mocker 一致性**:剩余 11 个 mock 方法与裁剪后类声明完全对应(含 BUILD_OPEN_PROJECT 分支的 CallHcomGetRankSizeEx/CallHcomGetL0TopoTypeEx),无悬空定义;mocker 不实现 CallCommGetInstSizeByNetLayer,与 UT 按 BUILD_OPEN_PROJECT 编译一致 - **clang-format 影响**:仅指针风格变化,头文件/实现/mocker 三方签名风格统一,无字符串/注释重排等语义风险 - **保留项正确性**:getTopoTypeByLayer_/FuncGetTopoTypeByLayer/HCCL_GET_TOPO_TYPE_NAME 保留(CallHcomGetL0TopoTypeEx → TryGetGroupTopoType 在用,experimental 树依赖后者);构造函数 fail-close 放宽语义(getRankSize_/getInstSize_ 仅告警)为原作者 ISSUE-001 有意设计,不回退 - **回滚完整性复核**:selector/3 张算法表无任何 include、CMake、符号残留 --- ## 6. 关键行为矩阵(reduce_scatter SetMc2Hcomm 终态) 前置:构造函数以 rsConfig 初始化(isA2APath_ ? "AlltoAll=level0:fullmesh" : "ReduceScatter=level0:fullmesh")。 | 场景 | commMode | rankDim | 生效算法 | 依据 | | ---- | -------- | ------- | -------- | ---- | | AICPU 16 卡 | AICPU | 16 | InsReduceScatterParallelMesh1DNHR | matmul_rs L122-125 / quant_bmm L474-476 | | AICPU 其他卡数 | AICPU | ≠16 | rsConfig(构造默认) | — | | CCU peer-only | CCU | PEER_ONLY_RANK_SIZE | PEER_ONLY_ALGORITHM + SetSkipLocalRankCopy(1) | matmul_rs L134-139 / quant_bmm L487-491 | | CCU 常规 | CCU | 其他 | rsConfig(构造默认) | — | isPeerOnly_ 要求 commMode_ == TPL_CCU_COMM_MODE,与 AICPU 16p 特化互斥,无覆盖冲突。 --- ## 7. 有意保留项 1. getTopoTypeByLayer_ / FuncGetTopoTypeByLayer / HCCL_GET_TOPO_TYPE_NAME:TryGetGroupTopoType(experimental 树在用)的依赖链 2. mc2_hcom_topo_info.h 的 #include <vector>:CommGetNetLayersByGroup 删除后本文件已无使用,但 experimental 树共享此头文件,为防传递依赖暂留 3. 构造函数对 getRankSize_/getInstSize_ 加载失败的降级策略(告警而非 fail-close):特性提交记录在案的有意设计 4. V1 GetAlgConfig 保留 2 参接口签名(两参 [[maybe_unused]]):特性期接口变更未回退,与基类及 arch22/arch35 实现一致 --- ## 8. 遗留观察项(低危/信息,不阻断合入) 1. **[低]** 非 BUILD_OPEN_PROJECT 构建下 getTopoTypeByLayer_ 被加载并参与 fatal check 但无调用方(仅 BUILD_OPEN_PROJECT 的 CallHcomGetL0TopoTypeEx 使用)——与特性前基线一致的历史状态,非本次引入 2. **[信息]** mocker 不再使用 std::vector/std::to_string(经 mocker.h 仍引入),无害 3. **[信息]** 功能回滚与格式化混于同一提交——本轮已成既定形态,建议后续功能与格式化分开提交 --- ## 9. 验证建议 本机(Windows)无 CANN 工具链,未做编译验证。建议合入前: 1. CI 全量构建(重点:mc2/common、mc2/all_gather_matmul(_v2)、mc2/allto_all_matmul、mc2/matmul_allto_all、mc2/matmul_reduce_scatter_v2) 2. UT:tests/ut/framework_normal(mocker 变更)及上述算子 UT 3. ST:补一组 16 卡 AICPU 场景用例,确认 InsReduceScatterParallelMesh1DNHR 在 tiling 结果中生效(本修复的行为恢复点) --- ## 10. 结论 **可合入**(条件:CI / UT 通过)。回滚语义与基线 b53346fc9~1 等价(叠加 peer-only、16p 两个有意增强),死代码清理彻底,无残留引用,格式化符合仓库 .clang-format 规范。 --- ## 附录:证据文件 | 证据 | 来源 | | ---- | ---- | | 初版回滚完整 diff | git show f5a00f65e | | 修复 + 格式化 delta | git diff f5a00f65e 86a10178e(+61/-206) | | 基线对照 | git show b53346fc9~1:<file>(SetMc2Hcomm/GetAlgConfig/SetHcclTiling 原始实现) | | 覆盖缺陷引入点 | git show 70357e020(fix-ci 重新加回 16p 直设但保留 rsConfig 覆盖) | | 残留终验 | 全仓 grep(selector/表/死函数/mock key)零匹配 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述: See merge request: cann/ops-transformer!13551 | 28 days ago | |
fix(pre-commit): 全仓代码规范整改——公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13532 merge common into master fix(pre-commit): 全仓代码规范整改——公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5939 ## 描述 全仓代码规范整改系列——公共目录(common/、examples/、tests/、scripts/ 等)。基于仓库 pre-commit 门禁对存量代码做一次性规范收敛: - clang-format 按 .clang-format 统一格式(列宽 120、指针左对齐等),ruff 格式化 Python - 行尾空白、文件末尾换行修复,少量文档笔误修正 - 规模:280 个文件,+4708/-5785 行,纯格式化改动语义等价,无逻辑变更 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/5939(全仓整改总跟踪) ## 测试 - pre-commit 全部钩子本地通过 - CI 流水线(compile/UT)验证 See merge request: cann/ops-transformer!13532 | 28 days ago | |
feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !12834 merge fix_2 into master feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5016 ## 描述 #### 🐛 Bug 修复 / ✨ 特性增强 围绕既有 pre-commit 体系的三处完善(8 文件 +38/-12,1 笔提交):**拦截类钩子报告落盘**、**脚本健壮性修复**、**策略与文档对齐**。全部经 --all-files 全量实测校准。 ### 一、拦截类钩子报告统一落盘 pre-commit_reports/(不入 git) | 改动 | 内容 | |---|---| | scripts/run_codespell.sh(新增) | codespell 输出 tee 到 pre-commit_reports/codespell.log(entry 覆写仍跑托管 venv,PIPESTATUS 保退出码) | | .pre-commit-config.yaml | codespell entry 指向包装脚本 | | scripts/oat_check.sh | 报告落点 oat_reports/result.txt → pre-commit_reports/oat_result.txt(单文件与批量两条写路径同步) | | .gitignore | oat_reports/ → pre-commit_reports/ | | docs/zh/develop/pre-commit_guide.md | 失败排查节补报告位置说明 | 自动修类钩子(clang-format/ruff)直接改好文件无需报告;拼写/合规须人工处理,报告落盘便于复查与喂给 agent 修复。 ### 二、健壮性修复(姊妹仓全量实测暴露的同款隐患) | 改动 | 内容 | |---|---| | scripts/oat_check.sh | eval 拼接改数组传参 + -f 加引——文件名含 ()/&/[]/空格时 eval 会打断 shell 致扫描假死/假过(本仓当前 0 此类文件名,防御性修复) | | scripts/format_cpp.sh | 目录不存在时原仅打印提示仍继续执行,改为报错退出(exit 1) | ### 三、策略与文档对齐 | 改动 | 内容 | |---|---| | OAT.xml | 豁免 requirements*.txt(依赖清单,双过滤器)、*.info(cmake help,双过滤器)——全量扫描 250→240,残留均为真实缺头债(增量消化) | | trailing-whitespace | 补 --markdown-linebreak-ext=md(防静默剥掉 md 双空格硬换行语法,实测:双空格保留、三空格收敛、单空格照删) | | .clang-format | PointerAlignment 改 **Left**(int* p 指针随类型,领导确认口径;引用 & 同规则);年份 2025→2026 | ## 测试 - 全量 OAT 16 批真实扫描(无双误退出码);缺头 py 拦截有效、豁免类型放行 - md 双空格保留实测通过;codespell 命中落盘、OAT 报告落盘且目录不被 git 跟踪 - 本提交自身过全部钩子(含 OAT);yaml/xml/bash 语法全过 ## 留作仓主决策(本 PR 不动) - ruff --ignore 现行清单含 F841,F821,F401 等 F 系列——skills-dev 口径为「F 系列全启用抓真 bug」,两仓策略不同,建议仓主确认后另行统一 - third_party/catlass、third_party/opbase 下同名 oat_check.sh 为上游副本,未动 ## 类型标签 - [x] 🐛 Bug 修复 - [x] ✨ 特性增强 See merge request: cann/ops-transformer!12834 | 1 month ago | |
产品文档png文件名改为英文名 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9654 merge master into master 产品文档png文件名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中的png图片名由中文改为英文 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> png和相关的link md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9654 | 3 months ago | |
feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !12834 merge fix_2 into master feat(pre-commit): 拦截类钩子报告统一落盘 pre-commit_reports + 健壮性与策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5016 ## 描述 #### 🐛 Bug 修复 / ✨ 特性增强 围绕既有 pre-commit 体系的三处完善(8 文件 +38/-12,1 笔提交):**拦截类钩子报告落盘**、**脚本健壮性修复**、**策略与文档对齐**。全部经 --all-files 全量实测校准。 ### 一、拦截类钩子报告统一落盘 pre-commit_reports/(不入 git) | 改动 | 内容 | |---|---| | scripts/run_codespell.sh(新增) | codespell 输出 tee 到 pre-commit_reports/codespell.log(entry 覆写仍跑托管 venv,PIPESTATUS 保退出码) | | .pre-commit-config.yaml | codespell entry 指向包装脚本 | | scripts/oat_check.sh | 报告落点 oat_reports/result.txt → pre-commit_reports/oat_result.txt(单文件与批量两条写路径同步) | | .gitignore | oat_reports/ → pre-commit_reports/ | | docs/zh/develop/pre-commit_guide.md | 失败排查节补报告位置说明 | 自动修类钩子(clang-format/ruff)直接改好文件无需报告;拼写/合规须人工处理,报告落盘便于复查与喂给 agent 修复。 ### 二、健壮性修复(姊妹仓全量实测暴露的同款隐患) | 改动 | 内容 | |---|---| | scripts/oat_check.sh | eval 拼接改数组传参 + -f 加引——文件名含 ()/&/[]/空格时 eval 会打断 shell 致扫描假死/假过(本仓当前 0 此类文件名,防御性修复) | | scripts/format_cpp.sh | 目录不存在时原仅打印提示仍继续执行,改为报错退出(exit 1) | ### 三、策略与文档对齐 | 改动 | 内容 | |---|---| | OAT.xml | 豁免 requirements*.txt(依赖清单,双过滤器)、*.info(cmake help,双过滤器)——全量扫描 250→240,残留均为真实缺头债(增量消化) | | trailing-whitespace | 补 --markdown-linebreak-ext=md(防静默剥掉 md 双空格硬换行语法,实测:双空格保留、三空格收敛、单空格照删) | | .clang-format | PointerAlignment 改 **Left**(int* p 指针随类型,领导确认口径;引用 & 同规则);年份 2025→2026 | ## 测试 - 全量 OAT 16 批真实扫描(无双误退出码);缺头 py 拦截有效、豁免类型放行 - md 双空格保留实测通过;codespell 命中落盘、OAT 报告落盘且目录不被 git 跟踪 - 本提交自身过全部钩子(含 OAT);yaml/xml/bash 语法全过 ## 留作仓主决策(本 PR 不动) - ruff --ignore 现行清单含 F841,F821,F401 等 F 系列——skills-dev 口径为「F 系列全启用抓真 bug」,两仓策略不同,建议仓主确认后另行统一 - third_party/catlass、third_party/opbase 下同名 oat_check.sh 为上游副本,未动 ## 类型标签 - [x] 🐛 Bug 修复 - [x] ✨ 特性增强 See merge request: cann/ops-transformer!12834 | 1 month ago | |
ci(compile): 新增 build.sh --PR_COMPILE 编译范围推导机制(白名单优先 + depends反向闭包 + def SoC过滤) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13100 merge test into master ci(compile): 新增 build.sh --PR_COMPILE 编译范围推导机制(白名单优先 + depends反向闭包 + def SoC过滤) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 描述 新增 PR 编译范围推导机制,替代原先由 tests/test_config.yaml(example 看护规则)间接决定编译范围的方式。**本 PR 为纯新增:不改任何现有逻辑/任务,UT 维持原状,master 上无 --PR_COMPILE 调用方,对现存 CI 零影响。** ### 1. 推导流程(cmake/scripts/parse_compile_scope.py) 变更文件 → 映射为 <domain>/<op> 键(仅认 attention/ffn/gmm/mamba/mc2/mhc/moe/posembedding 八个大目录;docs/、.md/.json/.ini 跳过)→ 按以下顺序决定编译清单: 1. **白名单优先**:直接变更的算子命中 tests/compile_scope_whitelist.yaml 时,按其 impact(完整编译清单)+ soc(必填,加载即校验,缺失直接报错)选定。当前收录 18 条目:attention/*_metadata(impact=自身+对应无后缀算子,soc 按无后缀 def 推导)、AICPU 算子 attention_worker_scheduler/ffn_worker_scheduler(仅 ascend910b)、mhc/mhc_sinkhorn_common(impact 为 mhc_sinkhorn 正反向,ascend950)。 2. **未命中走正规流程**:op_host/CMakeLists.txt 的 *_depends(兼容 PARENT_SCOPE 与 CACHE INTERNAL 标记)反向闭包,拉出所有声明依赖变更算子的下游;再按 *def.cpp 的 AICore AddConfig 做目标 SoC 过滤。 3. **域内 common/3rd**:变更映射为共享键(如 mc2/common),经 depends 反向闭包触发所有依赖它的算子(如改 mc2/common @910b → 17 个 mc2 算子)。 ### 2. SoC 依据 唯一依据为 def.cpp AddConfig(支持 ascend 短名/长名互认);op_host/config/<soc> 目录已废弃不作依据。def 中宏/变量等非常规写法的识别待 def 规范化后加强。 ### 3. build.sh 集成 新增 --PR_COMPILE <pr_filelist> 选项(注意 --soc 需在其前传):推导为空时打印提示并 exit 200(CI 侧约定 200=跳过成功);非空时设为 ascend_op_name 并进入 custom pkg 编译(出 kernel bin)。 ### 4. 白名单自检 python3 cmake/scripts/parse_compile_scope.py --check:校验白名单条目(算子存在、impact 目标存在、soc 合法、impact 为列表、soc 必填),有错非零退出逐条打印。已挂 pre-commit compile-scope-whitelist-check(仅白名单文件变更时触发)。 ### 5. 已确认的边界(不在本 PR 处理) - ascend310p/ascend350 暂不编译(后续单独出方案);多 SoC 单构建不支持(CI 走单 SoC 命令); - 框架级变更(根目录脚本/cmake 公共件)不触发编译范围,由改动方自行验证; - UT 逻辑完全不动(test_soc_config.yaml/get_soc_version.py 保留原样)。 ## 关联的Issue 关联Issue #5732;配套 CI 任务拆分(arch22/arch35)见 #13016(依赖本 PR,需后合入)。 ## 测试 - 语法:bash -n / py_compile / yaml / ruff 全过,pre-commit 全绿; - 推导用例:metadata 白名单(@950→flash_attn+metadata)、AICPU 白名单(@910b 命中、@950 空)、mhc_sinkhorn_common(@950→正反向)、mc2/common 闭包(@910b→17 算子)、dispatch_v2 闭包(@arch22→7 算子)、框架变更空范围; - 端到端:build.sh --soc=ascend950 --PR_COMPILE 实编成功(kernel bin 产出),空范围 exit 200。 ## 后续(另起 PR) depends drift 持续看护、def.cpp AddConfig 写法规范化、#13016 的 CI 任务拆分接入。 See merge request: cann/ops-transformer!13100 | 1 month ago | |
chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 month ago | |
支持线上CI编译960dt Co-authored-by: yangyajie<yangyajie3@huawei.com> # message auto-generated for no-merge-commit merge: !13423 merge master into master 支持线上CI编译960dt Created-by: yangyajie Commit-by: yangyajie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13423 | 29 days ago | |
chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 month ago | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 months ago | |
fix(pre-commit): 全仓OAT合规整改——许可证/版权头存量修复与豁免策略对齐 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !13363 merge fix_3 into master fix(pre-commit): 全仓OAT合规整改——许可证/版权头存量修复与豁免策略对齐 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/5885 ## 描述 全仓 OAT 合规整改( pre-commit run oat-check --all-files 从 200 条问题清零): **1. OAT.xml 豁免策略对齐**(仅新增 6 行 filteritem,零删除): - experimental/.*:孵化目录豁免 license/copyright/binary 三类检查(含 swiglu_gated_mlp 等第三方 Apache-2.0 双版权贡献代码,策略上不归管) - *.jpg:文档图片豁免二进制拦截(与已有 *.png 一致) - LICENSE:许可证正文本身,豁免许可证头检查 - Third_Party_Open_Source_Software_Notice:第三方声明文件,豁免版权头检查 **2. 文件头修复(167 个源文件)**: - 旧版许可证头(redistribute it and/or modify. 句式,2026-03 入库、04-03 OAT 上线前时间差遗留)→ 标准 CANN V2 头 - 变体错别字:Copyend (c)、You can not use、in in compliance、free software; 分号、CANN 1.0 许可证等 - 无头文件补标准头(如 golden.py、executor_aclnnMoeFusedTopk.py) - 版权年保留各文件原有年份;CRLF/混合行尾文件逐字节保持原行尾,diff 仅头部 **3. 历史遗留原因**:存量问题多经网页端合并(不触发本地钩子)或 OAT 上线前入库积累。 ## 验证 - pre-commit run oat-check --all-files:9 个批次全部 0 issue,Passed - git pc HEAD~1 + 显式 pre-commit run --files 复核收敛,第 2 笔为 clang-format/ruff/end-of-files 自动修复 - py/sh 语法、OAT.xml XML 合法性校验通过 基线 master:d9d81a50a See merge request: cann/ops-transformer!13363 | 29 days ago | |
chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 month ago | |
chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 month ago | |
支持按模板参数编译算子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 | 8 months ago | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 months ago | |
修复不设置出包时仍进行打包,并构建preinstall目标,导致编译时间增加的bug Co-authored-by: waker<lizhengjun7@h-partners.com> # message auto-generated for no-merge-commit merge: !13587 merge cpack-fix into master 修复不设置出包时仍进行打包,并构建preinstall目标,导致编译时间增加的bug Created-by: wanker Commit-by: waker Merged-by: cann-robot Description: ## 描述 原因:修复不设置出包时仍进行打包,并构建preinstall目标,导致编译时间增加的bug 改动:将编译脚本修改为 根据是否设置出包 走不同的代码分支 ## 测试 编排通过 ## 类型标签 <!-- [x] 表示选中 --> - [x ] 🐛 Bug修复 - [x ] ⚡ 性能优化 See merge request: cann/ops-transformer!13587 | 27 days ago | |
mqfa to blue Co-authored-by: luoyun<luoyun38@huawei.com> # message auto-generated for no-merge-commit merge: !13088 merge only_to_blue into master mqfa to blue Created-by: luoyun-6 Commit-by: luoyun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5826 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!13088 | 30 days ago | |
update cmake minimum required to 3.18.4 Co-authored-by: poorwill<wangbing110@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master update cmake minimum required to 3.18.4 Created-by: wangbing110 Commit-by: poorwill Merged-by: cann-robot Description: update cmake minimum required to 3.18.4 See merge request: cann/ops-transformer!9634 | 3 months ago | |
Pre-Commit 规范整改 — 公共 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5305 merge refactor into master Pre-Commit 规范整改 — 公共 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: pre-commit是一个Git Hooks框架,用于在 git commit时自动运行代码检查和格式化工具。: | Hook | 功能 | 说明 | |------|------|------| | **clang-format** | C/C++ 代码格式化 | 自动格式化代码,保持风格一致 | | **OAT Check** | 开源合规检查 | 检测许可证头、禁止二进制文件提交 | 本PR对于公共文件进行了pre-commit检查 See merge request: cann/ops-transformer!5305 | 3 months ago | |
升级 ops-transformer 版本至 9.2.0 Co-authored-by: wang-minbo<wangminbo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !11465 merge master into master 升级 ops-transformer 版本至 9.2.0 Created-by: wang-minbo Commit-by: wang-minbo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->https://gitcode.com/cann/ops-transformer/issues/5083 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11465 | 1 month ago | |
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 | 8 months ago |
🔥Latest News
- [2026/08] 仓内集成pre-commit代码检查框架,配置后
git commit时自动检查并修复格式问题,将规范问题拦截在提交阶段、提升代码合入效率,详见pre-commit配置指导书。 - [2026/07] A5上新支持算子quant_flash_attn,Dense Attention全量化场景专用,以及experimental目录新增同名算子支持A5的MxFP4全量化;chunk_gated_delta_rule算子支持A5;A5新增DSV4 dense训练阶段TopK筛选反向算子dense_lightning_indexer_grad_kl_loss、dense_lightning_indexer_softmax_lse;mc2新支持算子engram_fetch_grad。
- [2026/06] A5上新增支持sparse_flash_mla、mixed_quant_sparse_flash_mla以及对应的metadata算子,用于DSV4场景稀疏Attention计算。新增lightning_indexer_v2、quant_lightning_indexer_v2以及对应的metadata算子,用于DSV4场景TopK筛选。A5新增DSV4 sparse训练阶段Attention反向算子sparse_flash_mla_grad、sparse_lightning_indexer_kl_loss_grad;mc2新支持算子engram_fetch、engram_fetch_wait。
- [2026/05] fused_infer_attention_score算子A5上支持MxFP8全量化;A5上新支持算子flash_attn,Dense Attention非量化场景专用。
- [2026/04] mc2新支持算子mega_moe。
- [2026/03] recurrent_gated_delta_rule算子支持A5。
- [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] 开源算子支持NPU Simulator仿真工具开发调试。
- [2025/12] 开源算子支持Ascend 950PR&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://atomgit.com/cann/ops-transformer.git
git clone -b 9.0.0 https://atomgit.com/cann/ops-transformer.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。