本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
nn整仓doc Tools工具扫描问题修改0330 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !3325 merge master into master nn整仓doc Tools工具扫描问题修改0330 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 整仓文档问题修改,修改不符合markdown规范和链接。 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 更新了docs、docs、experimental、experimental/index 、experimental/matmul 、matmul 等文件 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3325 | 5 个月前 | |
nn仓芯片类型补充以及资料格式修改 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !3420 merge xinpian into master nn仓芯片类型补充以及资料格式修改 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3420 | 5 个月前 | |
在experimental目录支持<<<>>>算子编译工程 Co-authored-by: luyakun<luyakun@h-partners.com> # message auto-generated for no-merge-commit merge: !3235 merge conv_exp into master 在experimental目录支持<<<>>>算子编译工程 Created-by: luyakun_hw Commit-by: luyakun Merged-by: cann-robot Description: ## 描述 在experimental目录支持<<<>>>算子编译工程,改动方式为在scripts目录下新增torch_extension目录用来存放编译<<<>>>算子编译whl包所需的脚本,同时适配build.sh脚本文件 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1450 ## 测试 本地执行bash build.sh --pkg --experimental,编译experimental目录下所有算子,生成的whl包在build_out目录下,执行bash build.sh --pkg --experimental --ops=op1,op2,编译experimental目录下指定的算子 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3235 | 5 个月前 | |
合并cubeMathType=4/5为USE_FP32_ADD Co-authored-by: rueenov11<zhuruyi@huawei.com> # message auto-generated for no-merge-commit merge: !3452 merge modify_cubeMathType into master 合并cubeMathType=4/5为USE_FP32_ADD Created-by: rueenov11 Commit-by: rueenov11 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为提升torch.npu.matmul.cube_math_type接口的易用性,合并MatMul aclnn接口中的cubeMathType入参枚举值4/5为cubeMathType=4:USE_FP32_ADD,表示使用高精度方式进行计算。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了以下文档: matmul/batch_mat_mul_v3/docs/aclnnBaddbmm&aclnnInplaceBaddbmm.md matmul/fused_mat_mul/docs/aclnnFusedMatmul.md matmul/mat_mul_v3/docs/aclnnAddmm&aclnnInplaceAddmm.md matmul/mat_mul_v3/docs/aclnnMatmul.md matmul/mat_mul_v3/docs/aclnnMatmulWeightNz.md matmul/mat_mul_v3/docs/aclnnMm.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3452 | 5 个月前 | |
nn仓芯片类型补充以及资料格式修改 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !3420 merge xinpian into master nn仓芯片类型补充以及资料格式修改 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3420 | 5 个月前 | |
fix conv2dv2 dma scene error when cin is always tail Co-authored-by: demon_coffee<lice4@huawei.com> # message auto-generated for no-merge-commit merge: !3495 merge master into master fix conv2dv2 dma scene error when cin is always tail Created-by: demon_coffee Commit-by: demon_coffee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 【问题背景】:dma场景用例执行时,输出出现概率性nan情况 【问题根因】:gm2ub搬运时当cinIter每一个均为tail时,存在loopSize错误使用k0而非ciTail,导致搬运时未按照实际间隔搬运,可能导致ub上读取到的值为超大值,最终导致计算结果超大 【修改方案】: LoadGM2UB时通过cinAL1Iter、vecCi1Iter判断当前ci循环是否存在tail ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#1934](https://gitcode.com/cann/ops-nn/issues/1934) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> dma场景线上用例通过,本地执行用例通过 fmap(1, 3, 32, 32)weight(3, 1, 32, 32)padding(0, 0, 0, 0)stride(64, 64)dilation(1, 1) dtype: float16 format: NCHW ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3495 | 5 个月前 | |
补充apply类算子README文档以及example Co-authored-by: chenfeng61<chenfeng61@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge readme into master 补充apply类算子README文档以及example Created-by: chenfeng61 Commit-by: chenfeng61 Merged-by: cann-robot Description: ## 描述 补充apply类算子README文档以及example <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1869 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3446 | 5 个月前 | |
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 | 5 个月前 | |
softplus算子贡献 Co-authored-by: ilovescrapy<2623969821@qq.com> # message auto-generated for no-merge-commit merge: !3225 merge master into master softplus算子贡献 Created-by: ilovescrapy Commit-by: ilovescrapy Merged-by: cann-robot Description: ## 描述 # 需求背景(required) ## 需求来源背景介绍 ### Softplus算子实现优化 基于Softplus算子历史TBE版本使用Ascend C编程语言进行优化。 Softplus算子(TBE)实现路径和相关API路径 Softplus算子实现路径为:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/impl Softplus算子实现中的API路径:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages/tbe/dsl ### Softplus算子现状分析 通过对Softplus算子TBE版本的功能分析,当前支持的能力如下: ①输出参数为y,输入参数x,支持float16,float32,bfloat16 三种格式的输入. ②Softplus算子功能是 $$ y = log(1 + e^x) $$ Softplus算子TBE版本的整体流程图如下图所示:  # 需求分析 ## 外部组件依赖 不涉及外部组件依赖。 ## 内部适配模块 适配Aclnn接口调用。 ## 需求模块设计 ### 算子原型 1. 原型设计 * 任务书中不需要支持int64 | | | | | | | | ------ | ---- | -------------- | ------ | ------ | ---- | | 名称 | 类别 | dtype | format | shape | 介绍 | | x | 输入 | fp16/fp32/bf16 | ND | all | 输入 | | y | 输出 | fp16/fp32/bf16 | ND | 同x | 输出 | 1. 相关约束 Atlas A2 训练系列产品/Atlas 800I A2推理产品float16、float32、bfloat16 # 需求详细设计 ## 使能方式 | **上层框架** | **涉及的框架勾选** | | ---------------- | ------------------ | | TF训练/推理 | | | Pytorch训练/推理 | | | ATC推理 | √ | | Aclnn直调 | √ | | OPAT调优 | | | SGAT子图切分 | | ## 需求总体设计 **3.2.1 host侧设计:** **tiling策略:** 当不需要广播的情况下,算子计算过程不涉及数据的维度信息,故在host侧将数据视为一维向量,仅考虑数据个数,不考虑数据维度信息。虽然tbe代码中有将标量1广播到x.shape的操作,在AscendC中通过Duplicate接口可以复制标量1,该接口不需要shape传入。 任务均分:coreNum 根据输入长度和块大小动态调整,确保每个核心处理的数据块数均匀。 批量搬运:tailTileLength 和 formerTileLength 计算单次搬运的数据量,通过 tailTileNum 和 formerTileNum 确定小核/大核的搬运次数,将多次搬运合并为批量操作,减少冗余开销。尾块的处理逻辑确保不完整块也能被合并到计算流程中,避免数据碎片。 1. 分核策略 优先使用满核的原则。 如果核间能均分,可视作无大小核区分,大核小核数据块一致; 如果核间不能均分,需要将余出的数据块分配到前几个核上。 输入数据大小计算:通过GetInputShape和GetDataTypeLength函数获取输入数据的大小和类型长度,计算出输入数据的总字节数。 UB内存大小和核心数量获取:通过平台信息获取UB内存大小和核心数量,并根据这些信息调整核心数量。 1. 数据分块和内存优化策略 充分使用UB空间的原则。 需要考虑不同硬件的UB大小不同、是否开启double buffer、kernel侧API实现过程中是否需要临时数据的储存,综合考虑单核内切分的大小。 UB内存大小获取:通过GetCoreMemSize函数获取UB内存的大小,用于后续的数据切分计算。 Tile块计算:根据UB内存大小和预定义的BLOCK_SIZE及BUFFER_NUM,计算出每个Tile块的数据数量。 数据切分:将输入数据按照计算出的Tile块大小进行切分,计算出每个core需要处理的数据块数量和最后一个block的剩余数据量。 设置切分参数:将计算出的切分参数(如每个core的数据量、Tile块大小等)设置到SoftplusTilingData对象中。 这些策略确保了数据在多个核心之间的均匀分布,并且在单个核心内进行了合理的切分,以提高并行处理的效率。 1. tilingkey规划策略 无 **数据检测**: 对不支持AscendC::Cast()bfloat16向float32转换的硬件进行直接在tiling策略时返回Get Operator Workspace failed. error code is 561002报错。 **3.2.2 kernel侧设计:** 进行Init和Process两个阶段,其中Process包括数据搬入(CopyIn)、计算(Compute)、搬出(CopyOut)三个阶段。 1. 由于支持Ascend C开发的硬件中AscendC::Softplus支持float16、float32和bfloat16数据的输入,可以将bfloat16和float16的数据转成float32进行计算,计算完成后再将精度转换回去. 2. tilingkey始终为0。 3. 会用到的API有:Cast、Add、Max等等。 4. Ascend C的Softplus算子流程见下图。  ## 支持硬件 | **支持的芯片版本** | **涉及勾选** | | ------------------------- | ------------ | | 香橙派OrangePi AIpro | | | Atlas 200I/500 A2推理产品 | | | Atlas 800I/T A2 | √ | ## 算子约束限制 不支持广播。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/1717 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3225 | 5 个月前 | |
Wsl_nn资料修改 Co-authored-by: wang_shuli<wangshuli6@h-partners.com> # message auto-generated for no-merge-commit merge: !3250 merge master into master Wsl_nn资料修改 Created-by: wang_shuli Commit-by: wang_shuli Merged-by: cann-robot Description: ## 描述 跟图灵的资料对比,对kirin添加特别说明 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1769 ## 测试 ## 文档更新 更新了README.md文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3250 | 5 个月前 | |
fix: 注释错误 Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !3216 merge master into master fix: 注释错误 Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 更新了注释中opc,改为asc_opc ## 关联的Issue [#1716](https://gitcode.com/cann/ops-nn/issues/1716) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了注释中opc,改为asc_opc ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3216 | 5 个月前 | |
fix ScatterNdAdd performance Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> # message auto-generated for no-merge-commit merge: !3179 merge fix_scatter_nd_add_tiling into master fix ScatterNdAdd performance Created-by: yu_qinfei Commit-by: yu_qinfei Merged-by: cann-robot Description: ## 描述 ScatterNdAdd 排序模版情况在大尾轴情况下,拷贝indices较少,导致性能较差,优化为大尾轴情况下,单行搬入搬出,搬入多个indices ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1798 ## 测试 对应性能较差case,性能提升6倍 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3179 | 5 个月前 | |
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 | 5 个月前 | |
修复matmul目录下相关文档typo问题 Co-authored-by: c00943476<chenlyucheng@huawei.com> # message auto-generated for no-merge-commit merge: !3515 merge master into master 修复matmul目录下相关文档typo问题 Created-by: oscillated Commit-by: c00943476 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复matmul目录下相关文档typo问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#1940](https://gitcode.com/cann/ops-nn/issues/1940) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 修复拼写错误、术语误写和不通顺表述,清理表格内多余空格。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3515 | 5 个月前 | |
适配reduce tiling模板修改 Co-authored-by: Framework111<wangyucai2@huawei.com> # message auto-generated for no-merge-commit merge: !3493 merge master into master 适配reduce tiling模板修改 Created-by: Framework111 Commit-by: Framework111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 适配reduce tiling模板修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-nn!3493 | 5 个月前 | |
补充apply类算子README文档以及example Co-authored-by: chenfeng61<chenfeng61@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge readme into master 补充apply类算子README文档以及example Created-by: chenfeng61 Commit-by: chenfeng61 Merged-by: cann-robot Description: ## 描述 补充apply类算子README文档以及example <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1869 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3446 | 5 个月前 | |
完善adaptive_avg_pool2d_proto.h的format信息资料 Co-authored-by: Chapterone<wuxuewen5@huawei.com> # message auto-generated for no-merge-commit merge: !3459 merge master into master 完善adaptive_avg_pool2d_proto.h的format信息资料 Created-by: Chapterone Commit-by: Chapterone Merged-by: cann-robot Description: ## 描述 完善adaptive_avg_pool2d_proto.h的format信息资料,增加了(C, H, W)对应的datafomat说明 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3459 | 5 个月前 | |
修复dynamic_quant精度问题 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !3450 merge master_fix into master 修复dynamic_quant精度问题 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 dynamic_quant 在arch2002上跑特定shape(117,9216)时精度会失败,经定位问题为特定尾轴时,取scale值未增加初始偏移量,增加初始偏移量后精度pass <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 管理Issue #1883 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 全量精度测试总计1309条用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3450 | 5 个月前 | |
[bugfix] bidirectionLstm设置scheduleMode为1,防止多流场景syncall卡住 Co-authored-by: qiansunchi<qiansunchi@huawei.com> # message auto-generated for no-merge-commit merge: !3387 merge master into master [bugfix] bidirectionLstm设置scheduleMode为1,防止多流场景syncall卡住 Created-by: qiansunchi159 Commit-by: qiansunchi Merged-by: cann-robot Description: ## 描述 bidirectionLstm设置scheduleMode为1,防止多流场景syncall卡住 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3387 | 5 个月前 | |
在experimental目录支持<<<>>>算子编译工程 Co-authored-by: luyakun<luyakun@h-partners.com> # message auto-generated for no-merge-commit merge: !3235 merge conv_exp into master 在experimental目录支持<<<>>>算子编译工程 Created-by: luyakun_hw Commit-by: luyakun Merged-by: cann-robot Description: ## 描述 在experimental目录支持<<<>>>算子编译工程,改动方式为在scripts目录下新增torch_extension目录用来存放编译<<<>>>算子编译whl包所需的脚本,同时适配build.sh脚本文件 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1450 ## 测试 本地执行bash build.sh --pkg --experimental,编译experimental目录下所有算子,生成的whl包在build_out目录下,执行bash build.sh --pkg --experimental --ops=op1,op2,编译experimental目录下指定的算子 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3235 | 5 个月前 | |
BroadcastGradientArgs/LayerNorm支持下一代芯片 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !2099 merge add_ops_0225 into master BroadcastGradientArgs/LayerNorm支持下一代芯片 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> BroadcastGradientArgs、LayerNorm算子支持下一代芯片 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/1382 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ut、st、二级冒烟均测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了norm/layer_norm/README.md 更新了index/broadcast_gradient_args/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:BroadcastGradientArgs、LayerNorm算子支持下一代芯片 See merge request: cann/ops-nn!2099 | 5 个月前 | |
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 | 5 个月前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !293 merge license into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!293 | 9 个月前 | |
fix foreach tiling shape check Co-authored-by: alfengyuan<yuanyaofeng@h-partners.com> # message auto-generated for no-merge-commit merge: !3200 merge master into master fix foreach tiling shape check Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次PR主要包含两项优化和一项缺陷修复。首先,在代码库配置层面,为保持仓库整洁,添加了对ModelArts平台临时目录的忽略规则。其次,在代码逻辑层面,移除了一个算子实现中冗余的函数调用以简化流程。核心修复是针对Foreach算子输出形状检查逻辑中的一个缺陷,原逻辑过于严格,错误地限制了输出形状必须与输入完全一致,本次修复放宽了条件,允许输出形状与输入不同但元素总数不大于输入,从而支持了更灵活的操作场景。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/1738 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3200 | 5 个月前 | |
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 | 5 个月前 | |
移动version.cmake 文件 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !3093 merge new into master 移动version.cmake 文件 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 移动version.cmake 文件 ## 关联的Issue [#1671](https://gitcode.com/cann/ops-nn/issues/1671) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:工程重构 See merge request: cann/ops-nn!3093 | 5 个月前 | |
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 | 5 个月前 | |
init | 11 个月前 | |
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !3385 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3385 | 5 个月前 | |
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 | 5 个月前 | |
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 | 5 个月前 | |
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 | 6 个月前 | |
【描 述】 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 | 6 个月前 | |
在experimental目录支持<<<>>>算子编译工程 Co-authored-by: luyakun<luyakun@h-partners.com> # message auto-generated for no-merge-commit merge: !3235 merge conv_exp into master 在experimental目录支持<<<>>>算子编译工程 Created-by: luyakun_hw Commit-by: luyakun Merged-by: cann-robot Description: ## 描述 在experimental目录支持<<<>>>算子编译工程,改动方式为在scripts目录下新增torch_extension目录用来存放编译<<<>>>算子编译whl包所需的脚本,同时适配build.sh脚本文件 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1450 ## 测试 本地执行bash build.sh --pkg --experimental,编译experimental目录下所有算子,生成的whl包在build_out目录下,执行bash build.sh --pkg --experimental --ops=op1,op2,编译experimental目录下指定的算子 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3235 | 5 个月前 | |
dynamic_quant classify_rule文件修改 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !3441 merge dynamic_quant_fix_m into master dynamic_quant classify_rule文件修改 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> dynamic_quant算子中存在文件未加入classify_rule配置中,须在classify_rule配置中增加相关的配置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue [#1895](https://gitcode.com/cann/ops-nn/issues/1895) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 可正常编译无问题 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3441 | 5 个月前 | |
添加patch工具依赖 Co-authored-by: yangyang016<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !2531 merge offline_build_docs into master 添加patch工具依赖 Created-by: yangyang016 Commit-by: yangyang016 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次PR旨在解决项目在编译或运行过程中因缺少patch工具依赖而导致构建失败的问题。通过补充依赖说明和增强自动化安装脚本,确保用户环境具备所有必要的前置条件,提升项目构建的成功率和易用性。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2531 | 5 个月前 | |
Support the fusionpass es project Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !907 merge pass_cmake_0121 into master Support the fusionpass es project Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增支持FusionPass编译的工程能力,以及UT测试的功能。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/540 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!907 | 7 个月前 | |
移动version.cmake 文件 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !3093 merge new into master 移动version.cmake 文件 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 移动version.cmake 文件 ## 关联的Issue [#1671](https://gitcode.com/cann/ops-nn/issues/1671) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:工程重构 See merge request: cann/ops-nn!3093 | 5 个月前 |
ops-nn
🔥Latest News
- [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分支可能存在版本不匹配的风险。
⚡️快速入门
若您希望从零到一快速体验项目能力,请访问下述简易教程。
- 环境部署:本文是QuickStart和各类教程的操作前提,请先完成基础环境搭建和源码下载。
- QuickStart:针对源码编译、算子调用/开发/调试等关键能力,提供快速上手的简易指南。
📖学习教程
若您已学习完快速入门章节,对本项目有一定认知,并希望深入了解和体验项目,请访问下述详细教程。
- 算子列表:提供全量算子信息,方便您查看算子分类和功能。
- 算子调用:提供多种源码编译和执行算子样例(包括执行UT)的方法。
- 算子开发:提供算子端到端开发指南,从零学习创建算子工程、实现Tiling和Kernel核心交付件。
- 算子调试调优:提供常见算子调试和调优方法,如DumpTensor、msProf、Simulator等。
除了上述关键教程,还有其他文档介绍,例如算子调用方式、build参数说明、术语概念等,全量文档请访问docs。
🔍目录结构
关键目录如下,详细目录介绍参见项目目录。
├── activation # activation类算子
├── cmake # 项目工程编译目录
├── common # 项目公共头文件和公共源码
├── control # control类算子
├── conv # conv类算子
├── docs # 项目文档介绍
├── examples # 端到端算子开发和调用示例
├── experimental # 用户自定义算子存放目录
├── foreach # foreach类算子
├── index # index类算子
├── loss # loss类算子
├── matmul # matmul类算子
│ ├── transpose_batch_mat_mul # transpose_batch_mat_mul算子所有交付件,如Tiling、Kernel等
│ │ ├── docs # 算子说明文档
│ │ ├── examples # 算子使用示例
│ │ ├── op_graph # 算子构图相关目录
│ │ ├── op_host # 算子信息库、Tiling、InferShape相关实现目录
│ │ ├── op_api # 可选,算子aclnn接口实现目录,如未提供则表示此算子的aclnn接口会让工程自动生成
│ │ ├── op_kernel # 算子Kernel目录
│ │ ├── CMakeLists.txt # 算子编译配置文件
│ │ └── README.md # 算子介绍文档
│ ├── ...
│ └── CMakeLists.txt # 算子编译配置文件
├── ...
├── rnn # rnn类算子
├── scripts # 脚本目录,包含自定义算子、Kernel构建相关配置文件
├── tests # 测试工程目录
├── vfusion # vfusion类算子
├── CMakeLists.txt
├── README.md
├── build.sh # 项目工程编译脚本
├── install_deps.sh # 安装依赖包脚本
└── requirements.txt # 项目需要的第三方依赖包
💬相关信息
🤝联系我们
本项目功能和文档正在持续更新和完善中,建议您关注最新版本。
-
问题反馈:通过GitCode【Issues】提交问题。
-
社区互动:通过GitCode【讨论】参与交流。
-
技术专栏:通过GitCode【Wiki】获取技术文章,如系列化教程、优秀实践等。
技术专题 样例 算子性能优化 MatMul算子性能优化实践与效果分析 算子性能优化 MatMul算子VCV性能优化实践与效果分析