| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
MinimaxSparseAttention算子,修复错误校验 Co-authored-by: renruhai<renruhai1@huawei.com> # message auto-generated for no-merge-commit merge: !11345 merge master into master MinimaxSparseAttention算子,修复错误校验 Created-by: renruhai Commit-by: renruhai Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MinimaxSparseAttention算子,修复错误校验,对A2A5数据类型分开校验,删除冗余校验逻辑 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/5014 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 测试通过,A2A5校验成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!11345 | 1 天前 | |
swiglu_gated_mlp/cgmct删除MakeLayoutByFormat的constexpr修饰 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !11275 merge test into master swiglu_gated_mlp/cgmct删除MakeLayoutByFormat的constexpr修饰 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: 关联Issue https://gitcode.com/cann/ops-transformer/issues/4963 ## 描述 删除 MakeLayoutByFormat 函数签名上的 constexpr 修饰(2 个同名副本文件,各 1 行): - experimental/ffn/swiglu_gated_mlp/op_kernel/common/matmul_act/utils/layout_utils.h - gmm/common/cgmct/utils/cgmct_layout_utils.h 背景:GCC 新版本引入不兼容变更——constexpr 函数体内不允许调用非 constexpr 函数。该函数体内调用了 AscendC::MakeLayout/MakeShape/MakeStride 等非 constexpr 接口,属于调用栈上层的 constexpr,需要删除。在变更前该 constexpr 实际也不生效(无法编译期求值),删除无语义影响。 ## 提交结构(两笔) | 提交 | 内容 | |---|---| | 第1笔 | 纯改动:删除 constexpr 修饰(2 文件各 1 行) | | 第2笔 | pre-commit 格式化修复(clang-format 重排 + 文件末尾换行,均为存量格式问题) | ## 测试 CI 流水线验证(已评论 compile 触发)。 See merge request: cann/ops-transformer!11275 | 4 天前 | |
更新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 | 8 个月前 | |
fix: causal_conv1d perfermance Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !9090 merge br_causal_conv1d into master fix: causal_conv1d perfermance Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 修复传入init_state_mode场景的性能问题 2. 增加mamba目录的功能描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3849 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9090 | 1 个月前 | |
MicroAPI替换为Reg(examples全部、experimental非attention目录) Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !11176 merge compile into master MicroAPI替换为Reg(examples全部、experimental非attention目录) Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 关联的Issue 关联Issue https://gitcode.com/cann/ops-transformer/issues/4908 ## 描述 CANN 头文件中 MicroAPI 是 Reg 命名空间的别名(impl/basic_api/kernel_macros.h 中定义 namespace MicroAPI = Reg;),二者为同一命名空间的别名,替换为纯语义等价操作。本 PR 将 examples 目录全部及 experimental 目录中 attention 以外模块的源码 MicroAPI 统一替换为 Reg(共 9 个文件)。 ### 提交结构(两笔) | 提交 | 内容 | |---|---| | 第1笔 | 纯文本替换 MicroAPI → Reg(9 文件,129 增/129 删,逐行校验一一对应) | | 第2笔 | git pc HEAD~1 补查后 clang-format 重排(9 文件,Reg 缩短行宽引发的适配,298 增/316 删) | ### 覆盖范围 - **examples 全部**(7 个文件):flash_attn/L0_minimal 示例 6 个 + fast_kernel_launch_example/moe_distribute_dispatch_v2 1 个 - **experimental 非 attention**(2 个文件):mc2/quant_all_reduce、ffn/swiglu_gated_mlp - experimental/attention 目录因上游 host 构建存在多组同名符号冲突(独立 issue 跟踪中),暂不处理,待修复后另行提交 ### 改动说明 - 纯文本等价替换,不改变任何计算逻辑和函数签名;第2笔仅为 clang-format 空白重排,无语义变化 - 替换代码位于 arch35/arch38 路径或 __NPU_ARCH__ == 3510 宏保护内,仅 A5(及 Regbase 新核心)生效;A2/A3(arch22,Membase API)不受影响 - 同需求其余拆分:mc2/attention/moe/gmm/mhc/posembedding 已合入,ffn 见 #11153,mamba 见 #11154 ### 验证 - 逐行脚本校验:第1笔 diff 每对行满足 新行 == 旧行.replace('MicroAPI', 'Reg') - 9 个目标文件 MicroAPI 残留为 0,pre-commit 全量 hook 收敛 - OAT 合规扫描 9 个文件全部通过 - 语义等价性由 CANN 头文件中的命名空间别名定义保证 See merge request: cann/ops-transformer!11176 | 5 天前 | |
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 | 1 个月前 | |
pre-commit 补充license Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5437 merge err_msg into master pre-commit 补充license Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: # ops-transformer 仓库 License 合规整改总结 ## 背景 ops-transformer 仓库在 pre-commit 流程中引入了 OAT(Open Source Audit Tool)合规性检查,用于扫描提交文件是否包含合规的 CANN License 头。在实际提交过程中,OAT 检查发现多个文件缺少 License 头,导致 commit 被阻断。为此进行了两笔提交来完成整改。 ## 提交记录 | 序号 | Commit | 提交信息 | 修改文件数 | 变更量 | |------|--------|----------|-----------|--------| | 1 | 7ad5476c9 | pre-commit 规则修改 | 1 | +10 / -1 | | 2 | 84b25cd9d | 补充license | 94 | +4399 / -3521 | ## 提交一:pre-commit 规则修改 ### 修改内容 对 .pre-commit-config.yaml 做了两处修改: 1. **补充 CANN License 头** — 该文件本身缺少 License,导致 OAT 检查报错 License Header Invalid 2. **codespell 排除范围扩展** — 在 --skip 参数中新增 *.md,避免对 Markdown 文档进行拼写检查(文档中包含大量技术术语和中文内容,误报率高) ### 触发原因 首次提交时 OAT 扫描结果: [OAT] Found 1 compliance issue(s): - Invalid File Type: 0 - License Header Invalid: 1 → .pre-commit-config.yaml (NoLicenseHeader) ## 提交二:补充 License ### 统计概览 - **涉及文件**: 94 个 - **文件类型分布**: | 类型 | 数量 | License 格式 | |------|------|-------------| | .py | 62 | # 注释风格 | | .sh | 14 | # 注释风格 | | .cpp | 8 | /**/ 注释风格 | | .h | 5 | /**/ 注释风格 | | .yml | 4 | # 注释风格 | | .yaml | 1 | # 注释风格 | - **模块分布**: | 模块 | 文件数 | |------|--------| | attention | 37 | | experimental | 31 | | examples | 7 | | .gitcode | 5 | | tests | 3 | | posembedding | 3 | | mc2 | 3 | | mhc | 2 | | torch_extension | 1 | | scripts | 1 | | ffn | 1 | ### License 头格式 #### Hash 风格(.sh / .py / .yaml / .yml) # ----------------------------------------------------------------------------------------------------------- # Copyright (c) 2025 Huawei Technologies Co., Ltd. # This program is free software, you can redistribute it and/or modify it under the terms and conditions of # CANN Open Software License Agreement Version 2.0 (the "License"). # Please refer to the License for details. You may not use this file except in compliance with the License. # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. # See LICENSE in the root of the software repository for the full text of the License. # ----------------------------------------------------------------------------------------------------------- #### C 风格(.cpp / .c / .h / .hpp) c /** * Copyright (c) 2025 Huawei Technologies Co., Ltd. * This program is free software, you can redistribute it and/or modify it under the terms and conditions of * CANN Open Software License Agreement Version 2.0 (the "License"). * Please refer to the License for details. You may not use this file except in compliance with the License. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. * See LICENSE in the root of the software repository for the full text of the License. */ ### 处理规则 | 场景 | 处理方式 | |------|---------| | 普通文件无 License | 在文件顶部添加 License 头 | | 文件有 shebang(#!/bin/bash) | License 插入在 shebang 之后 | | 文件有编码声明(# -*- coding: utf-8 -*-) | License 插入在编码声明之后 | | License 最后一行与代码之间 | 保留一个空行分隔 | | C 风格 */ 后 | 保留一个空行分隔 | | 空 __init__.py(0 字节) | 不添加 License,保持原样 | | 已有小写 copyright 的文件 | 不重复添加(识别为已有 License) | ### 额外修复 #### 1. 双 License 清理 以下 3 个文件原本同时包含 CANN License 和 Apache 2.0 License,删除了 Apache 2.0 部分: - scripts/util/insert_op_info.py - examples/add_example/op_kernel_aicpu/add_example_aicpu.cpp - examples/add_example/op_kernel_aicpu/add_example_aicpu.h #### 2. 格式规范化 - 所有 C 风格文件 */ 后确保有空行 - 所有 Hash 风格文件 License 块 # --- 后确保有空行 - 修复了 2 个文件(golden.py、golden_src.py)License 后的空格行替换为真正的空行 ### 排除范围 以下目录/文件未做修改: - build/ — 构建产物 - .git/ — Git 内部文件 - third_party/ — 第三方依赖 - */3rd/ — 第三方子模块 - oat_reports/ — OAT 扫描报告 - torch_extension/build/ — 构建产物 - 空 __init__.py(0 字节)— Python 包标识文件,无需 License ## 验证结果 整改完成后,对提交中所有 94 个文件进行了 5 项检查: | 检查项 | 结果 | |--------|------| | 1. 是否包含 Copyright Huawei 标识 | 全部通过 | | 2. 是否存在重复 Copyright | 全部通过 | | 3. C 风格 */ 后是否有空行 | 全部通过 | | 4. Hash 风格 # --- 后是否有空行 | 全部通过 | | 5. shebang/encoding 是否保持在第 1 行 | 全部通过 | See merge request: cann/ops-transformer!5437 | 1 个月前 | |
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 | 1 个月前 | |
新增RotaryPositionEmbedding3d算子 Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !9000 merge feat/rope3d-clean into master 新增RotaryPositionEmbedding3d算子 Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 ### 改动内容 新增 **RotaryPositionEmbedding3D** 算子,实现 Wan2.2 风格的 3D 空间 RoPE。 ### 改动原因 当前 CANN 仅提供标准 1D RoPE 算子,不支持视频场景下按帧/高/宽三轴独立频带编码的 3D RoPE。Wan2.2 等视频生成模型在 Ascend NPU 上只能通过 Host 端 Python 逐样本循环实现位置编码,导致: - 长序列下 Python 循环开销大(随序列长度线性增长) - float64 复数运算带来不必要的精度和带宽 - 多次小 kernel launch 产生大量 host 开销 ### 采取的方法 在 AscendC kernel 内单次完成 **位置解码 → 频带划分 → 三轴独立旋转** 的全流程: 1. **频带划分**:headDim 按 2:1:1 比例分为 T/H/W 三个频带,各频带独立频率衰减率 2. **位置解码**:先读 t_output_dim/h_output_dim/w_output_dim 三个可选 attr,合法时(T*H*W==S)优先用显式网格,否则通过 FactorVideoDims 自动将序列长度 S 分解为视频维度 (T, H, W) 3. **预计算 cos/sin**:调用方按三轴坐标预计算 cos/sin 表,作为第二输入 cos 传入 kernel 4. **单缓冲区**:x 和 cos 数据在 UB 中连续存放,避免双队列 AllocTensor 竞争条件 5. **UB 保护**:自动根据 UB 容量拆分为多 tile,防止大序列 UB 溢出 6. **tmpBuf 保护**:使用临时缓冲区保存旋转公式的中间乘积,避免累加时覆盖未完成的分量 ### 涉及的文件 新增: experimental/posembedding/rotary_position_embedding3d/ ├── CMakeLists.txt ├── op_host/ │ ├── CMakeLists.txt │ ├── rotary_position_embedding3d_def.cpp │ ├── rotary_position_embedding3d_infershape.cpp │ └── rotary_position_embedding3d_tiling.cpp ├── op_kernel/ │ ├── rotary_position_embedding3d.cpp │ ├── rotary_position_embedding3d.h │ ├── rotary_position_embedding3d_tiling_data.h │ └── rotary_position_embedding3d_tiling_key.h ├── examples/ │ └── test_aclnn_rotary_position_embedding3d.cpp ├── tests/ut/ │ ├── CMakeLists.txt │ ├── op_host/ ... │ └── op_kernel/ ... └── README.md ## 关联的 Issue 关联 issue#3869 ## 测试 ### 1. 算子功能测试(9/9 PASS) 在 ascend910b 硬件上通过 9 组 shape 测试,覆盖 D=16~512、S=8~128、B=1~8: [Test 1] PASSED (batch=1 seq=16 D=16) [Test 2] PASSED (batch=2 seq=16 D=32) [Test 3] PASSED (batch=4 seq=8 D=64) [Test 4] PASSED (batch=1 seq=64 D=128) [Test 5] PASSED (batch=4 seq=32 D=128) [Test 6] PASSED (batch=8 seq=16 D=256) [Test 7] PASSED (batch=2 seq=128 D=512) [Test 8] PASSED (batch=4 seq=128 D=256) [Test 9] PASSED (batch=8 seq=128 D=128) === 9/9 tests PASSED, 0 FAILED === ### 2. 3D 轴独立性测试(3/3 PASS) 验证 T/H/W 三轴频带互不影响: [3DTest 1] Axis: (i=0,j=0) fixed, t=1->2: T-band DIFFERS OK, H/W-band SAME OK [3DTest 2] Axis: (i=0,j=0) fixed, t=1->2: T-band DIFFERS OK, H/W-band SAME OK [3DTest 3] Axis: (i=0,j=0) fixed, t=1->2: T-band DIFFERS OK, H/W-band SAME OK --- 3D Tests: 3/3 PASSED, 0 FAILED --- ### 3. 数值正确性验证 - 使用固定种子(seed=42)的随机输入数据 - 对比 CPU 参考实现 RefRoPE3D,逐元素对比 - 精度阈值 eps=1e-4,所有 case 通过 ### 4. 性能测试 使用 msprof op 采集 NPU 纯执行时间(ascend910b, 1650MHz, Block Dim=8): | B | S | D | Task Duration | |---|---|---|--------------| | 1 | 16 | 16 | ~3.7 μs | | 2 | 128 | 512 | ~4.0 μs | | 8 | 128 | 128 | ~4.2 μs | ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [√ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9000 | 11 天前 | |
修改trans的产品名称和低错 Co-authored-by: zhangfands<18768316492@163.com> # message auto-generated for no-merge-commit merge: !9221 merge test into master 修改trans的产品名称和低错 Created-by: caiwenwen Commit-by: zhangfands Merged-by: cann-robot Description: ## 描述 torch_npu产品和低错 ## 关联的Issue [#3706](https://gitcode.com/cann/ops-transformer/issues/3706) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9221 | 1 个月前 | |
Singular Value Decomposition (SVD) Co-authored-by: alexeyvaryzgin<alexey.varyzgin@gmail.com> # message auto-generated for no-merge-commit merge: !2708 merge alexeyvaryzgin/svd into master Singular Value Decomposition (SVD) Created-by: alexeyvaryzgin Commit-by: alexeyvaryzgin Merged-by: cann-robot Description: ## 描述 In SVD there are 3 functions: jacobi, tsqr and svd_lowrank. ## 关联的Issue 关联Issue [#1459](https://gitcode.com/cann/ops-transformer/issues/1459) <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!2708 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 天前 | ||
| 4 天前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 3 个月前 |