本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(ci): ST 增加 3600s 超时并按失败上报 Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !13087 merge qbmm into master fix(ci): ST 增加 3600s 超时并按失败上报 Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 - scripts/ci/ops_st_test.sh:移除 CI_ONLINE_ST 模式下“用例/精度失败仍 exit 0”的逻辑,失败时统一返回非 0,使 CI 能正确上报用例执行错误;同时清理不再使用的 is_online_st_mode 函数。 - .gitcode/workflows/st_test_action.yml:run_st_test step 增加 timeout-minutes: 60(3600s),超时即报错;移除随逻辑删除而失效的 CI_ONLINE_ST=1 导出。 ## 关联的Issue 无 ## 测试 - bash -n scripts/ci/ops_st_test.sh 语法检查通过 - grep 校验脚本与工作流中 CI_ONLINE_ST / is_online_st_mode 已无残留 - 真实 ST 需 NPU 环境,由流水线执行验证(超时与失败上报行为将在 CI 中体现) ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!13087 | 5 天前 | |
threshold_grad_v2/threshold_grad_v2_d infershape改成broadcast通用接口 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !13158 merge master into master threshold_grad_v2/threshold_grad_v2_d infershape改成broadcast通用接口 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> threshold_grad_v2/threshold_grad_v2_d infershape改成broadcast通用接口 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/7782 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!13158 | 3 天前 | |
rotateQuant算子kernel实现切Blaze,同步使能分组量化特性 Co-authored-by: AlbertYoung192<yangtao363@huawei.com> # message auto-generated for no-merge-commit merge: !11502 merge master into master rotateQuant算子kernel实现切Blaze,同步使能分组量化特性 Created-by: AlbertYoung192 Commit-by: AlbertYoung192 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> rotateQuant算子kernel实现切Blaze,同步使能分组量化特性; 新增rotate_quant torch接口; 适配蓝区TTK; 新增UT; ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/7252 https://gitcode.com/cann/ops-nn/issues/7253 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地自验证、二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/menu_torch_api.md docs/zh/torch_api_list.md matmul/rotate_quant/README.md matmul/rotate_quant/docs/aclnnRotateQuant.md matmul/rotate_quant/docs/aclnnRotateQuantV2.md matmul/rotate_quant/docs/torchapi_rotate_quant.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11502 | 6 天前 | |
feat(optim): ApplyAdagradDA TF插件装载期SoC路由至InplaceApplyAdagradDA Co-authored-by: KDC202<1664969415@qq.com> # message auto-generated for no-merge-commit merge: !12028 merge tf-plugin-apply-adagrad-da into master feat(optim): ApplyAdagradDA TF插件装载期SoC路由至InplaceApplyAdagradDA Created-by: KDC202 Commit-by: KDC202 Merged-by: cann-robot Description: ## 描述 12 个 Inplace 优化器 TF 插件(各自原有插件文件就地修改,零文件增删)统一改为 .so 装载期(静态初始化)一次性 SoC 探测路由: **涉及算子、TF 变体与映射目标(12 插件,OriginOpType 认领 22 个 TF op 名):** | TF 插件文件 | 认领 TF op(OriginOpType) | Ascend950 注册目标 | 其余 SoC / 查询失败回退目标 | |---|---|---|---| | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA、ResourceApplyAdagradDA | InplaceApplyAdagradDA | ApplyAdagradDA | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign、ResourceApplyPowerSign | InplaceApplyPowerSign | ApplyPowerSign | | optim/apply_momentum/framework/apply_momentum_tf_plugin.cpp | ApplyMomentum、ResourceApplyMomentum | InplaceApplyMomentum | ApplyMomentum | | optim/apply_keras_momentum/framework/apply_keras_momentum_tf_plugin.cpp | ResourceApplyKerasMomentum(TF 侧无 V1 变体) | InplaceApplyKerasMomentum | ApplyKerasMomentum | | optim/apply_centered_rms_prop/framework/apply_centered_rms_prop_tf_plugin.cpp | ApplyCenteredRMSProp、ResourceApplyCenteredRMSProp | InplaceApplyCenteredRMSProp | ApplyCenteredRMSProp | | optim/apply_ftrl/framework/apply_ftrl_tf_plugin.cpp | ApplyFtrl、ResourceApplyFtrl | InplaceApplyFtrl | ApplyFtrl | | optim/apply_ftrl_v2/framework/apply_ftrl_v2_tf_plugin.cpp | ApplyFtrlV2、ResourceApplyFtrlV2 | InplaceApplyFtrlV2 | ApplyFtrlV2 | | optim/apply_proximal_adagrad/framework/apply_proximal_adagrad_tf_plugin.cpp | ApplyProximalAdagrad、ResourceApplyProximalAdagrad | InplaceApplyProximalAdagrad | ApplyProximalAdagrad | | optim/inplace_apply_adam_with_amsgrad/framework/apply_adam_with_amsgrad_tf_plugin.cpp | ResourceApplyAdamWithAmsgrad(TF 侧无 V1 变体) | InplaceApplyAdamWithAmsgrad | ApplyAdamWithAmsgrad | | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign、ResourceApplyAddSign | InplaceApplyAddSign | ApplyAddSign | | optim/apply_proximal_gradient_descent/framework/apply_proximal_gradient_descent_tf_plugin.cpp | ApplyProximalGradientDescent、ResourceApplyProximalGradientDescent | InplaceApplyProximalGradientDescent | ApplyProximalGradientDescent | | optim/apply_adamax/framework/apply_adamax_tf_plugin.cpp | ApplyAdaMax、ResourceApplyAdaMax | InplaceApplyAdaMax | ApplyAdaMax | 路由机制(12 插件同构): - Ascend950 系列(前缀白名单匹配,950PR/950DT 等变体):注册目标为本仓 InplaceApplyX,TF 节点双侧直映射——无子图、无 original_type、无手工参数接线;解析函数直接注册框架 AutoMappingByOpFn,同名输入/属性直通(V1 单数据输出按索引映射 output 0,Resource 变体无数据输出) - 其余 SoC(910B/310P/960 等)、非 Ascend SoC 及 rtGetSocVersion 查询失败(如交叉编译无设备):装载期表达式取 false,保守回退注册内置 ApplyX,OriginOpType/解析函数/ImplyType 与历史注册完全一致 - common/inc/framework/plugin_util.h 新增公共助手 ShouldUseInplaceOpMapping(rtGetSocVersion 本地 extern "C" 声明 + Ascend950 前缀白名单,查询失败按不匹配回退),12 插件复用同一装载期决策 装载期决策为唯一可行点:REGISTER_CUSTOM_OP 即静态 OpReceiver 初始化,目标名可为运行期表达式;两条无条件注册会互相遮蔽,且解析函数无 SetType 不能改写 dst 类型。 ## 关联的Issue 无(仅插件侧路由改造,不改变算子 Kernel/def 行为;12 算子 Inplace 版本已在仓内交付,本 PR 使 TF 图在 Ascend950 上自动路由至该批算子) ## 测试 - **编译**:插件目标 optf_plugin_nn 增量编译通过(含全部引用 plugin_util.h 的 TU);clang-format 通过 - **Ascend950PR 各映射验证**: - Resource 变体全链路 e2e(12 算子 × 10~13 用例共 140 例,fp32/fp16/bf16 × 1d~4d/nonalign;ttk e2e + TF 三方交叉验证 + Promote 高精度真值):**137/140 通过**——adagrad_da 13/13、power_sign 11/11、momentum 12/12、keras_momentum 12/12、centered_rms_prop 10/10、ftrl 12/12、ftrl_v2 12/12、proximal_adagrad 12/12、add_sign 11/11、proximal_gradient_descent 12/12、ada_max 10/10、adam_with_amsgrad 10/13(f16×2+bf16×1 为既有结构问题:V1 infer 要求 6 标量 DT_FLOAT vs TF 同 dtype 约束,非本路由引入) - V1(非 Resource)变体:V1 为 ref 算子,TF2 eager 无法执行,由每算子 atc 离线编译冒烟覆盖(tests/st/atc_smoke,用例 1:1 镜像 e2e csv,om 取证 InplaceApplyX),12 算子冒烟通过 - **非 950 / SoC 查询失败回归(保留原映射)**:LD_PRELOAD 桩替换 rtGetSocVersion 后 atc 离线编译取证——桩返回 Ascend910B、查询失败两种场景 om 均落内置 ApplyAdagradDA 且不含 Inplace 前缀;其余非白名单 SoC(310P/960 等)与 910B 走同一 false 分支,装载期表达式确定性回退内置 ApplyX ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12028 | 5 天前 | |
dvlite soc adaptive Co-authored-by: oah28<wujiahao37@huawei.com> # message auto-generated for no-merge-commit merge: !12923 merge dvlite into master dvlite soc adaptive Created-by: oah28 Commit-by: oah28 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> dvlite(Ascend350)SOC 适配:为 33 个算子启用 ascend350 计算单元支持。 Ascend350 与 Ascend950 同为 DAV_3510 架构(regbase),共用 arch35 tiling 与 kernel 源码, 本次按仓内既有 ascend350 适配模式批量扩展: 1. **算子注册**(32 个 *_def.cpp):新增 AICore().AddConfig("ascend350", config), 复用 ascend950 同配置对象(含 apply_adam_w_quant 回归框架默认 opFile 名,与 kernel 入口 apply_adam_w_quant 一致)。 2. **构建配置**:各算子 op_host/op_kernel CMakeLists 的 SUPPORT_COMPUTE_UNIT / COMPUTE_UNIT(S) 增加 "ascend350",TILING_DIR 复用 arch35。 3. **静态二进制**:新增 19 个 op_host/config/ascend350/*_binary.json(与 ascend950 版 逐字段一致)及 2 个 ascend350/*_simplified_key.ini(adam_apply_one_assign、 fake_quant_with_min_max_args_gradient)。 4. **op_api 平台判断适配**(8 个文件):将 GetSocVersion() 硬编码 switch/if 统一改为 GetCurNpuArch() 判断,消除新增 SOC 的遗漏点: - foreach_abs/asin/neg/sign/tanh:DAV_2201 || IsRegbase(curArch) - softshrink_backward:DAV_1001 || DAV_2002 || DAV_3002 → 910 dtype 列表 - ada_layer_norm_backward:DAV_2201 || IsRegbase(curArch) 选择 grad 计算路径 - index_check:!= DAV_2201 && !IsRegbase(curArch) 决定是否跳过检查 5. **全局 kernel 编译配置**:ascendc_config.json 为 ForeachAsin/AddcdivList/SubScalarInplace/ Tanh/Exp/Abs/Sign/Neg/MaximumScalar/LambUpdateWithLrV2/ScatterMin 11 个条目补充 ascend350 compute_units 及对应 compile_options。 涉及算子(33): FastGeluV2、HardSigmoid、SoftShrinkGrad、NPUClearFloatStatus、IndexCheck、ScatterMin、 ForeachAbs/AddcdivList/Asin/Exp/MaximumScalar/Neg/Sign/SubScalarInplace/Tanh(9)、 SigmoidCrossEntropyWithLogitsGrad、SigmoidFocalLoss、AdaLayerNormGrad、 BN3DTrainingReduceGrad、BNTrainingUpdateGrad、INTrainingUpdateV2、L2NormalizeGrad、 AdamApplyOneAssign、ApplyAdamV2、ApplyAdamWQuant、ApplyProximalGradientDescent、 FusedMulApplyKerasMomentum、InplaceApplyFtrl、LambUpdateWithLrV2、SGD、 SparseApplyAdagradV2、Dequantize、FakeQuantWithMinMaxArgsGradient ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#7724](https://gitcode.com/cann/ops-nn/issues/7724) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 冒烟通过,测试结果与950一致 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12923 | 6 天前 | |
修复conv3d_backprop_filter_v2: SAME padding 在 TF 转换路径丢失 Co-authored-by: niyanxiang<niyanxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !12816 merge fix_tf_same_miss_pad into master 修复conv3d_backprop_filter_v2: SAME padding 在 TF 转换路径丢失 Created-by: Starve_Tom Commit-by: niyanxiang Merged-by: cann-robot Description: ## 描述 1. TF 插件修复(2D/3D): - conv2d_backprop_filter_tf_plugin.cpp:读取 padding 属性,SAME 模式下下发 pads {-1,-1,-1,-1} 作为 SAME 占位,VALID/属性读取失败仍下发 0(失败时打印 WARN)。 - conv3d_backprop_filter_tf_plugin.cpp:同理,SAME 模式下发 {0,0,-1,-1,-1,-1}(D 维两侧补 0,H/W 维 -1),兼容 2D→3D 扩展。 2. tiling 侧加固(conv_backprop_filter_context_utils.cpp): - 新增 IsSamePadding,用 strncmp 精确比较替代 padding[0] == 'S' 前缀判断; - 新增 GetPaddingAttr:除按固定 PADDING_INDEX 取值外,扫描 RuntimeAttrs 全部槽位查找 "SAME",规避 attr 数组顺序与声明不一致导致固定下标取不到 padding 的问题; - ReCalPaddings 改用 IsSamePadding 判断,保持"pads 全 -1 才重算"的契约与新插件下发的占位值对齐; - 新增 CheckSamePadsReCaled 校验:SAME 场景重算后 pad(u/d/l/r) 若仍为 -1 则直接报明确错误返回,避免带非法 padding 继续 tiling / kernel 计算。 3. 测试:arch35 tiling UT 新增用例 tf_padding_same_recal_when_pads_negative,覆盖 padding="SAME"、pads={0,0,-1,-1,-1,-1} 时 tiling 正确重算 padding(期望 key 中 pad 重算为 1)。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/7254 ## 测试 Ascend950/Ascend910的二级冒烟+本地验证通过。 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12816 | 3 天前 | |
[Docs] 快速入门要求在版本标签检出后执行git pull Co-authored-by: gxhgxh2475698<18003961989@163.com> # message auto-generated for no-merge-commit merge: !12197 merge ops-nn-patch-2 into master [Docs] 快速入门要求在版本标签检出后执行git pull Created-by: gxhgxh2475698 Commit-by: gxhgxh2475698 Merged-by: cann-robot Description: ## 描述 “进入项目源码”使用git clone -b版本号和git checkout ${tag_version}下载或检出配套版本,随后要求源码已存在时git pull。若目标是版本标签,Git会处于detached HEAD,git pull没有当前分支的上游,直接报You are not currently on a branch,无法按指南完成更新。 修复区分标签检出与开发分支更新:用git status查看状态,获取远端标签后checkout目标版本;只在相应开发分支中使用git pull --ff-only。 ## Summary diff - 不正确的文档规则或样例 + 与验证结果和实际样例一致的说明 ## 关联的Issue Fixes #6830 https://gitcode.com/cann/ops-nn/issues/6830 ## 测试 / Evidence 用临时本地源仓、bare远端和版本标签v1实际复现:git clone --branch v1后git pull退出码1,提示You are not currently on a branch;改为git fetch origin --tags与git checkout v1后均成功,git describe --tags --exact-match返回v1。不修改任何生产仓库或算子代码。保持原文CRLF换行。 **Before:** 原说明或示例存在Issue描述的不一致。 **After:** 合并当前master后相对目标分支仍仅变更一个Markdown文件;保留原有CRLF换行,按core.whitespace=cr-at-eol执行git diff --check通过。临时Git仓库验证了标签检出、状态查询、切换分支和git pull --ff-only;新一轮CI待完成。 ## 文档更新 docs/QUICKSTART.md ## 类型标签 - [x] 文档更新 ## Merge Danger **Door:** two-way 可还原单文件文档修改。 **Blast Radius:** Documentation 不修改算子实现。 See merge request: cann/ops-nn!12197 | 3 天前 | |
perf(conv): IterOrder/DisContinuous 从编译期模板改为运行时读取, 裁剪 conv2d_v2/conv3d_v2 tilingkey Co-authored-by: weiyan_hw<weiyan28@huawei.com> # message auto-generated for no-merge-commit merge: !10999 merge fix/conv2d-tilingkey-cleanup into master perf(conv): IterOrder/DisContinuous 从编译期模板改为运行时读取, 裁剪 conv2d_v2/conv3d_v2 tilingkey Created-by: weiyan_hw Commit-by: weiyan_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> IterOrder/DisContinuous 从编译期模板改为运行时读取, 裁剪 conv2d_v2/conv3d_v2 tilingkey ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6519](https://gitcode.com/cann/ops-nn/issues/6519) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> rdv验证通过,卷积kernel编译时长降低40% ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10999 | 5 天前 | |
[L2] fix: foreach_div_scalar README 测试命令引用不存在的 tests/ut、tests/st 脚本(目录仅占位) Co-authored-by: eieiei<3901796952@qq.com> # message auto-generated for no-merge-commit merge: !12604 merge fix-foreach-div-scalar-readme-tests-v1 into master [L2] fix: foreach_div_scalar README 测试命令引用不存在的 tests/ut、tests/st 脚本(目录仅占位) Created-by: wsnidie1 Commit-by: eieiei Merged-by: cann-robot Description: ## 概述 experimental/foreach/foreach_div_scalar/README.md 的「测试」小节给出 bash tests/ut/run.sh、bash tests/st/run.sh --real/--mock 三条命令,但该算子 tests/ 目录仅有 .gitkeep 占位,无任何脚本,照做即报 No such file or directory。 ## 关联的Issue #305 活动一(文档/代码捉虫) ## 问题与影响范围 - 文件:experimental/foreach/foreach_div_scalar/README.md(「## 测试」小节,72-81 行) - tests/ 实际内容:仅 .gitkeep;整个 experimental/foreach/ 家族也无 run.sh - 影响:按 README 操作必然失败,且「Mock 模式无需 NPU」的说法会误导无卡用户。 ## 复现方式 在 experimental/foreach/foreach_div_scalar/ 下执行 bash tests/ut/run.sh → No such file or directory。 ## 修改 将该小节改为如实描述:本算子暂未提供 UT/ST 用例(tests/ 为占位),并指向仓库 CONTRIBUTING 的测试框架说明;待用例落地后由维护者恢复具体命令。 ## 验证 - find experimental/foreach/foreach_div_scalar/tests -type f → 仅 .gitkeep - 修改为纯文档描述性变更,无代码影响 关联 Issue: #7800 See merge request: cann/ops-nn!12604 | 3 天前 | |
foreach_pow_list资料修复 Co-authored-by: zhaozi3<zhaozi3@h-partners.com> # message auto-generated for no-merge-commit merge: !13189 merge master into master foreach_pow_list资料修复 Created-by: zhaozi3 Commit-by: zhaozi3 Merged-by: cann-robot Description: ## 描述 foreach_pow_list 算子的参数约束文档(README.md、docs/aclnnForeachPowList.md、docs/aclnnForeachPowList_en.md)与算子实际行为不一致,本 PR 对 x1/x2/out 三个参数的约束描述进行修复,并修正错误码表。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 关联的Issue:#7843 See merge request: cann/ops-nn!13189 | 5 天前 | |
更正 InitEmbeddingHashTable README 中的 initializer_mode 取值 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !12429 merge codex/init-embedding-hash-table-initializer-mode-20261021 into master 更正 InitEmbeddingHashTable README 中的 initializer_mode 取值 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: # 更正 InitEmbeddingHashTable README 中的 initializer_mode 取值 InitEmbeddingHashTable 的 README 将常量初始化模式写为 const,而 Host 实现只接受 constant,按文档配置会被判为非法模式。已将 README 的初始化模式说明更正为 random、constant,并修正 constant_value 的生效条件。静态核对及补丁检查通过。 关联 Issue: https://gitcode.com/cann/ops-nn/issues/6992 See merge request: cann/ops-nn!12429 | 10 天前 | |
fix(index): clarify gather diagnostics and quant scatter warnings Co-authored-by: huang-jz<huangjunzhe2@h-partners.com> # message auto-generated for no-merge-commit merge: !13141 merge fix/issue-6625-quant-scatter-attrs into master fix(index): clarify gather diagnostics and quant scatter warnings Created-by: huang-jz Commit-by: huang-jz Merged-by: cann-robot Description: ## 描述 为非 Regbase 平台的 aclnnInplaceQuantScatter(V1)补充超出文档支持范围的属性 warning,保持返回码、参数透传和计算行为。V1 的 axis 文档仍只承诺 -2;QuantScatter 的 A5/Regbase 路径跳过新增诊断,V2 源码和文档、host、kernel 及测试保持基线。 同时修正 GatherElementsV2 的 dtype 日志主语:实际检查 self,日志由 indices must be 改为 self must be。按 ops-error-code-remediation 技能核查 aclnn_gather.cpp,补充五处现有参数错误日志的实际值、约束和处理建议,保留已注册的正式码 EZ1001 及公开 errno;删除 UniqueExecutor 构造成功后不可达的 null 检查。CHECK_RET 继续仅写日志并透传,不在调用层重复上报下层错误。 ## 关联的 Issue https://gitcode.com/cann/ops-nn/issues/6625 ## 验证 | 验证范围 | 结果 | |---|---| | Gather 原有 UT 前后对照 | 原26项API均20通过,每项状态和失败返回值相同;host两版本均9/9 | | UT 恢复核查 | 6例全部恢复,测试文件SHA256与原始基线相同;整个Gather tests目录净差异0 | | 真实 CANN 9.3 错误码验证 | 14 项参数负向各恰好 1 个 EZ1001,合法空输入返回 0/无错误;资源故障对照保持同 2 条既有下层 EZ9999,Gather 未增加首报 | | 技能静态核查 | 冻结 27 个候选,删除 1 个不可达检查、保留 26 个日志透传;逐项处置校验退出码 0,候选进入审计遗漏为 0 | | 最终检查 | git diff --check、pre-commit、OAT实际扫描5个PR变更文件通过;独立确认UT恢复原样 | 错误码证据来自本次源码独立编译的完整 Gather API 与 L0 桥接,dladdr 核实符号归属;真实编译命令的 -E/-H 确认安装包 opdev/op_log.h 与仓库 op_error_check.h 的实际选择。静态审计脚本会将部分返回 errno 推导为内部码,实际 CHECK_RET 仅写日志。公共层既有资源诊断保持透传,本次不宣称所有下层故障已完成正式码治理。 QuantScatter 保持此前已验证的实现不变:原有 UT 26/26、真实 910B2 的 7 对前后对照和外部 guard/helper UBSan 1080 组通过。该项真机验证针对 d63dd461,Gather 追加提交未修改这些文件。 ## 类型标签 - [x] Bug 修复 - [x] 文档更新 ## AI/Agent 生成声明 - [x] AI 辅助编写 See merge request: cann/ops-nn!13141 | 3 天前 | |
aclnnl1lossgrad_doc_fix Co-authored-by: jisongyuan<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !13236 merge master into master aclnnl1lossgrad_doc_fix Created-by: ji-songyuan Commit-by: jisongyuan Merged-by: cann-robot Description: ## 描述 对齐 aclnnL1LossBackward 中英文接口文档与 op_api 实际校验行为,修复 issue #7170 反馈的文档与实现不一致问题。 issue 反馈两个点:gradInput 传入 DOUBLE dtype 时接口返回成功但资料 dtype 白名单未包含 DOUBLE;rank=0(0D 标量)被实现接受但资料维度写 1-8。经确认实现行为符合预期(DOUBLE 可经数据类型推导规则支持,0D 标量为合法输入),本次按实现口径修订文档: - gradInput 的数据类型由 FLOAT、FLOAT16、BFLOAT16 修订为 FLOAT、FLOAT16、BFLOAT16、DOUBLE - gradOutput、self、target、gradInput 四个张量参数的维度由 1-8 放宽为 0-8(支持 0D 标量) - 中文文档 aclnnL1LossBackward.md 与英文文档 aclnnL1LossBackward_en.md 同步修订 ## 关联的Issue 关联Issue #7170 ## 测试 不涉及。仅修改文档,无代码改动。 ## 文档更新 - loss/l1_loss_grad/docs/aclnnL1LossBackward.md:参数表 gradInput dtype 增加 DOUBLE,四个张量维度 1-8 改 0-8 - loss/l1_loss_grad/docs/aclnnL1LossBackward_en.md:同步英文修订 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!13236 | 3 天前 | |
fix(quant_matmul_activation_quant): 完善参数校验与接口文档 Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !12979 merge master into master fix(quant_matmul_activation_quant): 完善参数校验与接口文档 Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 修复 QuantMatmulActivationQuant 的视图处理和参数校验问题,补齐回归测试及接口说明。 - 修正 CreateView 失败时 bool 返回值错误;使用 executor 持有的视图,避免修改调用方描述符,并使 WeightNZ 转置只归一化一次。 - 严格检查 NZ storage 各维度,补齐复制视图前的元数据校验、dstTypeMax 精确零判断及 InferShape 已知非正维度检查。 - 复用公共校验和 MX 分组常量,整理异常 CSV;内部不变量测试归入对应的 ND、WeightNZ 测试文件。 ## 关联的Issue 关联 Issue #7590:https://gitcode.com/cann/ops-nn/issues/7590 ## 测试 - 本地 SDK/GE 桩环境:258 条 API CSV、91 条 InferShape CSV、5 个内部测试通过。 - 对 5 条修正后的 WeightNZ 异常用例检查实际失败分支,对应正向对照通过;验证输入描述符不变及归一化幂等性。 - 文档公式一致性、接口签名、参数表、链接及 git diff --check 通过;提交钩子的 clang-format、codespell、OAT 等检查通过。 ## 文档更新 重构算子 README、两个 ACLNN 文档及 Torch API 文档,保留并补全计算与量化公式;同步 Proto/头文件中的 scale、转置、形状和属性约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12979 | 5 天前 | |
fix(mvn_v2): stabilize Arch35 reductions and improve performance Co-authored-by: Davon14272<liuwenda4@huawei.com> # message auto-generated for no-merge-commit merge: !11996 merge perf/mvn-v2-optimization into master fix(mvn_v2): stabilize Arch35 reductions and improve performance Created-by: Davon14272 Commit-by: Davon14272 Merged-by: cann-robot Description: ## Summary - fix missing V-to-scalar synchronization after vector reductions in the FP16 RARA5 and small-R paths - optimize RARA5 with balanced column chunks, larger UB row tiles, and removal of the redundant midrange pass - optimize FP32 TileA with an 8-row block path, compensated mean correction, and residual-aware division - keep long FP32 reductions on precision-safe fallback paths and cap dense DMA row transfers to the verified 16 KB range - extend Host tiling tests for dtype, capacity, route, and threshold boundaries ## Validation - Host UT: 24/24 PASS - Kernel supported domain: 509/509 precision, OOB, and determinism PASS - GEIR supported domain: 39/39 precision PASS - random extreme RARA5 blocking set: 6/6 precision and determinism PASS - A100/NPU performance: 371 timed cases, mean G/N 21.8619, minimum 0.1350, 0 cases below 0.1 - focused 5-run sampling: 15/15 PASS; RARA5 G/N 0.2417-0.2798, FP32 TileA R4095 G/N 0.5076-0.5093 - generic and Arch35 GE graph examples: PASS, max absolute error 9.98e-8 - pre-commit and OAT checks: PASS ## Artifact updates - reviewed test assets: https://gitcode.com/opencann/operator-artifacts/merge_requests/205 - validated package SHA256: 4d8823bc5937d5b8a0113d9a722278c356582e9201129669ce1f11f0114f2463 See merge request: cann/ops-nn!11996 | 5 天前 | |
修正 ApplyAdamWQuant 文档中 step 的参数类别 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !12122 merge fix/2026-10-14-apply-adam-w-quant-step-input-doc into master 修正 ApplyAdamWQuant 文档中 step 的参数类别 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: # 修正 ApplyAdamWQuant 文档中 step 的参数类别 step 是必需的第 9 个 INT64 Tensor 输入,不是属性。README 已按 OpDef 和 Host UT 的定义将其标为输入。 README 定向 pre-commit(含 OAT、codespell 和空白检查)通过。 关联 Issue: https://gitcode.com/cann/ops-nn/issues/6754 See merge request: cann/ops-nn!12122 | 3 天前 | |
修正 AvgPool3D Proto ceil_mode 宽度输出公式 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !12248 merge fix/2026-10-17-ops-nn-avgpool3d-ceil-output-shape-proto-doc-01 into master 修正 AvgPool3D Proto ceil_mode 宽度输出公式 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: # 修正 AvgPool3D Proto ceil_mode 宽度输出公式 ## 问题 AvgPool3D Proto 的 ceil_mode 宽度输出公式和末端窗口判断重复使用 in_width,遗漏左侧 padding,和 InferShape 实际契约不一致。 ## 修复 将宽度公式改为 in_width + pad_left + pad_right,将裁剪条件改为 in_width + pad_left。深度、高度公式保持不变。 ## 验证 - PyTorch 2.7.1 CPU 的 avg_pool3d(..., kernel_size=(1,1,1), stride=(1,1,2), ceil_mode=True) 对宽度 2 输入返回宽度 1;宽度 5 输入先在右侧补 2,再以 kernel_size=(1,1,3), stride=(1,1,3), ceil_mode=True 池化,返回宽度 3。结果与正确公式及裁剪规则一致。 - 修复补丁仅修改 Proto 注释中的两处表达式;针对固定源码运行 git apply --check --whitespace=error-all fix.patch 通过。PyTorch CPU 形状对照通过。 - ops-nn pre-commit 对该 Proto 头文件适用的空白、clang-format、codespell 和 OAT 检查通过;Python、YAML、JSON 检查不适用。 关联 Issue: https://gitcode.com/cann/ops-nn/issues/6870 See merge request: cann/ops-nn!12248 | 3 天前 | |
[test]DynamicMxQuantWithDualAxis 补充 -1 轴尾块 mxscale2 搬出 UT 用例 Co-authored-by: hejc_hw<hejianchao1@huawei.com> # message auto-generated for no-merge-commit merge: !13226 merge test/dymq-dual-axis-tail-ut into master [test]DynamicMxQuantWithDualAxis 补充 -1 轴尾块 mxscale2 搬出 UT 用例 Created-by: jianchao_He Commit-by: hejc_hw Merged-by: cann-robot Description: ## 描述 为 DynamicMxQuantWithDualAxis(arch35)补充 -1 轴尾块场景的 UT 覆盖。 CopyOut 中 mxscale2 搬出的源 stride 已在 commit 690291182 中修正为按 ubRowLen_ 推算 ((2 * ubRowLen_ - CeilAlign(2 * dataLen, 32)) / 32):UB 中一个 row-pair 固定占 2 * blockW, 与本次 task 的有效列数 dataLen 无关。原有 UT 全部使用 dimNeg1 = blockW = 256(满块), 未覆盖 dimNeg1 < blockW 的尾块分支,本 PR 补齐该分支的回归用例。仅新增 UT,不改动 kernel。 ## 关联的Issue 关联 Issue #[7826](https://gitcode.com/cann/ops-nn/issues/7826) ## 测试 新增 2 个 CPU 调试用例(tests/ut/op_kernel/test_dynamic_mx_quant_with_dual_axis.cpp): | 用例 | dimNeg1 | 说明 | | --- | --- | --- | | test_case_tail_dimNeg1_200_unaligned | 200 | 尾块且未 32B 对齐 | | test_case_tail_dimNeg1_224_aligned | 224 | 尾块但已 32B 对齐 | 公共 tiling 参数:dimNeg2 = 128、dimNeg2Tail = 64、splitBlockH = 64、blockW = 256、 dimNeg2SplitBlockNum = 2、dimNeg1BlockNum = 1、scaleAlg = 0、roundMode = rint、 dstType = FLOAT8_E5M2、blockDim = 2;kernel 入口 ::dynamic_mx_quant_with_dual_axis<0, 4, 0>。 本地验证命令:bash build.sh -u --opkernel --ut_mode=fast。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充 UT 用例 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!13226 | 3 天前 | |
fix: BlockLstm/BlockLstmGrad 算子契约校验、整型溢出防护与 I==0 梯度路由修复 Co-authored-by: eternityk<taoyikun@huawei.com> # message auto-generated for no-merge-commit merge: !12840 merge master into master fix: BlockLstm/BlockLstmGrad 算子契约校验、整型溢出防护与 I==0 梯度路由修复 Created-by: eternityk Commit-by: eternityk Merged-by: cann-robot Description: ## 描述 本 PR 对 BlockLstm 与 BlockLstmGrad 两个算子做了系统性加固,包含四个 commit: ### v8(21 项 P1 缺陷修复) **Host 侧契约加固**: - InferDataType 新增 dtype 域门控(x 必须 FLOAT/FLOAT16、seq_len_max 必须 INT64) - InferShape 重写为逐输入校验(存在性、rank、shape、跨输入维度一致性);反向额外校验 9~17 号 [T,B,H] 梯度/门控平面 **整型溢出防护**: - tiling 中 padI/padH/mBlk/blockDim/paddedB 等派生量改为 int64 计算并做 u32 收窄前检查 - GM 字节偏移全部 64 位化(ReadRowUnaligned 等) **kernel 数据一致性**: - 前向 WorkerZeroFill 改为 32B 对齐 + DataCopyPad 按字节写入 - 新增 MTE3_V 等待避免 z8 被暂存写覆盖 - VectorLoopSlab hLo 清理范围由 L.m 收窄为 stripe.count - 反向 foldB 布局槽位、REC_VEC_TAIL_MAX 48→96 **TF 插件**: - block_lstm_grad_tf_plugin.cpp 新增 ForceNdDescs,将全部输入输出 TensorDesc 强制为 FORMAT_ND ### v9(零维 TF parity) - InferShape 放开 T/B/H == 0(TF 实测返回空张量 + GE 剪枝空输出节点) - 24 条退化/zero_extent 用例由 ERROR 转 PASS ### 契约文档(方案 A) - README 声明 seq_len_max 单元素契约(TF 2.6 V1/V2 实测多元素 CHECK 崩溃) ### P1 + 5 P3(回应 review bot) **P1(I==0 梯度路由)**:tiling 曾将 I==0 路由到 B==0 的退化零填充路径,导致 cs_prev_grad/h_prev_grad(非空 [B,H] 输出)静默不写。修复后恢复 normal padded path,kernel 侧 dX 相位以真实 inputSize 门控跳过,wReal==0 的 x_grad scatter 跳过(该调用在 fp16+I==0 下楔死 AIV)。 **P3 ×5**:前向 cache clean 前补 PipeBarrier;插件 Update*Desc 返回值检查;zeroMode!=4u 死条件删除;foldB 死计算块删除;grad_budget 注释修正。 ## 关联的Issue Closes #7498 ## 测试 - **GEIR 全量三方回归**:BL 548/549(仅 305_val 存量已知 NaN/Inf 极值),BLG 526/526 - **TF e2e 全量三方回归**(权威 run_e2e.py 口径):BL 512/513,BLG 491/491 - **I==0 专项覆盖**(fp16/fp32/peephole/gate_order 全组合):6/6 PASS(此前该路径为静默数据错误,从未被用例覆盖) - **动态 shape 覆盖**(-d true 双模式):38/38 PASS - **性能**:kernel 口径 gpu_us/(npu_us*1.4) >= 0.1 全量达标(BL 均值 0.682,BLG 均值 1.715),修复前后 p50 无退化 - **invalid_* 负向用例**拒绝行为与历轮一致(BL 33 / BLG 31,零漂移) - 测试环境:Ascend950PR + cann-9.2.0 + A100 远程参考 ## 文档更新 - README 约束说明更新(零维支持、seq_len_max 标量契约、调用方掩码指引) ## 类型标签 - Bug修复 ## AI/Agent生成声明 - AI辅助编写 See merge request: cann/ops-nn!12840 | 6 天前 | |
fix: 加固 LambNextMV 与 MaxPoolExt2 输入契约、边界溢出与特殊值语义 Co-authored-by: wyy<2137553008@qq.com> # message auto-generated for no-merge-commit merge: !12850 merge master into master fix: 加固 LambNextMV 与 MaxPoolExt2 输入契约、边界溢出与特殊值语义 Created-by: wangyuyan_44 Commit-by: wyy Merged-by: cann-robot Description: ## 描述 本 PR 围绕 LambNextMV(lamb_next_m_v)与 MaxPoolExt2(max_pool_ext2)补齐输入契约校验、边界/溢出防护与特殊值语义,修复异常输入可能进入 kernel 导致越界读写、tiling 截断或精度不一致的问题,并补充 ascend350 平台配置与文档。 ### LambNextMV - 将公共广播规划 BuildLambBrcPlan 的边界校验收敛到 lamb_brc_tiling_plan.h:校验输出 rank ≤ LAMB_BRC_MAX_DIM、原始维度/折叠后维度在 uint32 表示域内、相邻轴折叠乘法 int64 不溢出、元素总数 uint64 不溢出;LambBrcCollapse 改为返回状态码,任一越界直接 GRAPH_FAILED。 - InferShape 新增 rank ≤ 8 校验;InferDataType 要求 13 个输入 dtype 一致且仅支持 DT_FLOAT/DT_FLOAT16,与 tiling 侧口径统一。 - kernel 在 tilingData.totalNum == 0 时直接返回,跳过 UB 缓冲铺设与 FillScalarSlots,修复空 Tensor 触发 VECTOR_CORE_EXCEPTION 的问题。 - tiling data 新增 innerChunk、innerChunkCnt 字段,并补充 tiling 注册容量与 POD 对齐说明。 - 更新 README,补充动态 shape/动态 rank、空 Tensor 与 GE 图模式样例构建说明。 ### MaxPoolExt2 - proto 移除 DT_DOUBLE、DT_QINT8,与 OpDef/kernel 实际支持面统一;InferDataType 增加 dtype 白名单校验。 - tiling 新增:输出 dtype 必须与输入一致;origin/storage format 必须为 FORMAT_ND;data_format 仅允许 NHWC/NCHW;ksize/strides 空间维必须 > 0 且 ≤ INT32_MAX;输入元素总数用 __int128 校验不超过 INT64_MAX。 - kernel 将浮点归约初值由 -FLT_MAX 改为 -inf 位模式,并去掉 isnan 分支,按“忽略 NaN、全 NaN 窗口输出 -inf”的语义取最大值,与 README/golden 对齐。 - 新增 ascend350 平台配置。 - 更新 README:明确 ND format 约束、ksize/strides 空间轴、输出 shape/dtype、NaN/-inf 特殊值语义、动态 shape 说明,并更新 docs/zh/op_list.md 的平台支持标记。 ### 配套调整 - MaxPoolExt2 golden 移除旧 third_party 实现,修正全 NaN/全 -inf 窗口,增加按用例名确定性的特殊值注入并改为 binary_equal 容差。 - 两个 GEIR 示例修复宿主缓冲泄漏与 Session/AddGraph 重载二义性。 - MaxPoolExt2 tiling UT 统一 origin/storage format 为 ND,并新增非法 format、元素总数溢出、ksize 越界等期望失败用例。 ## 关联的Issue - 关联 Issue #7579 ## 测试 - 编译:ops-nn 构建通过,CI 流水线通过(ci-pipeline-passed)。 - UT:LambNextMV、MaxPoolExt2 Host UT 全量执行通过;MaxPoolExt2 新增非法 format、元素总数溢出、ksize 越界等异常用例通过。 - GEIR:根据本地测试记录,test_geir_lamb_next_m_v、test_geir_max_pool_ext2 编译运行通过;MaxPoolExt2 更新 golden 后 L0 用例通过(含 NaN/-inf 注入)。其中,MaxPoolExt2 在隔离加载私装 custom 包的环境下,GEIR 51/51 通过。 - GEIR 环境条件:测试通过临时 OPP 目录避开共享 CANN 中同名内置算子的注册/推导逻辑,不修改共享 CANN。未隔离环境仍存在同名算子加载冲突,本次结果不代表该共存问题已解决。 - 边界验证:LambNextMV 的 rank > 8、uint32 越界、折叠/元素总数溢出、非法或不一致 dtype 输入被 Host 拒绝;合法空 Tensor 正常返回,kernel 跳过 UB 缓冲铺设与 FillScalarSlots。MaxPoolExt2 的非 ND、非法 dtype、ksize/strides 越界、元素总数溢出均被 Host 拒绝。 ## 文档更新 - 更新 optim/lamb_next_m_v/README.md、pooling/max_pool_ext2/README.md 及 docs/zh/op_list.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12850 | 5 天前 | |
fix(matmul): 规范错误码上报 Co-authored-by: HuangKun8682<huangkun61@huawei.com> # message auto-generated for no-merge-commit merge: !13167 merge fix/pr13051-ci-conflicts-20261030 into master fix(matmul): 规范错误码上报 Created-by: HuangKun8682 Commit-by: HuangKun8682 Merged-by: cann-robot Description: ## 描述 规范 Matmul 系列算子在 OpApi、Tiling 和 InferShape 阶段的错误码上报,并修复相关白盒 UT 编译及错误码校验问题。 - 补齐标准错误码和诊断信息,提取公共参数错误、Tiling 错误上报接口,保持原有返回值及异常处理流程。 - 在 Matmul/Gemm 白盒测试命名空间外预包含 base/err_msg.h,避免嵌套 ge 命名空间遮蔽全局符号,修复 FORMAT_ND、GetSizeByDataType 等符号解析错误。 - 使用真实 ErrorManager 记录校验错误码,通过独立上下文隔离 FlatQuant 测试,避免跨用例干扰,并增加上报通道自检。 - 补充参数错误和 Tiling 错误上报回归测试,完善 Host UT 的错误码注册依赖。 ## 关联的Issue issue [#7293](https://gitcode.com/cann/ops-nn/issues/7293) ## 测试 本地运行ut均已修复 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!13167 | 6 天前 | |
修改aclnn确定性开关 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !12749 merge master into master 修改aclnn确定性开关 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 1、修改aclnn确定性开关为aclrtSetSysParamOpt 2、修复删除查看源码后的多余空行 ## 关联的Issue 关联Issue [#7186](https://gitcode.com/cann/ops-nn/issues/7186) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12749 | 10 天前 | |
AscendRequant, BatchNormExt2, EuclideanNorm等35个算子适配350 Co-authored-by: wsunmoon<wangming176@huawei.com> # message auto-generated for no-merge-commit merge: !11873 merge dvlite into master AscendRequant, BatchNormExt2, EuclideanNorm等35个算子适配350 Created-by: wsunmoon Commit-by: wsunmoon Merged-by: cann-robot Description: ## 描述 AscendRequant, BatchNormExt2, EuclideanNorm等35个算子适配350: 新增350二进制配置json文件 CMakeLists.txt文件配置350 算子信息库新增350 ## 关联的Issue 关联Issue [#7755](https://gitcode.com/cann/ops-nn/issues/7755) ## 测试 编译正常; UT, ST冒烟通过 ## 文档更新 不涉及 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!11873 | 6 天前 | |
修改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 | 2 个月前 | |
动态库解耦 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 | 2 个月前 | |
docs:修改代码块缺闭合围栏问题 Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !11686 merge master into master docs:修改代码块缺闭合围栏问题 Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6434](https://gitcode.com/cann/ops-nn/issues/6434) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> codearts_check_rule_config.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11686 | 20 天前 | |
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 | 3 个月前 | |
feat(aicpu): AICPU built-in整包准入manifest机制 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !11655 merge feat/aicpu-builtin-package-manifest into master feat(aicpu): AICPU built-in整包准入manifest机制 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 为 ops-nn 移植 AICPU built-in 整包准入 manifest 机制: 通过白名单控制 AICPU 算子是否准入 built-in 整包,默认全 OFF(与 ops-math 上线口径一致,算子准入由后续 PR 按需登记 xxx=ON),将"隐式排除"显式化为白名单机制。 **主要改动:** - 新增 cmake/config/aicpu_builtin_package_manifest.cmake:准入清单(AICPU_BUILTIN_PACKAGE_FORCE_ALL 默认 OFF + 空 manifest),在进入算子子目录前 include - cmake/func.cmake 新增 check_aicpu_builtin_pkg_allowed() 门控 helper - 23 个 AICPU 算子 op_kernel_aicpu/CMakeLists.txt 的 op_def 收集与 cust obj 编译包进 if (ENABLE_CUSTOM OR _AICPU_BUILTIN_PKG_ALLOWED) 门控 - gen_norm_symbol() 补 built-in 产出接线:NO_AICPU=OFF && ENABLE_PACKAGE=ON 时生成 aicpu_nn.json + libnn_aicpu_kernels.so(安装至 opp/built-in/op_impl/aicpu/{config,kernel}) - 顺手规范化 elu、adaptive_max_pool2d 的变体版权头(master 遗留问题,OAT 合规要求) **不受 manifest 控制(行为不变):** ENABLE_CUSTOM(custom 包直通)、UT(AddAicpuOpTestCase 与收集逻辑解耦)、host 常量折叠(libopconstant_folding_nn.so) **默认行为无回退:** master 上 gen_norm_symbol() 本无 AICPU 产出调用(收集物无消费者),空 manifest 下整包产物与 master 完全一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/6515 ## 测试 本地 5 组 configure/build 验证: | 场景 | 结果 | |---|---| | 空 manifest 整包(ENABLE_PACKAGE=ON) | 干净跳过,无 aicpu 产物,与 master 一致 | | elu=ON | aicpu_nn.json 仅含 Elu;libnn_aicpu_kernels.so 仅链接 elu_cust_obj;安装路径正确 | | FORCE_ALL=ON | 23 算子全准入,json 含全部 23 个算子定义 | | ENABLE_CUSTOM=ON | 23 算子全收集,产出 cust_aicpu_kernel.json(→ vendors/custom_nn),与 master 无差异 | | UT(UT_TEST_ALL=ON) | 23 个算子 UT 用例正常创建 | pre-commit 全部通过(codespell、OAT 合规等)。 ## 文档更新 无需文档更新(纯构建配置改动) ## 类型标签 - 🐛 Bug修复 - ✅ ✨ 新特性 - ⚡ 性能优化 - ♻️ 重构 - 🧪 测试 - ✅ 📦 构建/CI - 🔧 配置变更 - 📝 文档更新 - ⬆️ 依赖升级 - 🔒 安全修复 - 🧹 代码清理 - ❓ 其他,请描述: See merge request: cann/ops-nn!11655 | 23 天前 | |
docs: 修复注释与文档不一致(贡献指南与fast kernel launch示例) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !12380 merge docs/comment-cleanup-20261019-04 into master docs: 修复注释与文档不一致(贡献指南与fast kernel launch示例) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正文档中与实际内容/上下文不一致的表述: - CONTRIBUTING.md:将“确保您的贡献符合项目标准,签署 CLA”中的半角逗号 , 改为全角逗号 ,,统一中文标点规范。 - examples/fast_kernel_launch_example/README.md:删除“Ascend 950PR&950DT系列产品产品使用”中的重复“产品”,共两处(第 33 行、第 83 行)。 ## 关联的Issue 关联 Issue #6948 https://gitcode.com/cann/ops-nn/issues/6948 ## 测试 仅文档变更,不涉及代码逻辑;已人工核对修改后语句与上下文一致,无功能影响。 ## 文档更新 - 更新 CONTRIBUTING.md - 更新 examples/fast_kernel_launch_example/README.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12380 | 15 天前 | |
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 | 2 个月前 | |
产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 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 | 3 个月前 | |
fix Third_Party_Open_Source_Software_List.yaml Co-authored-by: liuyufan0725<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !1879 merge fix_yaml into master fix Third_Party_Open_Source_Software_List.yaml Created-by: liuyufan0725 Commit-by: liuyufan0725 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新三方依赖清单Third_Party_Open_Source_Software_List.yaml 1、增加protobuf 2、将nlohmann/json修改为json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#1042](https://gitcode.com/cann/ops-nn/issues/1042) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Third_Party_Open_Source_Software_List.yaml ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1879 | 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 个月前 | |
docs: 修复注释与文档不一致(build脚本默认参数说明) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !12379 merge docs/comment-cleanup-20261019-03 into master docs: 修复注释与文档不一致(build脚本默认参数说明) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正 build.sh 帮助信息与 docs/zh/install/build.md 中与实际实现不一致的默认参数说明: - -j[n]:默认值由「8」更正为「CPU 核心数」。build.sh 中 THREAD_NUM=$(grep -c ^processor /proc/cpuinfo),未显式传入 -j 时按 CPU 核心数编译。 - --vendor_name:默认值由「customize-nn」更正为「custom」。build.sh 在 run_example 场景下当 VENDOR_NAME 为空时设置为 custom。 涉及文件:build.sh(7 处 -j[n] 文案、1 处 --vendor_name 文案)、docs/zh/install/build.md(参数表 1 处)。 ## 关联的Issue - #6950 ## 测试 仅修改帮助文案与文档,不涉及代码逻辑变更;已核对 build.sh 中 THREAD_NUM 与 VENDOR_NAME 的实际默认值。 ## 文档更新 - docs/zh/install/build.md:更新 -j${n} 默认值说明为 CPU 核心数 - build.sh:更新 usage 中 -j[n]、--vendor_name 的默认值说明 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!12379 | 15 天前 | |
fix(classify): 补充 ScatterDiv InferShape 分类规则 Co-authored-by: zzy1205<zhangzhengyi8@huawei.com> # message auto-generated for no-merge-commit merge: !12861 merge fix/scatter-div-infershape-classify into master fix(classify): 补充 ScatterDiv InferShape 分类规则 Created-by: zzy1205 Commit-by: zzy1205 Merged-by: cann-robot Description: ## 描述 在 index-c@ops-nn -> src.release.style 中登记 ops/ops-nn/index/scatter_div/op_host/scatter_div_infershape.cpp,使分类规则能够感知该 InferShape 源文件。 本 PR 仅修改 classify_rule.yaml 一行,不包含算子源码、kernel 配置或测试文件改动。 ## 关联的Issue 无。 ## 测试 - PyYAML safe_load 解析通过。 - 目标条目在对应 style 列表及全文件中均仅出现一次。 - git diff --check 通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!12861 | 9 天前 | |
docs:修改代码块缺闭合围栏问题 Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !11686 merge master into master docs:修改代码块缺闭合围栏问题 Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#6434](https://gitcode.com/cann/ops-nn/issues/6434) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> codearts_check_rule_config.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11686 | 20 天前 | |
调整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 | 3 个月前 | |
revert//fix(opgraph): 支持旧版本 CANN 运行时加载融合 pass 库 Co-authored-by: cann-robot<cann@cann.team> # message auto-generated for no-merge-commit merge: !11095 merge revert-mr-9924-1790130631176-auto into master revert//fix(opgraph): 支持旧版本 CANN 运行时加载融合 pass 库 Created-by: cann-robot Commit-by: cann-robot Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11095 | 1 个月前 | |
bugfix: 运行依赖包名统一为连字符(ops_legacy→ops-legacy,ops_math→ops-math) Co-authored-by: gao19871128<1897001@qq.com> # message auto-generated for no-merge-commit merge: !13020 merge master into master bugfix: 运行依赖包名统一为连字符(ops_legacy→ops-legacy,ops_math→ops-math) Created-by: gao19871128 Commit-by: gao19871128 Merged-by: cann-robot Description: ## 描述 运行依赖包名统一为连字符(ops_legacy→ops-legacy,ops_math→ops-math) ## 关联的Issue [#7675](https://gitcode.com/cann/ops-nn/issues/7675) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!13020 | 5 天前 |
🔥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&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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。