本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改编译任务 Co-authored-by: chenyajie<chenyajie6@huawei.com> # message auto-generated for no-merge-commit merge: !7462 merge master into master 修改编译任务 Created-by: yajie_caroline Commit-by: chenyajie Merged-by: cann-robot Description: ## 描述 修改代码话编译任务始终跳过不跑的bug ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4069 ## 测试 在测试环境中验证修改过后可以正常识别条件跑编译 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7462 | 2 天前 | |
[CANNBot]新增Relu6D算子 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !7444 merge cherry-pick-mr-7375-1783929445662-auto into master [CANNBot]新增Relu6D算子 Created-by: zhaozhongyao Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 新增 Relu6D 算子 ### Relu6D 带缩放系数的 ReLU6 激活函数,对输入张量逐元素执行两步 clamp 操作——先 max(x, 0) 下截断消除负值,再 min(·, 6*scale) 上截断限制上界,输出值域为 [0, 6*scale]。当 scale = 1.0(默认)时等价于标准 ReLU6。适用于 MobileNet 系列等轻量级视觉网络的激活层,限制激活值范围、提升低精度量化(FP16/INT8)场景的数值稳定性。 - 输入:x(单输入) - 输出:y(shape/dtype 与 x 一致,无广播、无类型提升) - 属性:scale(Float,默认 1.0;上界阈值 = 6*scale) - 数据类型:FLOAT16、BFLOAT16、FLOAT、INT32 计算公式: $$ y = \min(\max(x,\ 0),\ 6 \cdot scale) $$ 等价分段定义: $$ y = \begin{cases} 0 & x \le 0 \\ x & 0 < x < 6 \cdot scale \\ 6 \cdot scale & x \ge 6 \cdot scale \end{cases} $$ 原型对齐 CANNDEV Relu6D(nonlinear_fuc_ops.h):输入输出结构、scale 属性、RealNumberType() dtype 声明完全一致。 ### 关键设计 - **RegBase VF 两步 clamp**:Step 1 Reg::Maxs(·, 0) 下截断(VECIN→VECOUT 非原地),Step 2 Reg::Mins(·, 6*scale) 上截断(VECOUT 原地)。fp16/fp32/int32 原 dtype 直算,无升精度 - **BF16 cast-compute**:backend 不支持 bf16 标量 clamp,升 fp32 直算(Cast bf16→fp32 → Maxs/Mins → Cast fp32→bf16 CAST_RINT),精度无损 - **4 TilingKey dtype 分发**:单一 dtype 维度,ASCENDC_TPL_ARGS_DECL 模板编程,4 键与 dtype 一一对应 - **workspace=0**:纯逐元素运算,无中间 Buffer - **空 Tensor 守卫**:dim0=0 时 blockNum=0,kernel 首行 return,不发起 GM 读写 ACLNNTYPE=aclnn_exclude。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Relu6D 算子支持 Ascend950 ascendc 实现](https://gitcode.com/cann/ops-nn/issues/4022) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> NPU 上板测试 | 测试项 | 结果 | 详情 | |--------|------|------| | Kernel Binary | 4 个 .o ✅ | fp16/bf16/fp32/int32 各一 | | TTK aclnn | 472/472 PASS (100%) ✅ | 481 总用例,9 个 L2 负向用例为设计内正确拒绝 | | TTK kernel(白盒) | 648/648 PASS (100%) ✅ | 4 TilingKey 全覆盖 | | UT | 26/26 PASS ✅ | op_host 21(infershape 7 + tiling 14)+ op_kernel 5 | | E2E 通路 | 通过 ✅ | GE IR + Torch 双通路均 PASS | | 精度标准 | 双千双万 ✅ | fp16/bf16=1e-3、fp32=1e-4、int32 bitwise | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 activation/relu6_d/README.md - 更新 docs/zh/op_list.md(添加 relu6_d 算子登记) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7444 | 6 小时前 | |
ops-tensor include asc_feature as submodule Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !6225 merge ascendc_submodule into master ops-tensor include asc_feature as submodule Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 引入ascendc特性分支作为ops-tensor的submodule,算子仓适配submodule源码的拉取; 编译时优先include特性分支下的c_api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#3880](https://gitcode.com/cann/ops-nn/issues/3880) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 算子包编包成功,相关算子功能正常 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6225 | 10 小时前 | |
feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !7471 merge master into master feat: 新增13个ONNX标准算子插件(Conv/Gemm/Pool/Normalization/SparseToDense) Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 ONNX 标准算子插件从内部仓库迁移至开源仓库,新增 13 个 ONNX 算子插件的解析实现,覆盖卷积、池化、全连接、归一化等常见神经网络算子,支持多版本 ONNX opset。 | 序号 | 算子 | 文件名 | 行数 | |------|------|--------|------| | 1 | AveragePool | average_pool_onnx_plugin.cpp | 282 | | 2 | Conv | conv_onnx_plugin.cpp | 350 | | 3 | ConvTranspose | conv_transpose_onnx_plugin.cpp | 437 | | 4 | DeformableConv2d | deformable_conv2d_onnx_plugin.cpp | 145 | | 5 | Gemm | gemm_onnx_plugin.cpp | 134 | | 6 | Int8Conv | int8_conv_onnx_plugin.cpp | 250 | | 7 | Int8ConvRelu | int8_conv_relu_onnx_plugin.cpp | 369 | | 8 | Int8FC | int8_fc_onnx_plugin.cpp | 164 | | 9 | LayerNormalization | layer_normalization_onnx_plugin.cpp | 153 | | 10 | LpPool | lppool_onnx_plugin.cpp | 371 | | 11 | MaxPool | max_pool_onnx_plugin.cpp | 388 | | 12 | MaxUnpool | maxunpool_onnx_plugin.cpp | 226 | | 13 | SparseToDense | sparse_to_dense_onnx_plugin.cpp | 44 | ### 实现方式 每个插件文件通过 REGISTER_CUSTOM_OP 宏注册算子,实现 ONNX 算子属性到 Ascend IR 的映射: - 解析 ONNX NodeProto 中的算子属性(strides、pads、dilations、groups 等) - 转换为 Ascend GE 算子属性并通过 ge::Operator::SetAttr 设置 - 注册为 FrameworkType(ONNX) + ImplyType(TVM) 的定制算子 ## 测试 - ONNX 标准算子兼容性验证 - 与现有框架集成测试 ## 文档更新 无 ## 类型标签 - [x] 新特性 ## AI/Agent生成声明 - [x] AI辅助编写 ## 关联的Issue - #4076 See merge request: cann/ops-nn!7471 | 11 小时前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 9 天前 | |
卷积反向算子参数提前到tiling计算 Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7069 merge master into master 卷积反向算子参数提前到tiling计算 Created-by: zhaozhoujun520 Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 部分参数提前到tiling阶段计算 ## 关联的Issue [#3907](https://gitcode.com/cann/ops-nn/issues/3907) ## 测试 本地验证,CI pipeline, RDV,蓝区冒烟,性能验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7069 | 1 天前 | |
[CANNBot]新增Relu6D算子 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !7444 merge cherry-pick-mr-7375-1783929445662-auto into master [CANNBot]新增Relu6D算子 Created-by: zhaozhongyao Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 新增 Relu6D 算子 ### Relu6D 带缩放系数的 ReLU6 激活函数,对输入张量逐元素执行两步 clamp 操作——先 max(x, 0) 下截断消除负值,再 min(·, 6*scale) 上截断限制上界,输出值域为 [0, 6*scale]。当 scale = 1.0(默认)时等价于标准 ReLU6。适用于 MobileNet 系列等轻量级视觉网络的激活层,限制激活值范围、提升低精度量化(FP16/INT8)场景的数值稳定性。 - 输入:x(单输入) - 输出:y(shape/dtype 与 x 一致,无广播、无类型提升) - 属性:scale(Float,默认 1.0;上界阈值 = 6*scale) - 数据类型:FLOAT16、BFLOAT16、FLOAT、INT32 计算公式: $$ y = \min(\max(x,\ 0),\ 6 \cdot scale) $$ 等价分段定义: $$ y = \begin{cases} 0 & x \le 0 \\ x & 0 < x < 6 \cdot scale \\ 6 \cdot scale & x \ge 6 \cdot scale \end{cases} $$ 原型对齐 CANNDEV Relu6D(nonlinear_fuc_ops.h):输入输出结构、scale 属性、RealNumberType() dtype 声明完全一致。 ### 关键设计 - **RegBase VF 两步 clamp**:Step 1 Reg::Maxs(·, 0) 下截断(VECIN→VECOUT 非原地),Step 2 Reg::Mins(·, 6*scale) 上截断(VECOUT 原地)。fp16/fp32/int32 原 dtype 直算,无升精度 - **BF16 cast-compute**:backend 不支持 bf16 标量 clamp,升 fp32 直算(Cast bf16→fp32 → Maxs/Mins → Cast fp32→bf16 CAST_RINT),精度无损 - **4 TilingKey dtype 分发**:单一 dtype 维度,ASCENDC_TPL_ARGS_DECL 模板编程,4 键与 dtype 一一对应 - **workspace=0**:纯逐元素运算,无中间 Buffer - **空 Tensor 守卫**:dim0=0 时 blockNum=0,kernel 首行 return,不发起 GM 读写 ACLNNTYPE=aclnn_exclude。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Relu6D 算子支持 Ascend950 ascendc 实现](https://gitcode.com/cann/ops-nn/issues/4022) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> NPU 上板测试 | 测试项 | 结果 | 详情 | |--------|------|------| | Kernel Binary | 4 个 .o ✅ | fp16/bf16/fp32/int32 各一 | | TTK aclnn | 472/472 PASS (100%) ✅ | 481 总用例,9 个 L2 负向用例为设计内正确拒绝 | | TTK kernel(白盒) | 648/648 PASS (100%) ✅ | 4 TilingKey 全覆盖 | | UT | 26/26 PASS ✅ | op_host 21(infershape 7 + tiling 14)+ op_kernel 5 | | E2E 通路 | 通过 ✅ | GE IR + Torch 双通路均 PASS | | 精度标准 | 双千双万 ✅ | fp16/bf16=1e-3、fp32=1e-4、int32 bitwise | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 activation/relu6_d/README.md - 更新 docs/zh/op_list.md(添加 relu6_d 算子登记) ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7444 | 6 小时前 | |
fix TorchNPU Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7243 merge master into master fix TorchNPU Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 ① torch_npu名称合一TorchNPU ②《acl API》手册更名修改 ③ link修改commerical为community ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3951 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7243 | 2 天前 | |
个人-AscendC实现HuberLossGrad 算子贡献 Co-authored-by: xiaopei-1<1550747408@qq.com> # message auto-generated for no-merge-commit merge: !4758 merge feat/HLossGrad into master 个人-AscendC实现HuberLossGrad 算子贡献 Created-by: xiaopei-1 Commit-by: xiaopei-1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的HuberLossGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联的Issue:https://gitcode.com/cann/ops-nn/issues/2511 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 采用aclnn调用测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4758 | 1 天前 | |
fix(foreach): 修复ContiguousHelper对参数融合子视图误判跳过Contiguous的问题 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !7495 merge 0714 into master fix(foreach): 修复ContiguousHelper对参数融合子视图误判跳过Contiguous的问题 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 ForeachMakeContiguousTensorList / ForeachViewCopyToOutputTensorList 原先仅用 op::IsContiguous 判断是否需要转连续,该接口只检查 view strides 连续性,不感知 storage_shape 和 view_offset。 参数融合场景下(多个参数视图共享同一块大 buffer),tensor 的 view strides 连续但 storage_shape 为整个大 buffer 大小(远大于 view 元素数)、view_offset 非零。IsContiguous 返回 true 导致 helper 错误跳过 Contiguous,传给 tiling 的 storage_shape 仍为大 buffer,与独立分配的输入 storage_shape 不匹配,触发 CheckInputTensorlistShape 报错(The shapes of 0th tensor in tensor list input 1 and input 0 must be the same)。 改动方法: - ForeachMakeContiguousTensorList:跳过条件从 IsEmpty || IsContiguous 加强为 IsEmpty || (IsContiguous && storageShapeSize == viewShapeSize),子视图(storage 为共享大 buffer)强制走 l0op::Contiguous 转为独立连续 tensor - ForeachViewCopyToOutputTensorList:ViewCopy 条件同步调整为与上述判断严格互补,确保被 Contiguous 的输出一定会回写 影响范围:所有使用该 helper 的 foreach 算子(add_list、mul_list、div_list、lerp_scalar、lerp_list、addcdiv_scalar、addcdiv_scalar_list、sqrt、div_scalar 等),标准连续 tensor 和标准非连续 tensor 行为不变。 ## 关联的Issue ## 测试 - 逻辑分析覆盖空 tensor、标准连续、参数融合子视图、非连续(permute/transpose)四类状态,确认跳过/Contiguous/ViewCopy 路径正确 - 待在 NPU 环境复现参数融合场景验证 tiling 不再报错且结果正确 ## 文档更新 无 ## 类型标签 - [x] Bug修复 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7495 | 23 小时前 | |
fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Co-authored-by: xieshengwei1024<xieshengwei3@huawei.com> # message auto-generated for no-merge-commit merge: !7076 merge master into master fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Created-by: xieshengwei1024 Commit-by: xieshengwei1024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.系列SyncAll算子添加scheduleMode 2.embeddingHash算子文档错误修改 3.groupNormSilu修改超大圈复杂度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue3858 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行本地编译测试、ut测试及上板aclnn测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了embeddingHash系列算子的readme文档 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7076 | 8 天前 | |
TopkV2算子aclnn接口功能修复 Co-authored-by: caoyan_huawei<caoyan11@huawei.com> # message auto-generated for no-merge-commit merge: !7456 merge cy_br_713_master into master TopkV2算子aclnn接口功能修复 Created-by: caoyan_huawei Commit-by: caoyan_huawei Merged-by: cann-robot Description: ## 描述 修复TopkV2算子在k和排序轴相等,且sorted=false,且排序轴不是尾轴场景时,出现的索引排列错乱问题。 【问题原因】当前topk在处理sorted=false,排序轴等于k时,统一按照默认排序轴是尾轴的情况进行处理。这就导致在排序轴不是尾轴的情况下,索引依然按照行优先排列。以二维tensor为(5, 5) 的矩阵举例,当dim=1时,对尾轴进行取k=5, sorted=false 的操作,那么索引的输出如下: [[0, 1 ,2, 3, 4], [0, 1 ,2, 3, 4], [0, 1 ,2, 3, 4], [0, 1 ,2, 3, 4], [0, 1 ,2, 3, 4]] 当dim=0,k=5,sorted=false时,预期索引输出应该如下: [[0, 0 ,0, 0, 0], [1, 1 ,1, 1, 1] [2, 2 ,2, 2, 2] [3, 3 ,3, 3, 3] [4, 4 ,4, 4, 4]] 但实际情况是,索引会按照dim-1,k=5的情况进行输出,不符合预期。 【修复方案】当排序轴为非尾轴时,进行如下操作: 1. 先Arange生成k个从0开始到k-1的索引Tensor,从标量到Tesor:【k】 2. 将这k个数的Tensor重新reshape成维度和输入相同,dim轴等于k,其它轴等于1的Tensor,如:【d0, d1, d2, k, d3, d4】,其中d0到d4全为1; 3. 利用BroadcastTo将k维度的索引广播到其它所有维度。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4073 ## 测试 UT,ST,二级冒烟测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7456 | 11 小时前 | |
SigmoidCrossEntropyWithLogitsGrad算子:空指针拦截 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !7438 merge master into master SigmoidCrossEntropyWithLogitsGrad算子:空指针拦截 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 SigmoidCrossEntropyWithLogitsGrad算子:空指针拦截 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7438 | 12 小时前 | |
fix: update mix matmul scheduler Co-authored-by: yangzw653<yangzongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !7227 merge master into master fix: update mix matmul scheduler Created-by: yangzw653 Commit-by: yangzw653 Merged-by: cann-robot Description: ## 描述 update mix matmul scheduler ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7227 | 7 小时前 | |
arch35: DataCopyExtParams迁移及文档错误码修正 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !7482 merge cherry-pick-mr-7319-1784000275331-auto into master arch35: DataCopyExtParams迁移及文档错误码修正 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: https://gitcode.com/cann/ops-nn/issues/4015 ## 改动内容 ### 1. DataCopyParams → DataCopyExtParams 迁移 解决 uint16 在大 UB(如 V121 384KB)下溢出问题,blockLen/srcStride/dstStride 升级为 uint32。涉及 arch35 kernel 文件: - add_rms_norm_dynamic_mx_quant arch35 (fp8/fp4 split_r) - rms_norm_quant_v2 arch35 (regbase_recompute) - rms_norm_dynamic_mx_quant arch35 (recompute) 配套适配:DataCopyPadParams → DataCopyPadExtParams<T_X> ### 2. C-style cast 修复 add_rms_norm_quant_tiling_arch35.cpp 中 (int64_t) → static_cast<int64_t>,符合 G.EXP.14-CPP 规范 ### 3. 文档错误码修正 3 个 rmsnorm+quant 算子文档中 ACLNN_ERR_INNER_TILING_ERROR(561002) 改为 ACLNN_ERR_INNER_NULLPTR(561103): - add_rms_norm_dynamic_mx_quant - rms_norm_dynamic_mx_quant - rms_norm_quant_v3 ### 4. 修复 GCC 14.2 ICE 参考 https://gitcode.com/cann/community/issues/157 ,将 castTrait 定义从模板函数内部 static constexpr 提取到命名空间作用域,规避 GCC 14.2 模板实例化时 ICE: - add_rms_norm_dynamic_mx_quant_common.h - rms_norm_dynamic_mx_quant_common.h ## 涉及文件(10个,全部 arch35) | 文件 | 改动内容 | |------|--------| | add_rms_norm_dynamic_mx_quant arch35 common.h | GCC14 ICE 修复 + DataCopyExtParams迁移 | | add_rms_norm_dynamic_mx_quant arch35 fp8_split_r.h | DataCopyExtParams迁移 | | add_rms_norm_dynamic_mx_quant arch35 fp4_split_r.h | DataCopyExtParams迁移 | | add_rms_norm_dynamic_mx_quant docs | 错误码修正 | | add_rms_norm_quant tiling_arch35.cpp | C-style cast修复 | | rms_norm_dynamic_mx_quant arch35 common.h | GCC14 ICE 修复 | | rms_norm_dynamic_mx_quant arch35 recompute.h | DataCopyExtParams迁移 | | rms_norm_dynamic_mx_quant docs | 错误码修正 | | rms_norm_quant_v2 arch35 regbase_recompute.h | DataCopyExtParams迁移 | | rms_norm_quant_v3 docs | 错误码修正 | See merge request: cann/ops-nn!7482 | 5 小时前 | |
foreach/lamb/scatter类部分算子补齐A5输入校验和资料说明 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !7419 merge master into master foreach/lamb/scatter类部分算子补齐A5输入校验和资料说明 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 foreach/lamb/scatter类部分算子资料描述不清晰,补齐A5输入校验和资料说明 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4075 ## 测试 不涉及 ## 文档更新 foreach/lamb/scatter类部分算子README文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7419 | 1 天前 | |
fix: MaxPool系列融合pass增加kCompatibleInherited版本兼容(D1) Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !6096 merge fix/fusion-pass-d1-compat into master fix: MaxPool系列融合pass增加kCompatibleInherited版本兼容(D1) Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 融合Pass,因兼容性问题,导致在8.5.2的低版本编译过不了,且9.1.0等高版本编译出来的,在低版本tookit包运行,也会出现兼容性问题.修复maxpool系列融合规则兼容性问题。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4052 ## 测试 本地测试图正常,精度正常,冒烟已过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6096 | 1 天前 | |
Fakequant算子设置 BatchMode Co-authored-by: tianye<tianye82@h-partners.com> # message auto-generated for no-merge-commit merge: !7153 merge br_addbatchmode into master Fakequant算子设置 BatchMode Created-by: transformer910 Commit-by: tianye Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> kernel 使用 SyncAll 全核同步,需设置为 BatchMode 涉及算子 1. FakeQuantWithMinMaxVarsPerChannelGradient 2. FakeQuantWithMinMaxVarsGradient ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4078 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7153 | 10 小时前 | |
整改GRU算子op_api目录位置 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !7487 merge fix_gruaclnn_cmake_0714 into master 整改GRU算子op_api目录位置 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 整改GRU算子op_api目录位置,调整到与op_host并行 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4092 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7487 | 1 天前 | |
genop 支持ut 及arch35 目录生成 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7347 merge master into master genop 支持ut 及arch35 目录生成 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> genop 支持UT 及arch35 目录框架生成 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2483 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7347 | 2 天前 | |
UniqueConsecutive算子修改ut包含头文件错误路径 Co-authored-by: wkx12138<weikaixuan@h-partners.com> # message auto-generated for no-merge-commit merge: !7118 merge ucut into master UniqueConsecutive算子修改ut包含头文件错误路径 Created-by: wkx12138 Commit-by: wkx12138 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改原因:UniqueConsecutive算子UT头文件路径错误导致报错 修改方法:使用正确的路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3899 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地编译执行ut成功 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7118 | 8 天前 | |
新增SwigluGroup和SwigluGroupQuant算子PTA接口 Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !7232 merge master into master 新增SwigluGroup和SwigluGroupQuant算子PTA接口 Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 新增SwigluGroup和SwigluGroupQuant算子torch_extension接口 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3999 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> torch调用测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7232 | 5 天前 | |
GetCompile()返回值reinterpret_cast后判空 Co-authored-by: huzhipeng<huzhipeng17@h-partners.com> # message auto-generated for no-merge-commit merge: !7435 merge 0713m into master GetCompile()返回值reinterpret_cast后判空 Created-by: huzhipeng Commit-by: huzhipeng Merged-by: cann-robot Description: 变更摘要 本次变更在 MultiScaleDeformableAttentionGradTiling::Init() 方法中,对 GetCompileInfo() 返回值经 reinterpret_cast 转换后的 compileInfo 指针增加了空指针检查。由于后续代码直接通过 compileInfo->ub_size_platform 和 compileInfo->total_core_num 访问成员,缺少判空可能导致空指针解引用崩溃,新增的防御性检查弥补了这一隐患。 主要改动 新增空指针校验:在 multi_scale_deformable_attention_grad_tiling.cpp 的 Init() 方法中,于 reinterpret_cast 之后、首次解引用之前插入 OP_CHECK_NULL_WITH_CONTEXT(TilingContext, compileInfo) 宏,确保 compileInfo 非空时才继续执行后续逻辑 关联的Issue https://gitcode.com/cann/ops-nn/issues/3882 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7435 | 2 天前 | |
修改matmul 算子atoll 异常反馈判断 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7083 merge master into master 修改matmul 算子atoll 异常反馈判断 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改matmul 算子atoll 异常反馈判断,异常时返回默认值 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3882 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7083 | 7 天前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 1 个月前 | |
add knowledge to optimize conv perf. Co-authored-by: ray-shaw<shaorui4@huawei.com> # message auto-generated for no-merge-commit merge: !7305 merge master_610 into master add knowledge to optimize conv perf. Created-by: ray-shaw Commit-by: ray-shaw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 通过知识库让n方向不全载L0的用例走入小kernel,优化性能,实测性能从9.5us优化到6us。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4017](https://gitcode.com/cann/ops-nn/issues/4017) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> RDV pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7305 | 5 天前 | |
fix doc tools Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7147 merge master into master fix doc tools Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改master分支里面doctool扫描的问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3911 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [.] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7147 | 8 天前 | |
include tensor_api from cann Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !7061 merge include_asc into master include tensor_api from cann Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在使用最新的CANN包时,从环境中获取tensor_api源码进行编译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#3880](https://gitcode.com/cann/ops-nn/issues/3880) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> nn包编包成功,算子功能pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7061 | 7 天前 | |
社区贡献 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6366 merge master into master 社区贡献 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 补充各类场景的贡献说明。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 更新完善社区贡献的流程,增加新增需求到sig例会评审的过程。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6366 | 22 天前 | |
init | 9 个月前 | |
index kernel ut Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !5501 merge master into master index kernel ut Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Kernel UT 中存在大量分散的测试数据准备代码,使用 system() 调用执行 shell 命令: 重复样板代码多:至少 131 个文件包含 system() 调用 依赖 GNU/Linux 工具:cp、chmod、rm、get_current_dir_name(非跨平台) 错误定位困难:system() 返回码粗糙,无法区分路径错误、权限问题、Python缺失等 维护成本高:同一套逻辑散落在大量算子测试中 修改方案 统一测试数据生命周期管理:拷贝、清理、生成、比对 改善报错体验:使用项目标准日志宏 OP_LOGI/OP_LOGE,区分路径错误、脚本执行失败等 降低贡献门槛:开发者只需声明数据目录和参数 本次修改对index 目录下的部分算子 迁移过程中 代码格式做整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2337 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5501 | 1 个月前 | |
fix TorchNPU Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7243 merge master into master fix TorchNPU Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 ① torch_npu名称合一TorchNPU ②《acl API》手册更名修改 ③ link修改commerical为community ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3951 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7243 | 2 天前 | |
nn仓doc tools扫描内容修改 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !3414 merge master into master nn仓doc tools扫描内容修改 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改markdown语法和链接,1000个左右。 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了README.md、gitcode、cmake、common、control、conv、docs、examples、experimental、hash、index、loss、matmul、optim、pooling等文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3414 | 3 个月前 | |
fix Third_Party_Open_Source_Software_List.yaml Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !1879 merge fix_yaml into master fix Third_Party_Open_Source_Software_List.yaml Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新三方依赖清单Third_Party_Open_Source_Software_List.yaml 1、增加protobuf 2、将nlohmann/json修改为json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#1042](https://gitcode.com/cann/ops-nn/issues/1042) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Third_Party_Open_Source_Software_List.yaml ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1879 | 4 个月前 | |
【描 述】 eigen update to 5.0.0 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !1152 merge master into master 【描 述】 eigen update to 5.0.0 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 现开源软件eigen 3.4.0 EOM,Eigen 从3.4.0版本升级到5.0.0,解决生命周期问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/975 https://gitcode.com/cann/ops-nn/issues/389 ## 测试   ## 文档更新 SECURITY.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Update Eigen to 5.0.0 See merge request: cann/ops-nn!1152 | 4 个月前 | |
genop 支持ut 及arch35 目录生成 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !7347 merge master into master genop 支持ut 及arch35 目录生成 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> genop 支持UT 及arch35 目录框架生成 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2483 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7347 | 2 天前 | |
修改conv反向和foreach算子classify_rule目录不生效的问题 Co-authored-by: Hongyi<liuhongyi1@huawei.com> # message auto-generated for no-merge-commit merge: !7090 merge classify_rule_master into master 修改conv反向和foreach算子classify_rule目录不生效的问题 Created-by: hongyiliu111 Commit-by: Hongyi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改conv反向和foreach算子classify_rule目录不生效的问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7090 | 8 天前 | |
批量修改md中冗余空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6027 merge master into master 批量修改md中冗余空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6027 | 1 个月前 | |
fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Co-authored-by: root<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !5110 merge master into master fix(docs,deps,ut): 完善全量编译说明、Debian GCC 安装与 UT 状态码兼容 Created-by: yangyang016 Commit-by: root Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 修复社区体验测试中反馈的三类问题:文档缺少全量编译指引、Debian 系发行版依赖安装失败、以及 UT 公共头文件中 ACLNN_SUCCESS 未定义导致 nn_op_host_ut 编译失败。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> - Fixes #2790 — 文档缺少全量编译指导与耗时说明 - Fixes #2793 — install_deps.sh 在 Debian 13 等系统硬编码 gcc-9 导致安装失败 - Fixes #2794 — ut_string_utils.h 使用未定义的 ACLNN_SUCCESS 导致 UT 编译失败 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - [x] bash -n install_deps.sh 语法检查通过 - [x] 在无 ACLNN_SUCCESS 宏的 mock 头文件下对 ut_string_utils.h 做语法检查通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - **docs/QUICKSTART.md**:明确快速入门默认采用**单算子编译**(--ops),并引导需要整库构建时查阅 docs/zh/install/compile.md。 - **docs/zh/install/compile.md**:在「ops-nn包」章节增加全量编译说明:耗时与机器配置、-j 并行度及联网依赖相关;建议日常开发优先单算子编译。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5110 | 1 个月前 | |
[Docs] modify profile of quick_install Co-authored-by: wangzitao_leo<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !4156 merge profile_0423 into master [Docs] modify profile of quick_install Created-by: wangzitao_leo Commit-by: wangzitao_leo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新资料中: 1. --help时新增打印--soc支持的硬件平台; 2. quick_install指导资料中对于第三方依赖的安装资料调整,使得条理更加清晰,资料更为易用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#2274](https://gitcode.com/cann/ops-nn/issues/2274) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1. 根据资料安装第三方依赖 2. bash build.sh --help时打印--soc支持硬件平台列表 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 1. README.md 2. docs/zh/install/compile.md 3. docs/zh/install/quick_install.md 4. requirements.txt ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4156 | 2 个月前 | |
Remove the dependency asc-tool Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5220 merge eng into master Remove the dependency asc-tool Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 Remove the dependency asc-tool ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 工程编译验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5220 | 1 个月前 |
ops-nn
🔥Latest News
- [2026/05] 优化kernel编译配置项,减少simplified_key和ascendc_config配置文件(!3330)。
- [2026/05] 引入ops-tensor,基于分层结构优化Cube类算子,减少偏移量计算和简化指令参数(!5036)。
- [2026/05] 发布生态算子的精度验收标准(!4572)。
- [2026/03] 开源算子支持下一代芯片:Ascend950PR(!450)。
- [2026/03] 新增<<<>>>的算子开发样例(!620)。
- [2026/03] 低bit类算子和融合算子支持更多数据类型:fp8/mxfp8/hifp8/mxfp4等,并支持pertensor/perchannel/pertoken/pergroup/perblock等不同量化和组合方式:全量化融合算子:quant_batch_matmul_v4,伪量化融合算子:weight_quant_batch_matmul_v2。
- [2026/03] 支持SIMD/SIMT新同构编程算子实现:[MapIndex](#660),[ScatterSub](#710)。
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT/KirinX90,可以通过CANN Simulator仿真工具开发调试;优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导;新支持稀疏4:2量化matmul算子,针对稀疏矩阵开启硬件加速能力。
- [2025/11] 新支持算子index_fill、masked_scatter、scatter、tf_scatter_add、fused_cross_entropy_loss_with_max_sum。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-nn项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-nn是CANN(Compute Architecture for Neural Networks)算子库中提供神经网络计算能力的高阶算子库,包括matmul类、activation类等算子,算子库架构图如下:

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