本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
子流水线支持更新门禁代码 Co-authored-by: jinyijian<jinyijian1@huawei.com> # message auto-generated for no-merge-commit merge: !4515 merge CI into master 子流水线支持更新门禁代码 Created-by: jinyijian Commit-by: jinyijian Merged-by: cann-robot Description: ## 描述 子流水线支持更新门禁代码 当门禁包含子流水线时,如果没有这个配置,会导致子流水线中任务无法更新最新代码,使用落后的代码跑门禁 ## 关联的Issue ## 测试 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4515 | 5 个月前 | |
Modifying the Chips Supported by an Operator Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !6365 merge master into master Modifying the Chips Supported by an Operator Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Modifying the Chips Supported by an Operator ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3483 ## 测试 NA ## 文档更新 具体请见issue ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6365 | 4 个月前 | |
Optimize QBMM MX tensor API launcher Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !5781 merge backup into master Optimize QBMM MX tensor API launcher Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 本 PR 针对 QuantBatchMatMulV3 的 MX per-group、batchC=1 且无向量后处理场景,新增 Blaze Tensor API unbatched 执行路径,减少通用 batch kernel 在单 batch 场景下的冗余处理。 主要修改: 1. Host tiling 增加 MX unbatched 场景识别,在 batchC=1、非 B/AB full load、无 vec postprocess 时选择新的 kernel type 9/10。 2. Kernel 侧新增 QbmmMxUnbatchedTensorApiKernel,接入 ops-tensor 中的 QuantMmUnbatchedMX。 3. quant_batch_matmul_v3.cpp 在 MX + Blaze 分支下,为 ND/NZ 以及 transpose 组合补充 unbatched kernel 派发。 4. tiling key 增加 TPL_NO_VEC_EPILOGUE_WITH_MMAPI_UNBATCHED 和 TPL_NO_VEC_EPILOGUE_CUSTOM_GMTOAL1_WITH_MMAPI_UNBATCHED,并通过 SUPPORT_MX_UNBATCHED_TILING_KEY 限制到 MX dtype + E8M0 scale + ASC DevKit >= 9.1 场景。 5. 更新 ops-tensor 依赖版本,使用包含 QuantMmUnbatchedMX 能力的提交。 6. 对原 QbmmMxBasicApiKernel 的参数构造做等价整理,不改变原 batch 路径计算语义。 影响范围: - 目标场景为 QuantBatchMatMulV3 MX per-group、batchC=1、无 vec postprocess 的 Blaze 路径。 - 非 MX 场景、带 vec postprocess 场景、多 batch 场景以及原有 batch Tensor API 路径保持原派发逻辑。 ## 关联的Issue 关联 Issue #3248 https://gitcode.com/cann/ops-nn/issues/3248 ## 测试 已完成: - 本地执行 git diff --check 28f07e7b3..562b6016bbbabe2d401a22fc7fda298a885fa0f0,无格式告警。 - 静态检查新增 kernel type 9/10 与 kernel 派发路径,确认 unbatched 路径仅在 MX + Blaze 条件下接入。 待补充: - MX batchC=1 目标场景精度/性能用例。 - 原 MX batchC>1、非 MX、带 vec postprocess 等回归用例。 - op_host tiling key 相关 UT 预期更新与验证。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5781 | 4 个月前 | |
去除matmul中的显式CheckLogLevel调用 Co-authored-by: liyuanqiang<liyuanqiang@huawei.com> # message auto-generated for no-merge-commit merge: !6224 merge log_rectification into master 去除matmul中的显式CheckLogLevel调用 Created-by: liyuanqiang Commit-by: liyuanqiang Merged-by: cann-robot Description: ## 描述 内部日志整改,去除CheckLogLevel <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue: [#3406](https://gitcode.com/cann/ops-nn/issues/3406) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6224 | 4 个月前 | |
批量修改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 | 4 个月前 | |
conv cleancode Co-authored-by: huafeng793<chenhuafeng2@huawei.com> # message auto-generated for no-merge-commit merge: !6315 merge b012_cleancode into master conv cleancode Created-by: huafeng793 Commit-by: huafeng793 Merged-by: cann-robot Description: ## 描述 conv cleancode ## 关联的Issue NA ## 测试 NA ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:cleancode See merge request: cann/ops-nn!6315 | 4 个月前 | |
【特性】新增fusedSgd Co-authored-by: majiajian_hw<majiajian@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge add_fused_sgd_2 into master 【特性】新增fusedSgd Created-by: nunnons2 Commit-by: majiajian_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增fusedSgd算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3454 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已完成泛化测试 #### 测试用例 std::vector<float> paramsRefHostData1 = {1, 2, 3, 4, 5, 6, 7, 8}; std::vector<float> gradsRefHostData1 = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}; std::vector<float> momentumHostData1 = {0, 0, 0, 0, 0, 0, 0, 0}; std::vector<float> paramsRefHostData2 = {9, 10, 11, 12}; std::vector<float> gradsRefHostData2 = {0.9, 1.0, 1.1, 1.2}; std::vector<float> momentumHostData2 = {0, 0, 0, 0}; std::vector<float> gradScaleOptionalHostData = {1.0}; std::vector<int64_t> inputShape1 = {2, 2, 2}; std::vector<int64_t> inputShape2 = {2, 2}; std::vector<int64_t> scalarShape = {1}; #### 执行结果 ====== Tensor 2 gradsRef results ====== result[0] is: 0.900000 result[1] is: 1.000000 result[2] is: 1.100000 result[3] is: 1.200000 ------ Momentum buffer 2 ------ result[0] is: 0.990000 result[1] is: 1.100000 result[2] is: 1.210000 result[3] is: 1.320000 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增README.md、aclnnFusedSgd.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6220 | 4 个月前 | |
修复md中空格 Co-authored-by: wuyao51511<wuyao61@h-partners.com> # message auto-generated for no-merge-commit merge: !6074 merge master into master 修复md中空格 Created-by: wuyao51511 Commit-by: wuyao51511 Merged-by: cann-robot Description: ## 描述 文档空格问题清理 ## 关联的Issue https://atomgit.com/cann/ops-nn/issues/3345 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了 quick_install.md aclnnExpandIntoJaggedPermute.md aclnnQuantMatmulDequant.md aclnnLstmBackward.md examples/fast_kernel_launch_example/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6074 | 4 个月前 | |
【社区任务】Sleep算子开发 Co-authored-by: qq_62078295<1135470306@qq.com> # message auto-generated for no-merge-commit merge: !5276 merge feature/sleep-ops-20260506 into master 【社区任务】Sleep算子开发 Created-by: qq_62078295 Commit-by: qq_62078295 Merged-by: cann-robot Description: ## 描述 新增Sleep算子 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3348 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5276 | 4 个月前 | |
feat: 新增 ForeachAddList、ScatterList、GroupNormSilu 三个算子的 Fallback 实现 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !6161 merge master into master feat: 新增 ForeachAddList、ScatterList、GroupNormSilu 三个算子的 Fallback 实现 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 为 ForeachAddList、ScatterList、GroupNormSilu 三个算子新增图模式下的 Fallback 实现。 ### 改动原因 三个算子在图模式(Graph Mode)下缺少 Fallback 回调,无法在图模式下正常执行。 ### 改动方法 - **foreach_add_list_fallback.cpp**:实现 ForeachAddListExecuteFunc,处理两组动态输入 TensorList(X1/X2),按算子输入 dtype 区分 alpha 标量类型转换(FLOAT16/FLOAT→scalar double, INT32→scalar int64),含动态输出 TensorList 构建,调用 aclnnForeachAddList - **scatter_list_fallback.cpp**:实现 ScatterListHostExecuteFunc,遍历动态 var 输入 TensorList(最大 256),获取 indices/update/mask 及 reduce、axis 属性,调用 aclnnScatterList - **group_norm_silu_fallback.cpp**:实现 GroupNormSiluExecuteFunc,支持可选 gamma/beta 输入,获取 group(int32)/eps(double)/activateSilu(bool) 属性,构建 3 路输出(out/meanOut/rstdOut),调用 aclnnGroupNormSiluV2 全部通过 op_fallback.h 提供的 EXEC_OPAPI_CMD 宏统一封装 WorkSpace 分配、ACLNN 调用及资源释放。 ## 关联的Issue - #3433 ## 测试 本地编译验证通过。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6161 | 4 个月前 | |
revise kernel compile options Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5202 merge master into master revise kernel compile options Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 kernel配置项整改:foreach,hash,loss,rnn,vfusion ## 关联的Issue [#1985](https://gitcode.com/cann/ops-nn/issues/1985) ## 测试 本地编译,对比修改前后.o ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5202 | 4 个月前 | |
增加文档参数描述,删除冗余变量 Co-authored-by: shi-shengjie1<shishengjie3@huawei.com> # message auto-generated for no-merge-commit merge: !6308 merge TopKP_MD into master 增加文档参数描述,删除冗余变量 Created-by: shishengjie Commit-by: shi-shengjie1 Merged-by: cann-robot Description: ## 描述 增加topK、minP的参数说明,删除kernel中未用到的冗余变量 ## 关联的Issue 关联Issue [#3491](https://gitcode.com/cann/ops-nn/issues/3491) ## 测试 atk测试214条用例通过 ## 文档更新 更新了README.md、aclnnTopKTopPSampleV2.md文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6308 | 4 个月前 | |
修改L1LOSS资料文档,防止理解偏差 Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !6346 merge l1lossdocsfix into master 修改L1LOSS资料文档,防止理解偏差 Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 修改L1LOSS资料文档,防止理解偏差 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3481](https://gitcode.com/cann/ops-nn/issues/3481) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> loss/lp_loss/docs/aclnnL1Loss.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6346 | 4 个月前 | |
fix: 调整拦截wqbmmv2 weight(fp8)时pertensor且n非1的场景,qbmmv4 CUBE_INNER_ERR_REPORT、VECTOR_INNER_ERR_REPORT_TILIING 改为 OP_LOGE 或 OP_LOGE_FOR_xx, reason的句尾.防止双句号,修复qbmmv4其他format打印 Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !6102 merge fix_qbmmv4_cube_vector_err_msg into master fix: 调整拦截wqbmmv2 weight(fp8)时pertensor且n非1的场景,qbmmv4 CUBE_INNER_ERR_REPORT、VECTOR_INNER_ERR_REPORT_TILIING 改为 OP_LOGE 或 OP_LOGE_FOR_xx, reason的句尾.防止双句号,修复qbmmv4其他format打印 Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 1、wqbmmv2中传入n>1,antiquantScale的shape为(1, 1),预期报错。在aclnn和tiling中拦截n>1时的pertensor 2、qbmmv4中旧的错误报错不是EZ9xxx或者EZ0xxx需要调整。在代码中调整为OP_LOGE和OP_LOGE_FOR_xxx 3、修复formats改为format,打印实际aFormat,去掉OP_LOGE_FOR_ reason的句尾.防止双句号,修复qbmmv4其他format打印 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3427 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6102 | 4 个月前 | |
modified md files(for readability improvement) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !6360 merge master into master modified md files(for readability improvement) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Updated the product types supported by the aclnn APIs. ## 关联的Issue [#3414](https://gitcode.com/cann/ops-nn/issues/3414) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 docs/zh/op_api_list.md norm/add_rms_norm_quant_v2/docs/aclnnAddRmsNormQuantV2.md norm/gemma_rms_norm/README.md norm/gemma_rms_norm/docs/aclnnGemmaRmsNorm.md norm/renorm/docs/aclnnEmbeddingRenorm.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6360 | 4 个月前 | |
【特性】新增fusedSgd Co-authored-by: majiajian_hw<majiajian@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge add_fused_sgd_2 into master 【特性】新增fusedSgd Created-by: nunnons2 Commit-by: majiajian_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增fusedSgd算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3454 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已完成泛化测试 #### 测试用例 std::vector<float> paramsRefHostData1 = {1, 2, 3, 4, 5, 6, 7, 8}; std::vector<float> gradsRefHostData1 = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}; std::vector<float> momentumHostData1 = {0, 0, 0, 0, 0, 0, 0, 0}; std::vector<float> paramsRefHostData2 = {9, 10, 11, 12}; std::vector<float> gradsRefHostData2 = {0.9, 1.0, 1.1, 1.2}; std::vector<float> momentumHostData2 = {0, 0, 0, 0}; std::vector<float> gradScaleOptionalHostData = {1.0}; std::vector<int64_t> inputShape1 = {2, 2, 2}; std::vector<int64_t> inputShape2 = {2, 2}; std::vector<int64_t> scalarShape = {1}; #### 执行结果 ====== Tensor 2 gradsRef results ====== result[0] is: 0.900000 result[1] is: 1.000000 result[2] is: 1.100000 result[3] is: 1.200000 ------ Momentum buffer 2 ------ result[0] is: 0.990000 result[1] is: 1.100000 result[2] is: 1.210000 result[3] is: 1.320000 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增README.md、aclnnFusedSgd.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6220 | 4 个月前 | |
revise kernel compile options: pooling Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !6112 merge pooling into master revise kernel compile options: pooling Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 pooling算子kernel配置整改 ## 关联的Issue [#1985](https://gitcode.com/cann/ops-nn/issues/1985) ## 测试 本地编译对比二进制文件完全一致 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6112 | 4 个月前 | |
matmul类算子kernel入口添加InitSocState初始化寄存器状态 Co-authored-by: y00943198<yangtao363@huawei.com> # message auto-generated for no-merge-commit merge: !6195 merge master into master matmul类算子kernel入口添加InitSocState初始化寄存器状态 Created-by: AlbertYoung192 Commit-by: y00943198 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 当前存在部分算子计算过程中,kernel内修改硬件寄存器状态且使用后未还原,引发后续算子计算过程中未知错误的问题。在算子kernel入口添加InitSocState,重置硬件寄存器状态,规避上述问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3488 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地自验证、二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6195 | 4 个月前 | |
C++ clean code Co-authored-by: doufloat<baijinxiang@huawei.com> # message auto-generated for no-merge-commit merge: !5999 merge master into master C++ clean code Created-by: doufloat Commit-by: doufloat Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 解决如下Clean code问题: 静态扫描出现编译告警: comparison between signed and unsigned integer expressions [-Wsign-compare] type qualifiers ignored on function return type [-Wignored-qualifiers] unused variable narrowing conversion of '(int64_t)bp_groups' from 'int64_t {aka long int}' to 'int' inside { } [-Wnarrowing] C++代码规范: G.FUN.02-CPP 函数的所有声明必须与定义具有一致的参数名 G.FUN.03-CPP 禁止函数有未被使用的参数 G.FMT.17-CPP 合理安排空行 G.EXP.22-CPP 确保除法和余数运算不会导致除零错误(被零除) G.CNS.02-CPP 不要使用难以理解的字面常量 G.CNS.04-CPP 对于指针和引用类型的参数,如果不需要修改其引用的对象,应使用const修饰 G.FMT.14-CPP 指针类型"*"和引用类型"&"只跟随类型或变量名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3309 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5999 | 4 个月前 | |
【社区任务】Sleep算子开发 Co-authored-by: qq_62078295<1135470306@qq.com> # message auto-generated for no-merge-commit merge: !5276 merge feature/sleep-ops-20260506 into master 【社区任务】Sleep算子开发 Created-by: qq_62078295 Commit-by: qq_62078295 Merged-by: cann-robot Description: ## 描述 新增Sleep算子 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3348 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5276 | 4 个月前 | |
【FIX】QuantBatchMatmulV3 基于编译期 asc-devkit 版本判断 Tensor API 能力导致运行时包不匹配的问题 Co-authored-by: YaQ1an9<1185365215@qq.com> # message auto-generated for no-merge-commit merge: !5927 merge codex/runtime-asc-devkit-version into master 【FIX】QuantBatchMatmulV3 基于编译期 asc-devkit 版本判断 Tensor API 能力导致运行时包不匹配的问题 Created-by: Hu1L1 Commit-by: YaQ1an9 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 将 QuantBatchMatmulV3 的 Tensor API 能力判断从编译期 asc-devkit 版本宏切换为运行时 CANN runtime 版本判断。 原逻辑依赖 ASC_DEVKIT_MAJOR/ASC_DEVKIT_MINOR: cpp (ASC_DEVKIT_MAJOR >= 9) && (ASC_DEVKIT_MINOR > 0) 该判断只能反映编译环境版本,不能保证与实际运行时 CANN 包一致。为避免编译包和运行包不一致时走错 Tensor API 路径,本 PR 改为调用: aclsysGetVersionNum("runtime", &versionNum) 并以 versionNum >= 90100000 判断是否支持 Tensor API 相关路径。获取版本失败时保守返回 false。 ` 同时补充: host 侧 ophost 动态库链接 acl_rt; op_host UT 链接 acl_rt; UT 复用 host util 中的 IsTensorapiCapable(),避免测试侧重复维护编译期判断逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行代码检查: 确认 aclsysGetVersionNum 符号由 libacl_rt.so 导出; 确认 host .so 和 op_host UT 均已补充 acl_rt 链接依赖; 确认 QuantBatchMatmulV3 host util 和 UT 均使用运行时版本判断逻辑。 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及资料修改 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5927 | 4 个月前 | |
修复CheckShape函数入参可能为空导致的空指针解引用漏洞 Co-authored-by: cxx03<704214015@qq.com> # message auto-generated for no-merge-commit merge: !3864 merge nullptr_0330_1 into master 修复CheckShape函数入参可能为空导致的空指针解引用漏洞 Created-by: cxx03 Commit-by: cxx03 Merged-by: cann-robot Description: ## 描述 ### 问题描述 可选参数 scaleOptional 允许为 nullptr,但在空指针检查前被直接 ->GetStorageFormat() 解引用,可能导致 Host 侧崩溃。", ### 判断依据 以外部接口 aclnnModulateGetWorkspaceSize 为入口,参数 scaleOptional 从接口声明进入 CheckParams -> CheckShape,CheckShape 在第94行先解引用,再在后续 lambda 中才处理 optionalTensor == nullptr。该保护顺序无效,无法覆盖先前 sink,传播链完整且可达。 ### 修复方式 在 CheckShape 内对 scaleOptional/shiftOptional 做前置空指针分支,再访问 GetStorageFormat();或将格式检查改为仅在非空分支执行 ### 漏洞数据流 ``json "tracking_path": { "source": { "id": "aclnnModulateGetWorkspaceSize::scaleOptional", "type": "Param_Potential_NULL", "file": "vfusion/modulate/op_host/op_api/aclnn_modulate.cpp", "function": "aclnnModulateGetWorkspaceSize", "line": 167, "code": "aclnnStatus aclnnModulateGetWorkspaceSize(const aclTensor* self, const aclTensor* scaleOptional, ...)", "description": "外部接口可选指针参数,允许为NULL。" }, "propagation_path": [ { "file": "vfusion/modulate/op_host/op_api/aclnn_modulate.cpp", "function": "aclnnModulateGetWorkspaceSize", "line": 177, "code": "auto ret = CheckParams(self, scaleOptional, shiftOptional, out);", "description": "参数原样传入检查链。" }, { "file": "vfusion/modulate/op_host/op_api/aclnn_modulate.cpp", "function": "CheckParams", "line": 153, "code": "CHECK_RET(CheckShape(self, scaleOptional, shiftOptional, out), ACLNN_ERR_PARAM_INVALID);", "description": "继续传递到 CheckShape。" } ], "sink": { "file": "vfusion/modulate/op_host/op_api/aclnn_modulate.cpp", "function": "CheckShape", "line": 94, "code": "scaleOptional->GetStorageFormat()", "description": "在判空前直接解引用可选指针。" } } `` ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3864 | 4 个月前 | |
update clang-format Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6193 merge master into master update clang-format Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新代码仓clang-format 配置: Align:参数换行时,会与左括号后的第一个参数对齐 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3389 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6193 | 4 个月前 | |
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 | 5 个月前 | |
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 | 5 个月前 | |
批量修改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 | 4 个月前 | |
ccache option Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6146 merge master into master ccache option Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 构建增加ccache 参数控制,支持编译时禁用ccache, 构建时灵活选择缓存方式 ccache=VALUE "Enable or disable ccache compilation acceleration, VALUE options: on/off/true/false/disable, Default: on" Example: --ccache=off to disable ccache ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3363 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试点清单 测试 1: 默认行为(不传参数) bash build.sh --ophost 预期: - CMake 日志显示 Enable ccache ON 或 TRUE - 如果系统有 ccache,编译使用 ccache 加速 测试 2: 禁用 ccache - 使用 off bash build.sh --ophost --ccache=off 预期: - CMake 日志显示 Enable ccache FALSE - CMakeLists.txt 中 find_program(CCACHE_PROGRAM ccache) 不执行 - 编译不使用 ccache 测试 3: 禁用 ccache - 使用 false bash build.sh --ophost --ccache=false 预期: 同测试 2 测试 4: 禁用 ccache - 使用 disable bash build.sh --ophost --ccache=disable 预期: 同测试 2 测试 5: 验证 CMakeCache.txt bash build.sh --ophost --ccache=off grep ENABLE_CCACHE build/CMakeCache.txt 预期输出: ENABLE_CCACHE:BOOL=FALSE 测试 6: 验证 cmake_init() 参数传递 bash build.sh --pkg --soc=ascend910b --ccache=off 验证点: 查看 cmake_init() 执行时的日志输出,确认 -DENABLE_CCACHE=FALSE 参数已传递 测试 7: 其他编译模式 ### 测试各种编译模式 bash build.sh --pkg --soc=ascend910b --ccache=off bash build.sh --opkernel --soc=ascend910b --ccache=off bash build.sh --opapi --ccache=off bash build.sh -u --ccache=off 预期: 所有模式都正确传递 ENABLE_CCACHE 参数 测试 8: 参数无效值处理 bash build.sh --ophost --ccache=invalid_value 预期: - ENABLE_CCACHE 保持默认值 TRUE - CMake 日志显示 Enable ccache ON ccache -s 统计ccache命中情况 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6146 | 4 个月前 | |
社区贡献 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 | 4 个月前 | |
init | 1 年前 | |
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 | 5 个月前 | |
修复sig组链接 Co-authored-by: ilovescrapy<2623969821@qq.com> # message auto-generated for no-merge-commit merge: !5406 merge master into master 修复sig组链接 Created-by: ilovescrapy Commit-by: ilovescrapy Merged-by: cann-robot Description: 原sig链接为ops-basic,然而ops-basic sig下是ops-basic、ops-math、ops-cv仓并没有ops-nn,ops-nn仓独属于ops-nn SIG See merge request: cann/ops-nn!5406 | 4 个月前 | |
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 | 6 个月前 | |
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 | 8 个月前 | |
【描 述】 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 | 8 个月前 | |
ccache option Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !6146 merge master into master ccache option Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 构建增加ccache 参数控制,支持编译时禁用ccache, 构建时灵活选择缓存方式 ccache=VALUE "Enable or disable ccache compilation acceleration, VALUE options: on/off/true/false/disable, Default: on" Example: --ccache=off to disable ccache ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3363 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试点清单 测试 1: 默认行为(不传参数) bash build.sh --ophost 预期: - CMake 日志显示 Enable ccache ON 或 TRUE - 如果系统有 ccache,编译使用 ccache 加速 测试 2: 禁用 ccache - 使用 off bash build.sh --ophost --ccache=off 预期: - CMake 日志显示 Enable ccache FALSE - CMakeLists.txt 中 find_program(CCACHE_PROGRAM ccache) 不执行 - 编译不使用 ccache 测试 3: 禁用 ccache - 使用 false bash build.sh --ophost --ccache=false 预期: 同测试 2 测试 4: 禁用 ccache - 使用 disable bash build.sh --ophost --ccache=disable 预期: 同测试 2 测试 5: 验证 CMakeCache.txt bash build.sh --ophost --ccache=off grep ENABLE_CCACHE build/CMakeCache.txt 预期输出: ENABLE_CCACHE:BOOL=FALSE 测试 6: 验证 cmake_init() 参数传递 bash build.sh --pkg --soc=ascend910b --ccache=off 验证点: 查看 cmake_init() 执行时的日志输出,确认 -DENABLE_CCACHE=FALSE 参数已传递 测试 7: 其他编译模式 ### 测试各种编译模式 bash build.sh --pkg --soc=ascend910b --ccache=off bash build.sh --opkernel --soc=ascend910b --ccache=off bash build.sh --opapi --ccache=off bash build.sh -u --ccache=off 预期: 所有模式都正确传递 ENABLE_CCACHE 参数 测试 8: 参数无效值处理 bash build.sh --ophost --ccache=invalid_value 预期: - ENABLE_CCACHE 保持默认值 TRUE - CMake 日志显示 Enable ccache ON ccache -s 统计ccache命中情况 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6146 | 4 个月前 | |
【特性】新增fusedSgd Co-authored-by: majiajian_hw<majiajian@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge add_fused_sgd_2 into master 【特性】新增fusedSgd Created-by: nunnons2 Commit-by: majiajian_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增fusedSgd算子 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/3454 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已完成泛化测试 #### 测试用例 std::vector<float> paramsRefHostData1 = {1, 2, 3, 4, 5, 6, 7, 8}; std::vector<float> gradsRefHostData1 = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}; std::vector<float> momentumHostData1 = {0, 0, 0, 0, 0, 0, 0, 0}; std::vector<float> paramsRefHostData2 = {9, 10, 11, 12}; std::vector<float> gradsRefHostData2 = {0.9, 1.0, 1.1, 1.2}; std::vector<float> momentumHostData2 = {0, 0, 0, 0}; std::vector<float> gradScaleOptionalHostData = {1.0}; std::vector<int64_t> inputShape1 = {2, 2, 2}; std::vector<int64_t> inputShape2 = {2, 2}; std::vector<int64_t> scalarShape = {1}; #### 执行结果 ====== Tensor 2 gradsRef results ====== result[0] is: 0.900000 result[1] is: 1.000000 result[2] is: 1.100000 result[3] is: 1.200000 ------ Momentum buffer 2 ------ result[0] is: 0.990000 result[1] is: 1.100000 result[2] is: 1.210000 result[3] is: 1.320000 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增README.md、aclnnFusedSgd.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6220 | 4 个月前 | |
批量修改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 | 4 个月前 | |
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 | 5 个月前 | |
[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 | 6 个月前 | |
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 | 5 个月前 |
ops-nn
🔥Latest News
- [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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。