本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: add environment details to bug report Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10383 merge 0912report into master docs: add environment details to bug report Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ISSUE添加模板,引导用户添加环境信息 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了ISSUE_TEMPLATE/bug-report.yml ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10383 | 1 个月前 | |
refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10329 merge codex/geglu-v2-codecheck-local-names into master refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 合并 ge_glu_v2 / ge_glu_grad_v2 两个算子中 erf 与 tanh 两种 approximate 模式的同构 kernel 实现,消除按近似模式整份复制的代码重复(29 个文件:14 删除 + 12 移动合并 + 2 入口修改 + 1 新增,+883/-3291)。纯重构,无功能变更。 ### 改动一:ge_glu_grad_v2(非 arch35) - ge_glu_grad_v2_erf_base.h + ge_glu_grad_v2_tanh_base.h 合并为 ge_glu_grad_v2_base.h(template <typename T, bool IS_ERF>):搬运/转置/队列/三个 Process 主循环收纳为一份;erf/tanh 数学体在 ComputeGeluGrad 的 if constexpr 分支中逐字保留,erf 的 ComputeCDF/ComputePDF 原样保留 - dtype 子类 6 → 3(fp16/fp32/bfp16 各一),基类成员访问按仓库惯例使用 this->/this->template 限定 - 入口 18 个 tiling key 分支仅改类型名;删除 tanh 侧全仓无引用的死常量 DUP_COUNT/DIV_MASK ### 改动二:ge_glu_v2(非 arch35) - op_kernel/tanh/ + op_kernel/erf/ 下 18 个变体合并为 op_kernel/ 根目录 9 个文件(template <typename T, bool IS_ERF>,文件名与类名一致) - erf 需要的额外 TBuf(fp16/bf16 各 +2、fp32 各 +1)声明与 InitBuffer 用 if constexpr 保留,初始化顺序与 erf 原文件一致;仅 fp32/vreduce 的 bufferSize 按 erf/tanh 分别为 4912/6144(UB 预算与 tiling 系数对应) - bf16/vreduce 共享段局部变量 tmp_fp32 统一为 tmp_fp32_1(与 erf 侧命名对齐);三个文件(bf16/align、bf16/align_last_axis_big、fp32/vreduce)中两分支共用的输出 tensor 声明提升到 if constexpr 之前(声明顺序调整,无语义影响) ### 不改动 arch35 整棵树、310P 实现、dtype 轴(fp16/fp32/bf16 各自 cast 路径与队列深度保留)、case 轴、ge_glu_v2_base.h。 ## 关联的Issue Closes #5868 ## 测试 - 等价性验证(脚本化):所有函数实例化按 if constexpr (IS_ERF) 展开后与原 erf/tanh 实现逐行压平比对——tanh 路径全部精确相等;erf 路径精确相等、纯局部变量改名(idx 编号漂移)或声明块内顺序无关的提升;成员声明集合与 TBuf 布局逐实例化核对一致 - **A2(Ascend 910B)真机环境编译验证通过**:CANN 9.2.0,bash build.sh --opkernel --soc=ascend910b --ops=ge_glu_v2,ge_glu_grad_v2 构建成功(修复了 CCE 对依赖基类成员 using 声明支持不完整的问题,改用仓库既有的 this->/this->template 限定风格,以及三处分支内声明的作用域问题) - pre-commit run --files 全部通过(clang-format、OAT 开源合规、尾随空白、私钥检测等) - 已触发 /compile 验证多 arch 编译矩阵 - 说明:本仓内无这两个算子的数值比对用例;erf/tanh 数值路径的等价性依据为上述逐行出处证明(每个函数体可溯源至原文件逐字内容);__aicore__ inline 函数体逐字节保留,性能不变由构造保证 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(无功能变更) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10329 | 1 个月前 | |
知识库接口实现迁移到ops-nn仓 Co-authored-by: Jiaxin_001<jiaxin12@huawei.com> # message auto-generated for no-merge-commit merge: !9748 merge zsk_0902 into master 知识库接口实现迁移到ops-nn仓 Created-by: Jiaxin_001 Commit-by: Jiaxin_001 Merged-by: cann-robot Description: ## 描述 canndev 仓计划删除 LegacyCommonMgr 接口,ops-nn 仓的 Ops::NN::QueryBank 实现依赖该接口访问知识库查询实现代码,将知识库查询的完整实现代码迁移到ops-nn仓,使 ops-nn 自身拥有端到端的知识库查询能力。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5539 ## 测试 测试反向卷积涉及的算子,知识库功能正常且走了新路径。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9748 | 1 个月前 | |
迁移3个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10288 merge tf_plugin_migration_from_canndev into master 迁移3个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移3个TF plugin - depthwise_conv2d_backprop_filter_plugin.cc - depthwise_conv2d_backprop_input_plugin.cc - depthwise_conv2d_forward_native_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10288 | 1 个月前 | |
迁移4个TF plugin Co-authored-by: akira<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !10311 merge tf_plugin_migration2 into master 迁移4个TF plugin Created-by: VoyageZhou Commit-by: akira Merged-by: cann-robot Description: ## 描述 迁移4个TF plugin - apply_adam_with_amsgrad_plugin.cc - lars_v2_plugin.cc - npu_alloc_floatstatus_plugin.cc - prod_env_mat_a_plugin.cc <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [Issue 5812](https://gitcode.com/cann/ops-nn/issues/5812) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10311 | 1 个月前 | |
conv UT失败修复 Co-authored-by: xiaolong_feng<fengxiaolong5@huawei.com> # message auto-generated for no-merge-commit merge: !10495 merge fix-ut into master conv UT失败修复 Created-by: xiaolong_feng Commit-by: xiaolong_feng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> dw UT失败解决 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5876 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> compile通过即可 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UT修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10495 | 1 个月前 | |
新增Batch一致性介绍 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !10458 merge master into master 新增Batch一致性介绍 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增Batch一致性和确定性特性介绍 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5817](https://gitcode.com/cann/ops-nn/issues/5817) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> RAEDME.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10458 | 1 个月前 | |
[fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Co-authored-by: tangweiwei<tangweiwei2@huawei.com> # message auto-generated for no-merge-commit merge: !10258 merge fix/example-copyright-header into master [fix] 补充examples目录下10个示例代码文件缺失的版权声明头 Created-by: tangweiwei2 Commit-by: tangweiwei Merged-by: cann-robot Description: ## 描述 检查仓内所有 .cpp/.cc/.h 源文件(排除 experimental 目录)的版权声明情况,发现 examples 目录下 10 个示例代码文件缺失标准版权声明头(Copyright (c) 20xx Huawei Technologies Co., Ltd. ... CANN Open Software License Agreement Version 2.0 ...)。 本 PR 为以下 10 个文件补充版权声明头,版权年份与各算子同目录下其他源文件保持一致: 1. examples/add_example/examples/test_geir_add_example.cpp(2025) 2. index/scatter_mul/examples/test_geir_scatter_mul.cpp(2026) 3. index/scatter_max/examples/test_geir_scatter_max.cpp(2026) 4. index/scatter_min/examples/test_geir_scatter_min.cpp(2026) 5. index/scatter_div/examples/test_geir_scatter_div.cpp(2026) 6. activation/swiglu_group/examples/test_aclnn_swiglu_group.cpp(2026) 7. vfusion/modulate_grad/examples/test_aclnn_modulatebackward.cpp(2025) 8. quant/swiglu_mx_quant/examples/arch35/test_aclnn_swiglu_mx_quant.cpp(2026) 9. quant/swiglu_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_mx_quant_with_dual_axis.cpp(2026) 10. quant/swiglu_backward_mx_quant_with_dual_axis/examples/arch35/test_aclnn_swiglu_backward_mx_quant_with_dual_axis.cpp(2026) 仅在每个文件头部新增版权声明,不改动任何功能代码。 ## 关联的Issue 关联Issue #5782 ## 测试 - 使用脚本扫描确认修改前 10 个文件无版权声明,修改后均包含标准版权头; - 仅新增文件头部注释,不影响编译与功能,无需运行算子测试。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10258 | 1 个月前 | |
fix issue #5824 5825 Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10343 merge 0912issue into master fix issue #5824 5825 Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改部分算子文档,部分链接已失效。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5824](https://gitcode.com/cann/ops-nn/issues/5824) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10343 | 1 个月前 | |
解决foreach_exp/foreach_expm1/foreach_round_off_number/foreach_sub_list算子已知问题 Co-authored-by: surezz<zhangyuwei31@huawei.com> # message auto-generated for no-merge-commit merge: !10178 merge foreach_five_op_pro into master 解决foreach_exp/foreach_expm1/foreach_round_off_number/foreach_sub_list算子已知问题 Created-by: surezz Commit-by: surezz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 解决foreach_exp/foreach_expm1/foreach_round_off_number/foreach_sub_list算子已知问题,核心改动是为这些算子补齐整型数据类型支持(int16/int8/uint8,其中 foreach_round_off_number 为 int16) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5642 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> david冒烟、二级冒烟、新增四个算子(int16/int8/uint8)用例共100条,加上原用例200条,无功能回退,精度通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10178 | 1 个月前 | |
perf: float2/float4 for embedding_hash_table_apply_adam_w Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !10323 merge perf/adamw-b128 into master perf: float2/float4 for embedding_hash_table_apply_adam_w Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 EmbeddingHashTableApplyAdamW 算子(arch35)引入 SIMT 访存合并 + 高维 probe 摊销布局优化: (1)**合并访存 VF**(fp32 偶数 dim∈[6,128]\{26,62\} 或 dim>736):独立 VF ComputeAdamWMergedFp32,m/v/maxGradNorm/grad/values 五路状态 float4(B128)/float2(B64) 批量访存(dim%4==0→float4,%4==2→float2,运行时 16B 对齐判定兜底),两相 load/compute/store 压寄存器峰值;blockX 主窗口封顶 4(dim≥88 为 8)、高窗口封顶 32。tiling/kernel 分派条件逐字一致(布局契约)。 (2)**probe 摊销布局**(dim 257~736 全 dtype/奇偶 + dim>736 的 fp16/奇数档):旧公式 blockNum=N×⌈dim/256⌉ 超额 block 全空转,改为 fp32 bx=32/by=16、fp16 bx=64/by=8(fp16 bx=32 在 even 344~352/奇数 641~767 实测稳定回退 0.93~0.99×,bx=64 全档 ≥1.017×,两 dtype 分叉为实测标定);legacy kernel 内 xLoop(xLoopSize=⌈dim/blockX⌉ kernel 推导)一次 probe 走全程,与旧公式位级一致。 (3)**回退策略**(全 dim 扫描标定):dim 26/62(0.975× 稳定回退)、dim 130~256(旧布局已近最优)保持 legacy;fp16 dim≤256 保持旧公式。 (4)**兼容性**:桶格式/tiling 字段/flag 位语义/MurmurHash3 零改动,hash 家族算子不受影响。 **改动文件**: - hash/embedding_hash_table_apply_adam_w/op_kernel/arch35/embedding_hash_table_apply_adam_w.h:合并 VF + Process() 分派门控 - hash/embedding_hash_table_apply_adam_w/op_host/arch35/embedding_hash_table_apply_adam_w_tiling_arch35.cpp:分派窗口 + probe 摊销布局分支 - hash/embedding_hash_table_apply_adam_w/tests/ut/op_host/arch35/test_embedding_hash_table_apply_adam_w_tiling.cpp:UT 文件名修复(原名不匹配 UT glob 从未执行)+ 新增分派窗口契约断言 7 组 **实测性能**(950PR,N=2^20,B=2^21,min 耗时,fp32 全 dim 1024 档 + fp16 逐档标定): - fp32 主窗口 dim 6~128:均值 1.12×(峰值 1.72×@dim8) - fp32 dim 257~736:368 档均值 1.13×(最好 1.45×@257) - fp32 dim>736 偶数:均值 1.25×(最好 1.46×@864) - fp16 dim 257~1024:均值 1.38×(峰值 2.98×@258) - 其余档(fp16≤256、fp32 奇数≤256、dim<6、130~256)持平,全 dim 双 dtype 无回退 **测试**: - e2e 真机五算子 sweep 全场景 150 用例全 PASS(init 36/36、lookup 54/54、export 11/11、import 9/9、adamw 40/40,含 dim>256 新增用例与 fp16 高维档) - tiling UT 4/4 PASS(含分派窗口契约断言) - 布局改动与旧公式位级一致(dim 258~1024 含奇数/amsgrad 逐字节比对) - 双机复测结论一致 关联需求 issue:https://gitcode.com/cann/ops-nn/issues/5823 See merge request: cann/ops-nn!10323 | 1 个月前 | |
修复demo用例的执行 Co-authored-by: xiaodong666<yuanxiaodong6@huawei.com> # message auto-generated for no-merge-commit merge: !10485 merge fix_dts_clean_code into master 修复demo用例的执行 Created-by: xiaodong666 Commit-by: xiaodong666 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复文档中的代码示例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5503](https://gitcode.com/cann/ops-nn/issues/5503) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了 aclnnIndexCopy&aclnnInplaceIndexCopy.md 文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10485 | 1 个月前 | |
Logit算子贡献 Co-authored-by: ilovescrapy<2623969821@qq.com> # message auto-generated for no-merge-commit merge: !4945 merge logit-latest into master Logit算子贡献 Created-by: ilovescrapy Commit-by: ilovescrapy Merged-by: cann-robot Description: Backgroud(背景信息) 一、背景信息 (必填) 对现有的算子增加int16、int8、uint8三种数据类型的支持。 二、价值/作用 (必填) 基于Logit算子历史TBE版本使用Ascend C编程语言进行优化,实现了AscendC实现的Logit算子对Atlas A2训练系列产品和Atlas 800I A2推理系列硬件的适配。丰富昇腾算子开源仓算子实现,给同类型算子开发提供了参考示例。 See merge request: cann/ops-nn!4945 | 1 个月前 | |
修复matmul目录下L2_DFX_PHASE_1宏DFX_IN缺失参数或顺序不符问题 Co-authored-by: ztj0209<zhangtianjiao6@huawei.com> # message auto-generated for no-merge-commit merge: !10408 merge fix_dfx_in_matmul_5526 into master 修复matmul目录下L2_DFX_PHASE_1宏DFX_IN缺失参数或顺序不符问题 Created-by: ztj0209 Commit-by: ztj0209 Merged-by: cann-robot Description: ## 概述 修复 issue #5526 中 matmul 目录下的 10 处 L2_DFX_PHASE_1 宏 DFX_IN 缺失参数或顺序不符问题(issue 中其余目录问题已由其他 PR 修复,本 PR 处理遗留的 matmul 部分): | 算子接口 | 修复内容 | |---|---| | aclnnDualLevelQuantMatmulWeightNz | 补充 transposeX1/transposeX2/level0GroupSize/level1GroupSize | | aclnnMatmulCompressDequant | 补充 offsetW | | aclnnQuantMatmulV3 | 补充 transposeX1/transposeX2 | | aclnnQuantMatmulV4 | 补充 transposeX1/transposeX2 | | aclnnQuantMatmulReduceSumWeightNz | 补充 yScale/x1Offset/x2Offset/yOffset/bias/transposeX1/transposeX2/groupSize/dims/keepDims | | aclnnRotateQuant | 补充 axis/roundMode/scaleAlg/dstTypeMax/trans | | aclnnWeightQuantBatchMatmul | DFX_IN 参数顺序与接口参数顺序对齐 | | aclnnWeightQuantBatchMatmulV2 | 补充 antiquantGroupSize | | aclnnWeightQuantBatchMatmulV3 | 补充 antiquantGroupSize/innerPrecise | | aclnnWeightQuantBatchMatmulNz | 补充 antiquantGroupSize | ## 验证 - 所有改动文件已通过 clang-format v18.1.8 --style=file 全文件检查 - 仅修改 DFX_IN 宏参数列表,不涉及任何功能逻辑变更 ## 关联的Issue fixes #5526 See merge request: cann/ops-nn!10408 | 1 个月前 | |
[cleancode] norm类算子C++语言规则告警整改 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> # message auto-generated for no-merge-commit merge: !10422 merge fix/cleancode-norm-v3 into master [cleancode] norm类算子C++语言规则告警整改 Created-by: runqi_zhang Commit-by: runqi_zhang Merged-by: cann-robot Description: ## 描述 norm类算子出现C++语言规则告警,对相关代码进行整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10422 | 1 个月前 | |
refactor(optim): CodeCheck代码规范整改 Co-authored-by: wangpengbo26<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !10441 merge codecheck915 into master refactor(optim): CodeCheck代码规范整改 Created-by: wangpengbo26 Commit-by: wangpengbo26 Merged-by: cann-robot Description: ## 描述 对 optim 算子族 arch35 平台 tiling 代码进行 C++ 规范整改,将 reinterpret_cast 替换为 static_cast,消除 codecheck 告警。 ### 改动原因 7 个 LAMB 算子 arch35 tiling 文件中使用 reinterpret_cast 进行类型转换,触发 codecheck 告警。这些转换均为已知类型间的下行转换,可安全使用 static_cast 替代。 ### 改动方法 每个文件 2 处修改(共 14 处),统一模式: 1. reinterpret_cast<uint8_t*>(emptyRawTiling->GetData()) → static_cast<uint8_t*>(...) 2. reinterpret_cast<const XxxCompileInfo*>(context->GetCompileInfo()) → static_cast<const XxxCompileInfo*>(...) 涉及 7 个算子: - lamb_apply_optimizer_assign - lamb_apply_weight_assign - lamb_next_m_v - lamb_next_m_v_with_decay - lamb_next_right - lamb_update_with_lr - lamb_update_with_lr_v2 涉及文件(7 个,均 +2 -2): - optim/lamb_apply_optimizer_assign/op_host/arch35/lamb_apply_optimizer_assign_tiling_arch35.cpp - optim/lamb_apply_weight_assign/op_host/arch35/lamb_apply_weight_assign_tiling_arch35.cpp - optim/lamb_next_m_v/op_host/arch35/lamb_next_m_v_tiling_arch35.cpp - optim/lamb_next_m_v_with_decay/op_host/arch35/lamb_next_m_v_with_decay_tiling_arch35.cpp - optim/lamb_next_right/op_host/arch35/lamb_next_right_tiling_arch35.cpp - optim/lamb_update_with_lr/op_host/arch35/lamb_update_with_lr_tiling_arch35.cpp - optim/lamb_update_with_lr_v2/op_host/arch35/lamb_update_with_lr_v2_tiling_arch35.cpp ## 关联的Issue -https://gitcode.com/cann/ops-nn/issues/5864 ## 测试 pass。 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:codecheck 规范整改 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10441 | 1 个月前 | |
refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10320 merge refactor/arch35-pooling-kernel-dup into master refactor(pooling): 收编 Ascend 950/arch35 Kernel 重复实现 Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.AdaptiveAvgPool2D 模板逻辑收编:将 IS_FIRST、rowCount==2/3 的手工展开实现统一为 IS_FIRST / ROW_NUM 编译期模板,合并行累加、额外列累加及 Kw2 等重复逻辑。 2.AvgPoolV2Grad 向量计算收编:将 NCHW int64 索引路径的主块与尾块计算统一为 MultiLineVF2BlockInt64,并将 NHWC 的 w 整块与尾块计算统一为 MergeWBlock。 3.PoolGrad 公共能力收编:抽取 NCHW 反向公共字段,以及 NHWC merge-HWC、merge-HWC-int64 公共计算逻辑,供 arch35 Kernel 复用。 4.AdaptivePool3D 参数解析收编:统一 Avg/Max parallel pool 的公共参数解析与块切分参数,新增 arch35 专用公共结构,保持原有参数含义和切分行为不变。 5.AdaptiveAvgPool3DGrad Kernel 收编:抽取 NCDHW big/small Kernel 的公共字段及参数解析逻辑,减少不同 Kernel 实现之间的重复代码。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10320 | 1 个月前 | |
fix(prelu_backward): 按接口文档修正weight/gradWeight的shape校验 Co-authored-by: transformer910<tianye82@h-partners.com> # message auto-generated for no-merge-commit merge: !10395 merge br_prelugrad_checkshape into master fix(prelu_backward): 按接口文档修正weight/gradWeight的shape校验 Created-by: transformer910 Commit-by: transformer910 Merged-by: cann-robot Description: ## 描述 【问题背景】 aclnnPreluBackward 的 CheckShape 校验与接口文档(docs/aclnnPreluBackward.md)不符,存在两类问题: 1. gradWeight 校验错误:weight 元素个数非 1 时,强制要求 gradWeight 为一维 [channelSize], 导致 gradWeight 与 weight 同 shape 的合法场景(文档明确要求"gradWeight的shape与weight的 shape保持一致")被误判为 ACLNN_ERR_PARAM_INVALID。 2. weight 自身形态未校验:仅校验 weight 元素个数等于 self 通道数,未校验形态,导致 weight={2,2} + self={2,4,3,2} 这类文档不允许的输入被静默接受,且后续被 flatten 成 一维送入 kernel 按通道权重计算,产生语义错误的结果。 【修改方案】 op_api/aclnn_prelu_backward.cpp 的 CheckShape 重构 weight 校验逻辑(self > 1 维时): - weight 为 1 维:元素个数必须等于 self 的第 2 维(通道数),如 self (1,2,3) + weight (2,); - weight 为多维:维数必须与 self 相同、第 2 维必须等于通道数、其余维度必须全为 1, 如 self (1,2,3) + weight (1,2,1); - 不满足上述形态时报 ACLNN_ERR_PARAM_INVALID。 gradWeight 校验改为无条件要求 shape 与 weight 保持一致(原 weightNum==1 与非 1 两个 分支的校验合并),与文档约束一致。 执行链路无改动:多维 weight 送 kernel 前仍会 flatten 为一维,输出侧已有 reshape 到 gradWeight shape 的逻辑,不影响计算结果。 【影响范围】 仅影响 aclnnPreluBackward 接口的入参 shape 校验(更严格),不涉及 kernel 变更。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5865 ## 测试 【自测情况】 UT 变更(test_aclnn_prelu_backward.cpp): - 修改 testcase_025:weight (2,2) + self (2,4,3,2) 由 SUCCESS 改为期望 ACLNN_ERR_PARAM_INVALID(原用例与文档约束冲突); - 保留 testcase_034:weight/gradWeight 均为 (1,45000) 的多维同 shape 场景; - 新增 testcase_035:self (1,2,3) + weight (1,2,1) + gradWeight (1,2,1),正向场景; - 新增 testcase_036:self (1,2,3) + weight (2,) + gradWeight (2,),正向场景; - 新增 testcase_037:weight (2,1)(元素个数匹配但形态非法),异常场景; - 新增 testcase_038:weight (1,2,1) + gradWeight (2,)(shape 不一致),异常场景。 运行 l2_prelu_backward_test 全量 38 个用例,全部通过(含精度用例)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10395 | 1 个月前 | |
docs: 修正算子资料和示例问题 Co-authored-by: qiansunchi<qiansunchi@huawei.com> # message auto-generated for no-merge-commit merge: !10316 merge master into master docs: 修正算子资料和示例问题 Created-by: qiansunchi159 Commit-by: qiansunchi Merged-by: cann-robot Description: ## 描述 修改算子的资料和调用示例的问题 ## 关联的Issue 关联Issue [#5837](https://gitcode.com/cann/ops-nn/issues/5837) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10316 | 1 个月前 | |
nn仓算子350适配 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10332 merge master into master nn仓算子350适配 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 nn仓算子350适配 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5826 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10332 | 1 个月前 | |
fix asan test Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !9033 merge master into master fix asan test Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 修复 ASan(AddressSanitizer)测试中暴露的问题,主要包括:类型不匹配、越界访问、字段缺失及命名不一致。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 详细变更 ### 1. 类型修正(uint32_t/int32_t → int64_t/uint64_t) 使测试中的 CompileInfo 结构体字段类型与实际算子侧定义保持一致,消除 ASan 因类型宽度不匹配报告的问题。 | 文件 | 字段 | 旧类型 | 新类型 | |------|------|--------|--------| | test_add_layer_norm_tiling.cpp | aivCoreNum_, sysWorkspaceSize_, vecRegSize_, blockSize_ | uint32_t | int64_t | | test_embedding_dense_grad_v2_tiling.cpp | totalCoreNum | int32_t | uint64_t | | test_add_rms_norm_cast_tiling.cpp | totalCoreNum | uint32_t | uint64_t | | test_add_rms_norm_quant_tiling.cpp | totalCoreNum | uint32_t | uint64_t | ### 2. 命名规范化:isRegbase → isRegBase 修正大小写不一致,统一为驼峰命名 isRegBase。 - test_embedding_dense_grad_v2_tiling.cpp ### 3. 补充缺失字段 isRegBase 为以下测试的 CompileInfo 结构体补充 isRegBase 字段(默认 false),避免因结构体字段缺失导致的内存读取越界: - test_modulate_tiling.cpp(4 处) - test_multi_scale_deformable_attention_grad_tiling.cpp(1 处) - test_multi_scale_deformable_attn_function_tiling.cpp(9 处) ### 4. 补充缺失字段 blockSize / vlFp32 - test_layer_norm_grad_tiling.cpp: 为 LayerNormGradCompileInfo 补充 blockSize 和 vlFp32(均为 int64_t)字段。 ### 5. 移除硬编码值 - test_add_rms_norm_cast_tiling.cpp: 将 totalCoreNum = 40、totalUbSize = 196608 改为 0,避免与实际平台信息不一致。 - test_add_rms_norm_quant_tiling.cpp: 同上,并调整字段顺序与命名(socVersion → curSocVersion,totalUbSize → maxUbSize)。 ### 6. 越界访问修复 - tests/ut/common/tiling_context_faker.cpp:309: 添加 idx < inputInstanceNumPacked_.size() 边界检查,防止 inputInstanceNumPacked_ 越界访问。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9033 | 1 个月前 | |
torch 异步下发host | 1 个月前 | |
fix(msda): 加固 multi_scale_deformable_attn 310P 输入校验,封堵 GM 越界读 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !9456 merge msda_fix into master fix(msda): 加固 multi_scale_deformable_attn 310P 输入校验,封堵 GM 越界读 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 加固 MultiScaleDeformableAttn 算子输入校验,封堵 GM 越界读(本 PR 缩减为仅含 310P 相关修改,910b/950 平台同款加固后续另行提交): - op_host(tiling.cpp,310P/910b 共用 tiling):补齐 level_start_index、sampling_location 两个输入的空指针检查;新增 numLevels 一致性校验(spatialShape[0]、attnWeight/location 的 level 维、levelStartIndex[0] 必须相等),覆盖 GE 图直连 tiling 路径,防止不一致 shape 绕过 host 校验进入 kernel 后 GetValue/DataCopy 越界读。 - op_kernel(ms_deform_attn_310p.h):310P kernel 逐 level 校验 H/W 合法性,以 numKeys_ 为唯一可信上界,非法时打印诊断并 Trap 报错,防止 valueOffset 越界/回绕。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5305](https://gitcode.com/cann/ops-nn/issues/5305) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - 非法 shape(level 维不一致 / H*W 超过 numKeys)场景下 tiling 返回 GRAPH_FAILED,kernel Trap 报错 - 合法 shape 回归验证功能不受影响 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9456 | 1 个月前 | |
修改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 | 3 个月前 | |
docs: 新增图融合规则说明文档 Co-authored-by: linzehui2058<2602241040@qq.com> # message auto-generated for no-merge-commit merge: !9676 merge fusion_pass_doc into master docs: 新增图融合规则说明文档 Created-by: linzehui2058 Commit-by: linzehui2058 Merged-by: cann-robot Description: ## 描述 对于已开源的图融合算子,进行对应的资料开源,包含MatmulToGemmOpFusionPass、MatmulReshapeTransposeFusionPass、GemmToMatmulFusionPass、BatchMatMul2MulFusionPass 其中的png图片格式,使用lfs进行托管 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5541 ## 文档更新 matmul\batch_mat_mul_v3\docs\BatchMatMul2MulFusionPass.md matmul\mat_mul_v3\docs\MatmulToGemmOpFusionPass.md matmul\mat_mul_v3\docs\MatmulReshapeTransposeFusionPass.md matmul\mat_mul_v3\docs\GemmToMatmulFusionPass.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9676 | 1 个月前 | |
动态库解耦 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8927 merge master into master 动态库解耦 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 旨在将算子侧代码与 legacy 动态库(libophost_comm_legacy.so)解耦:LegacyCommonMgr 新增 isSupported_ 支持位与 IsSupport() 接口,依据编译宏 ASCEND_COMPUTE_UNIT 判断当前 SoC 版本是否属于受支持集合 SUPPORTED_VERS(ascend910b、ascend910_93、ascend310p、ascend310b、ascend910),仅受支持时才 dlopen 加载 legacy 库;各 legacy 封装接口在不受支持时提前短路返回,matmul 系列算子的 tiling 流程同步改为容忍 legacy 能力缺失而不再硬失败,并配套调整 CMake 编译宏与 UT 测试。 ## 关联的Issue [5093](https://gitcode.com/cann/ops-nn/issues/5093) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8927 | 1 个月前 | |
算子 FatreluMul 支持 ascend950 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !10226 merge fatrelu_mul into master 算子 FatreluMul 支持 ascend950 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 为算子 FatreluMul(fatrelu_mul)新增 Ascend 950(arch35 / DAV_3510)支持:新增 arch35 专属的 host 侧 tiling 与 kernel 侧实现,并在 fatrelu_mul_def.cpp 中注册 ascend950 AICore 配置。同时将算子的输入/输出名由 input/output 统一重命名为 x/y(涉及 OpDef 定义、多平台二进制配置 JSON 与 kernel 槽位绑定),并将原有 op_host 下的 tiling 文件迁入 arch22 子目录。该改动主要聚焦于新增 arch35 平台的完整 tiling 与 kernel 链路,不涉及既有平台行为变更。 主要改动 新增 arch35 host 侧 tiling 实现:新增 fatrelu_mul_tiling_arch35.cpp/.h,提供 TilingFuncFatreluMul 与 TilingPrepareForFatreluMul 及 FatreluMulCompileInfo,实现平台量获取(含 CompileInfo 可信度校验与回退查询)、dtype/format/维度/shape 异常值校验、行模型展开(batch_size/half_dim)、空 Tensor 短路、UB 切分(tile_elems)、多核切分(need_core_num/rows_former/rows_tail_core)、判界选 key 与 SetBlockDim/SetTilingKey 下发。 新增 arch35 kernel 侧实现:新增 FatreluMul_kernel.h(共享 fp32 域 VF 计算链 FatreluMulVF 与模板类 FatreluMulKernel<T, kPath>,经 if constexpr 支持 small-tail 行打包与 big-tail 行分段双路径)、FatreluMul_tiling_data.h(全局非模板化 FatreluMulTilingData 结构体)与 FatreluMul_struct.h(ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 声明 3 dtype × 2 path 共 6 个实例),并新增 kernel 入口 fatrelu_mul_apt.cpp(含核守卫与 TilingData 反序列化)。 注册 ascend950 平台配置并重命名 IO 接口:fatrelu_mul_def.cpp 新增 ascend950 的 OpAICoreConfig(动态编译/动态 rank/shape 支持、ExtendCfgInfo("opFile.value", "fatrelu_mul_apt") 等),并将算子输入/输出名从 input/output 改为 x/y,kirin 系列配置同步重命名。 多平台二进制配置同步重命名 IO 名:ascend910_93、ascend910b、kirin9030、kirinx90 四份 fatrelu_mul_binary.json 中的输入/输出 name 字段由 input/output 统一改为 x/y。 tiling 文件目录调整:op_host/fatrelu_mul_tiling.cpp/.h 迁入 op_host/arch22/ 子目录(arch22 平台 tiling 实现),对应 UT 测试 test_fatrelu_mul_tiling.cpp 的头文件包含路径同步更新。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5777 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟,泛化用例 230 条 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了 aclnnFatreluMul.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10226 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 2 个月前 | |
update download ops-test-kit and update case for st Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !9537 merge ci into master update download ops-test-kit and update case for st Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 1. 更新ops_st_test.sh脚本中下载ops-test-kit的方式,由原有的配置make文件下载,改为直接用git clone下载 2. 针对线上CI模式,不返回失败,在正式上线前不阻塞CI 3. 更新非量化mm类用例,减少执行时间 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue #4426 ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9537 | 1 个月前 | |
公共文档同步修改 Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10337 merge readme0912 into master 公共文档同步修改 Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 公共文档同步修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5831](https://gitcode.com/cann/ops-nn/issues/5831) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了CONTRIBUTING.md、docs/QUICKSTART.md、docs/zh/install/compile.md、docs/zh/install/dir_structure.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10337 | 1 个月前 | |
init | 1 年前 | |
docs: add LayerNormRemoveBroadcastFusionPass doc Co-authored-by: rk<wangpengbo26@huawei.com> # message auto-generated for no-merge-commit merge: !9631 merge ln_pass_doc into master docs: add LayerNormRemoveBroadcastFusionPass doc Created-by: wangpengbo26 Commit-by: rk Merged-by: cann-robot Description: ## 描述 为现有LayerNormRemoveBroadcastFusionPass融合规则补充独立资料页。该规则在Ascend 950PR/Ascend 950DT场景下,将LayerNorm算子gamma和beta输入前的BroadcastTo从图中删除,使gamma和beta直接作为LayerNorm算子的输入,并将begin_norm_axis和begin_params_axis统一设置为归一化维度的起始轴。 资料同步说明规则的使用约束: - LayerNorm算子的gamma和beta输入前均为BroadcastTo,且两个BroadcastTo的shape输入相同。 - 输入x、gamma和beta均为静态shape。 - gamma和beta不为标量,二者的shape和数据类型相同。 - gamma的维数不大于x的维数,且gamma的shape与x从归一化轴开始的后缀shape相同。 - LayerNorm算子的begin_norm_axis换算为非负轴后,指向归一化维度的起始轴。 同时新增融合前后拓扑对比图,展示两个BroadcastTo节点被移除前后的图结构。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/5430 ## 测试 - 本次仅新增文档和配图,不涉及代码逻辑变更,未执行代码测试。 - 已检查Markdown格式、图片文件格式及图片引用路径。 ## 文档更新 - 新增 norm/layer_norm/docs/LayerNormRemoveBroadcastFusionPass.md,说明融合模式和使用约束。 - 新增docs/zh/figures/LayerNormRemoveBroadcastFusionPass_1.png,展示融合前后的图结构。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9631 | 1 个月前 | |
新增Batch一致性介绍 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !10458 merge master into master 新增Batch一致性介绍 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增Batch一致性和确定性特性介绍 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5817](https://gitcode.com/cann/ops-nn/issues/5817) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> RAEDME.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10458 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 2 个月前 | |
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 个月前 | |
修复--jit包没有kernel源码无法在线编译,不符合资料的问题 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !9952 merge new_set into master 修复--jit包没有kernel源码无法在线编译,不符合资料的问题 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 主要解决 JIT 包因缺少 kernel 源码而无法在线编译、与资料描述不符的问题,核心是调整二进制产物构建与算子信息生成的触发条件:将 ENABLE_BINARY 的赋值时机前移到编译选项解析阶段,并取消 build_binary 与 ENABLE_JIT/ENABLE_CUSTOM 的耦合,改为由 ENABLE_BINARY/ENABLE_PACKAGE 驱动,从而保证相关场景下 kernel 二进制能被正确生成; ### 主要改动 * build.sh 中 ENABLE_BINARY 赋值时机前移:在 checkopts() 处理自定义算子编译选项 ops=* 时即置 ENABLE_BINARY=TRUE,删除原先位于 assemble_cmake_args() 中 ENABLE_CUSTOM == TRUE 才置位的逻辑,使二进制构建开关在更早阶段生效。 * build.sh 中 build_binary 触发条件调整:main() 内条件由「ENABLE_BINARY 或 ENABLE_CUSTOM 且 ENABLE_JIT == FALSE」改为「ENABLE_BINARY 或 ENABLE_PACKAGE」,解除了 JIT 场景下不构建二进制的限制,并纳入 ENABLE_PACKAGE 场景。 * cmake/gen_ops_info.cmake 条件收紧:gen_ops_info_and_python 中按计算单元生成算子编译信息的判断由 ENABLE_BINARY OR ENABLE_CUSTOM 改为仅 ENABLE_BINARY,使该流程只受二进制构建开关控制。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9952 | 1 个月前 | |
refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !10329 merge codex/geglu-v2-codecheck-local-names into master refactor(ge_glu_v2, ge_glu_grad_v2): 合并erf/tanh同构kernel实现降低代码重复 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 描述 合并 ge_glu_v2 / ge_glu_grad_v2 两个算子中 erf 与 tanh 两种 approximate 模式的同构 kernel 实现,消除按近似模式整份复制的代码重复(29 个文件:14 删除 + 12 移动合并 + 2 入口修改 + 1 新增,+883/-3291)。纯重构,无功能变更。 ### 改动一:ge_glu_grad_v2(非 arch35) - ge_glu_grad_v2_erf_base.h + ge_glu_grad_v2_tanh_base.h 合并为 ge_glu_grad_v2_base.h(template <typename T, bool IS_ERF>):搬运/转置/队列/三个 Process 主循环收纳为一份;erf/tanh 数学体在 ComputeGeluGrad 的 if constexpr 分支中逐字保留,erf 的 ComputeCDF/ComputePDF 原样保留 - dtype 子类 6 → 3(fp16/fp32/bfp16 各一),基类成员访问按仓库惯例使用 this->/this->template 限定 - 入口 18 个 tiling key 分支仅改类型名;删除 tanh 侧全仓无引用的死常量 DUP_COUNT/DIV_MASK ### 改动二:ge_glu_v2(非 arch35) - op_kernel/tanh/ + op_kernel/erf/ 下 18 个变体合并为 op_kernel/ 根目录 9 个文件(template <typename T, bool IS_ERF>,文件名与类名一致) - erf 需要的额外 TBuf(fp16/bf16 各 +2、fp32 各 +1)声明与 InitBuffer 用 if constexpr 保留,初始化顺序与 erf 原文件一致;仅 fp32/vreduce 的 bufferSize 按 erf/tanh 分别为 4912/6144(UB 预算与 tiling 系数对应) - bf16/vreduce 共享段局部变量 tmp_fp32 统一为 tmp_fp32_1(与 erf 侧命名对齐);三个文件(bf16/align、bf16/align_last_axis_big、fp32/vreduce)中两分支共用的输出 tensor 声明提升到 if constexpr 之前(声明顺序调整,无语义影响) ### 不改动 arch35 整棵树、310P 实现、dtype 轴(fp16/fp32/bf16 各自 cast 路径与队列深度保留)、case 轴、ge_glu_v2_base.h。 ## 关联的Issue Closes #5868 ## 测试 - 等价性验证(脚本化):所有函数实例化按 if constexpr (IS_ERF) 展开后与原 erf/tanh 实现逐行压平比对——tanh 路径全部精确相等;erf 路径精确相等、纯局部变量改名(idx 编号漂移)或声明块内顺序无关的提升;成员声明集合与 TBuf 布局逐实例化核对一致 - **A2(Ascend 910B)真机环境编译验证通过**:CANN 9.2.0,bash build.sh --opkernel --soc=ascend910b --ops=ge_glu_v2,ge_glu_grad_v2 构建成功(修复了 CCE 对依赖基类成员 using 声明支持不完整的问题,改用仓库既有的 this->/this->template 限定风格,以及三处分支内声明的作用域问题) - pre-commit run --files 全部通过(clang-format、OAT 开源合规、尾随空白、私钥检测等) - 已触发 /compile 验证多 arch 编译矩阵 - 说明:本仓内无这两个算子的数值比对用例;erf/tanh 数值路径的等价性依据为上述逐行出处证明(每个函数体可溯源至原文件逐字内容);__aicore__ inline 函数体逐字节保留,性能不变由构造保证 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(无功能变更) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10329 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !8149 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 修改AIDD扫描的核心资料问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#3939](https://gitcode.com/cann/ops-nn/issues/3939) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8149 | 2 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 2 个月前 | |
调整nn仓第三方依赖 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7845 merge pr_6933 into master 调整nn仓第三方依赖 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符 2. python requirements多两个不需要的依赖 ### 主要修改 为install_deps.sh 增加了安装gtest的功能 删除requirements中多余的两个依赖 ## 关联的Issue [#4256](https://gitcode.com/cann/ops-nn/issues/4256) [#4154](https://gitcode.com/cann/ops-nn/issues/4154) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7845 | 2 个月前 | |
upgrade version 9.2.0 Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !9513 merge master into master upgrade version 9.2.0 Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 upgrade version 9.2.0 ## 关联的Issue [#5362](https://gitcode.com/cann/ops-nn/issues/5362) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 版本更新 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9513 | 1 个月前 |
🔥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,可以通过NPU 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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。