| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8821 merge InferShape into master feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5250 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Unknown Shape/ Unknown Rank迁移适配 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8821 | 1 个月前 | |
refactor(apply_top_k_top_p_with_sorted): reduce duplicate code Co-authored-by: yangziqi_007<yangziqi4@huawei.com> # message auto-generated for no-merge-commit merge: !9916 merge cleancode into master refactor(apply_top_k_top_p_with_sorted): reduce duplicate code Created-by: yangziqi_007 Commit-by: yangziqi_007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> apply_top_k_top_p_with_sorted降低重复代码 cleancode ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> atk验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: cleancode ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9916 | 30 天前 | |
perf(arg_max_grad): arch35 轴下标改寄存器生成并开双缓冲, UB 记账由容量反解 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9546 merge fix/arg-max-grad-perf into master perf(arg_max_grad): arch35 轴下标改寄存器生成并开双缓冲, UB 记账由容量反解 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 ArgMaxGrad 在 arch35 上改为不带 D 的原型后,轴下标(A2 融合 pass 里的 assist 张量)由内核自生成。原实现每段都要把轴下标**物化到 UB** 再读回比较,既占 UB(每元素 4B)又多走一趟写;同时 BUFFER_NUM 固定为 1,MTE2→V→MTE3 全串行。本 PR 按「腾地方 + 用地方」两步优化,并把 UB 记账从「先定尺寸再回头检查」改为「按容量反解」。 ### 改动方法 1. **多行合并按行长分四档分派**(arg_max_grad_nd.h) - MERGE_COMPACT_DIRECT 逐行直算:行长是 32B 整数倍且不短于「车道数/铺设遍数」时,轴下标退化成该行的标量常量留在寄存器,indices/updates 只驻留一行并原地重复读; - MERGE_COMPACT_FILL 紧排铺 tile:行长对齐但过短时改回 UB→UB 倍增铺设; - MERGE_PAD 按行补齐:行长非 32B 整数倍且长于一个寄存器时每行一个 burst; - MERGE_COMPACT_STREAM 判据已实现但以常量 false 关闭,原因见代码注释(非对齐流式写会覆盖 32B 块内前导车道)。 2. **轴下标改为寄存器内生成**(arg_max_grad_vf.h) VF 入口新增 AssistSrc 模板档:ARANGE(inner==1,沿被选轴连续,一条 Reg::Arange)/ SCALAR(inner>1 单行段,一条 Reg::Duplicate)/ UB(仅剩「一个寄存器块跨多行」的紧排与补齐两档,k 在寄存器内算不出闭式)。ComputeSeg、ComputeOuters、ComputeRows 三条路径不再调 GenAssist。 3. **UB 记账由容量反解**(arg_max_grad_tiling_arch35.cpp) 新增 UbLayout,六个字段与内核 InitBuffer 的六次调用一一对应,Total() 即一段的真实 UB 需求;SolveColsPerChunk 对其单调性二分,求满足 Total() <= ubSize 的最大整宽段长。i32BufBytes 按档记账:inner==1 或逐行直算档记 0,每元素少 4B。 4. **开启双缓冲**:BUFFER_NUM 1 → 2。上一条腾出的 UB 正好抵消队列翻倍(fp16 每元素 ~8.1B → ~4.1B → ~8.2B,UB 占用基本持平),换来 MTE2 搬入与 V 计算重叠。 5. Process() 拆成 ProcessOuterSeg / ProcessRowSeg(纯重构,语义不变);host UT 补 10 类拒收分支用例。 ### 性能实测(Ascend950PR,ttk -d false -b release,--run 12) 两步收益必须分开说明,**不能合并成一句「优化」**: | 阶段 | 大形状 6 例 | 小形状 8 例 | |---|---|---| | 仅第 2、3 条(轴下标寄存器化) | 几何均值 **0.98x**(无收益) | 0.99x | | 叠加第 4 条(双缓冲)vs 原始 | 中位 **1.13x**,最好 1.35x | 中位 1.05x,最好 1.42x | - 收益集中在 inner>1 的三档(DIRECT/FILL/PAD,1.11~1.42x);inner==1 基本持平(0.98~0.99x,一进一出没有可重叠的流)。 - 轴下标寄存器化单独看没有收益,它的作用是**腾出 UB 让双缓冲开得起**;两步缺一不可。 - 已知退化 1 例:(2,128,129) 0.88x(两次测一致)。段数不足 2 时双缓冲多付一次同步,后续可按段数决定 buffer 深度收回。 ## 关联的Issue 关联 Issue #5418 https://gitcode.com/cann/ops-nn/issues/5418 ## 测试 Ascend950PR 真机,干净包(无插桩符号),kernel .o 与 op_tiling.so 同步部署;每份结果条数与用例数逐份核对一致。 | 集合 | 例数 | 结果 | |---|---:|---| | 泛化(R7 派生量全值域集) | 578 | 578/578 PASS | | 泛化(交付主集) | 1224 | 1224/1224 PASS | | GE 图通路 | 56 | 56/56 PASS | | 三方精度 | 100 | 100/100 PASS | | A/B 对照 | 42 | 42/42 PASS | | DFX(7 例预期拒收 + 2 例行为记录) | 9 | 与改造前基线逐例一致 | | host UT(--soc=ascend950) | 28 | 28/28 PASS | | 性能抽检(精度/越界列) | 14 | 14/14 PASS | 真机功能用例合计 **1839 例**全过。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9546 | 1 个月前 | |
fix(BroadcastGradientArgs):ParseParamsByOperatorFn back to ParseParamsFn Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9862 merge tf-back into master fix(BroadcastGradientArgs):ParseParamsByOperatorFn back to ParseParamsFn Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 BroadcastGradientArgs 使用ParseParamsByOperatorFn 导致 ParseGraph失败,回退到ParseParamsFn <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9862 | 1 个月前 | |
feat: add bucketize runtime2 infershape Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9798 merge bucketize-rt2-infershape into master feat: add bucketize runtime2 infershape Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 Bucketize 算子缺少 Runtime 2(RT2) InferShape 注册,导致图编译阶段无法正确完成输出 shape 和 dtype 推导。本 PR 为 Bucketize 补充 RT2 infershape 实现。 实现内容: - 使用 Ops::Base::InferShape4Elewise,保持输出 shape 与输入 shape 一致,并兼容动态维度。 - 根据 dtype 属性设置输出数据类型,支持 DT_INT32 和 DT_INT64。 - 接入 op_host 源码自动收集和 infershape UT 构建配置。 ## 关联的Issue 无。 ## 测试 在 Ascend950 环境执行 bash build.sh -u --ophost --ops=bucketize --soc=ascend950 -j8,并使用 nn_op_host_ut --gtest_filter=BucketizeInfershapeTest.* 运行 Bucketize InferShape UT,覆盖普通 Tensor、标量、空 Tensor、Unknown Rank、Unknown Dim 及 INT32/INT64 输出类型等场景,全部通过。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9798 | 26 天前 | |
修改nn仓部分算子license和format Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !10082 merge scatter_nd_add into master 修改nn仓部分算子license和format Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 修改nn仓部分算子license和format ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5706 ## 测试 冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:修改部分算子license和format ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10082 | 27 天前 | |
index clean code Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9028 merge master_bak into master index clean code Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> index目录下进行clean code整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4233 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9028 | 1 个月前 | |
erfinv等3个算子新增ascend350平台支持 Co-authored-by: c00887544<chenshengze@huawei.com> # message auto-generated for no-merge-commit merge: !9912 merge 350 into master erfinv等3个算子新增ascend350平台支持 Created-by: chengzhi1120 Commit-by: c00887544 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> erfinv等3个算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5664 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9912 | 28 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 28 天前 | |
feat: Embedding算子新增SIMD模板支持pice through场景(连续二维+非连续场景) Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !8200 merge feat/embedding-simd-template-clean into master feat: Embedding算子新增SIMD模板支持pice through场景(连续二维+非连续场景) Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 Embedding算子新增SIMD模板支持pice through场景(连续二维+非连续场景) ## 关联的Issue 关联Issue #5027 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 白盒用例、端对端通路验证:包括geir通路、aclnn、aclgraph通路 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8200 | 1 个月前 | |
补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !10136 merge fix/embedding-dense-backward-log-format into master 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5726 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10136 | 26 天前 | |
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 个月前 | |
补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Co-authored-by: Apricityh<wangxu359@huawei.com> # message auto-generated for no-merge-commit merge: !10136 merge fix/embedding-dense-backward-log-format into master 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 Created-by: Apricityh Commit-by: Apricityh Merged-by: cann-robot Description: ## 描述 补全embeddingbag,avgpool2d,embedding_dense_backward约束与实际代码行为对齐 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5726 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10136 | 26 天前 | |
md大模型检测低错修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9420 merge master into master md大模型检测低错修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md aidd大模型检测低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5254 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9420 | 1 个月前 | |
fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !9847 merge fix/log-spec-20260903-v2 into master fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 对 index/ 下 6 算子(gather_elements、index、index_put_v2、index_put_with_sort_v2、non_zero、unsorted_segment_sum,含 examples、tests)的日志输出做规范整改,修复以下缺陷: - **致命级别错配**:index_put_v2_fusion_pass 失败分支 OP_LOGI 改为 OP_LOGE(14 处),故障不再被 INFO 级过滤忽略 - **标识符拼写改名(定义/声明/调用全同步)**:公共头 level2_base.h CheckInpuNullTensorMaxUnPool3D→CheckInputNullTensorMaxUnPool3D、isContinous_→isContinuous_、MargeInputAxis/MargeOutputAxis→MergeInputAxis/MergeOutputAxis、intputDtypeSize→inputDtypeSize、CalcTilingForInt→CalcTiling4Int、拼音变量 sheng→remainder - **描述与实现不符修正**:multinomial 日志实参 self/out 顺序颠倒(标签与值配对错误)、cast bool to int8 实际为 int32、onnx dtype 文案与 kvlist 对齐 - **错误描述不完整**:Check* failed! 补参数名(7 处)、GetDim/tailSize/indicesSize 等校验失败补当前值、校验宏 incorrectShapes/incorrectDtypes 传变量名字符串改传真实值(9 处)、dtype 支持列表补 DT_COMPLEX64 与实现集合对齐 - **格式符与实参类型不匹配**:按头文件/TilingData 实类型逐项修正:sortDimValue %d→%ld(9 处)、no_continuous 8 参数整段重写、ubSize_/innerDim_ %ld→%lu(5 处)等 - **语法错误(50+ 处)**:not support→does not support、should same with→should be the same as、is begin→begins、running begin/end→started/finished、don't→doesn't、序数 1th、两行拼接逗号补空格等 ### 改动方法 仅修改日志文案/级别/格式符及拼写错误标识符的全量同步改名,不改动任何校验逻辑与控制流;标识符改名已确认仓内定义/声明/调用零残留。 ## 关联的Issue #5650 ## 测试 - pre-commit 全部通过(clang-format / ruff-check / ruff-format / codespell / OAT 等 10 项) - bash build.sh --pkg --jit --soc=ascend950 编译打包通过(含 -Werror=format 严格校验) - 标识符改名定义/声明/调用全部同步(grep 零残留) - 输出文案中文残留、业务代码私有打印残留均为 0 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9847 | 27 天前 | |
feat: Add aclnn golden functions and test cases Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9487 merge master into master feat: Add aclnn golden functions and test cases Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加蓝区aclnn用例和golden函数 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5325 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9487 | 1 个月前 | |
feat:nn add aclnn testcase and golden again. Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master feat:nn add aclnn testcase and golden again. Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充了一批算子的st用例 和 golden。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5587 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9634 | 29 天前 | |
修复example&&文档中的错误&&gru_grad大shape下精度问题 Co-authored-by: sakuraqqz<furao15@h-partners.com> # message auto-generated for no-merge-commit merge: !9972 merge master into master 修复example&&文档中的错误&&gru_grad大shape下精度问题 Created-by: sakuraqqz Commit-by: sakuraqqz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.修复example和文档中的错误 2. gru_grad大shape下精度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5799 ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> index/gather_v2/docs/aclnnMedianDim.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9972 | 26 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !9847 merge fix/log-spec-20260903-v2 into master fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 对 index/ 下 6 算子(gather_elements、index、index_put_v2、index_put_with_sort_v2、non_zero、unsorted_segment_sum,含 examples、tests)的日志输出做规范整改,修复以下缺陷: - **致命级别错配**:index_put_v2_fusion_pass 失败分支 OP_LOGI 改为 OP_LOGE(14 处),故障不再被 INFO 级过滤忽略 - **标识符拼写改名(定义/声明/调用全同步)**:公共头 level2_base.h CheckInpuNullTensorMaxUnPool3D→CheckInputNullTensorMaxUnPool3D、isContinous_→isContinuous_、MargeInputAxis/MargeOutputAxis→MergeInputAxis/MergeOutputAxis、intputDtypeSize→inputDtypeSize、CalcTilingForInt→CalcTiling4Int、拼音变量 sheng→remainder - **描述与实现不符修正**:multinomial 日志实参 self/out 顺序颠倒(标签与值配对错误)、cast bool to int8 实际为 int32、onnx dtype 文案与 kvlist 对齐 - **错误描述不完整**:Check* failed! 补参数名(7 处)、GetDim/tailSize/indicesSize 等校验失败补当前值、校验宏 incorrectShapes/incorrectDtypes 传变量名字符串改传真实值(9 处)、dtype 支持列表补 DT_COMPLEX64 与实现集合对齐 - **格式符与实参类型不匹配**:按头文件/TilingData 实类型逐项修正:sortDimValue %d→%ld(9 处)、no_continuous 8 参数整段重写、ubSize_/innerDim_ %ld→%lu(5 处)等 - **语法错误(50+ 处)**:not support→does not support、should same with→should be the same as、is begin→begins、running begin/end→started/finished、don't→doesn't、序数 1th、两行拼接逗号补空格等 ### 改动方法 仅修改日志文案/级别/格式符及拼写错误标识符的全量同步改名,不改动任何校验逻辑与控制流;标识符改名已确认仓内定义/声明/调用零残留。 ## 关联的Issue #5650 ## 测试 - pre-commit 全部通过(clang-format / ruff-check / ruff-format / codespell / OAT 等 10 项) - bash build.sh --pkg --jit --soc=ascend950 编译打包通过(含 -Werror=format 严格校验) - 标识符改名定义/声明/调用全部同步(grep 零残留) - 输出文案中文残留、业务代码私有打印残留均为 0 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9847 | 27 天前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 28 天前 | |
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 个月前 | |
docs: 修正 IndexFill 文档参数命名及示例代码错误,修复 avg_pool 类型安全与清理无用头文件 Co-authored-by: klein8793<zhangli24@huawei.com> # message auto-generated for no-merge-commit merge: !9841 merge dev_zl_2026_0806 into master docs: 修正 IndexFill 文档参数命名及示例代码错误,修复 avg_pool 类型安全与清理无用头文件 Created-by: klein8793 Commit-by: klein8793 Merged-by: cann-robot Description: ## 描述 indexfill文档修改&avg_pool cleancode问题解决 ### 文档修正 - 统一 aclnnInplaceIndexFillGetWorkspaceSize 文档中参数命名:selfRef → self,与函数原型中的实际参数名一致 - 修正中英文混排空格(如 value = 0时 → value = 0 时、所需workspace大小 → 所需 workspace 大小) - 修正示例代码中 indexHostData 的数据类型:std::vector<int> → std::vector<int64_t>,与 API 参数 aclDataType::ACL_INT64 保持一致 - 修正 aclnnInplaceIndexFill 示例代码中的函数名:aclnnIndexFillTensor → aclnnInplaceIndexFill - 修正 aclnnInplaceIndexFill 示例代码日志中的 API 名称:"aclnnIndexFillGetWorkspaceSize failed" → "aclnnInplaceIndexFillGetWorkspaceSize failed" ### 代码修正 - **平均池化 infershape**:GetDimInFormat 函数中 formatStr.find() 返回 std::string::size_type,直接赋值给 int64_t 存在缩窄转换。改为先通过 pos == std::string::npos 判后再明确给 dimPosition 赋值 -1 - **平均池化 tiling**:删除未使用的 #include <array> ## 关联的Issue - #5557 ## 测试 文档类变更,不涉及功能逻辑;avg_pool 修改为类型安全修正,已有编译与测试用例覆盖。 ## 文档更新 - index/index_fill_d/docs/aclnnIndexFill&aclnnInplaceIndexFill.md - pooling/avg_pool/op_host/avg_pool_infershape_common.h - pooling/avg_pool/op_host/avg_pool_tiling_common.h ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:代码清理与类型安全修正 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9841 | 30 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
fix: 回退 index_put_v2_fusion_pass 融合规则日志等级为 INFO Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !10188 merge fix/fusion-pass-log-level into master fix: 回退 index_put_v2_fusion_pass 融合规则日志等级为 INFO Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 回退 index_put_v2_fusion_pass.cpp 融合规则中 14 处日志等级 OP_LOGE → OP_LOGI。 ### 改动原因 index_put_v2_fusion_pass 的 MeetRequirements / Replacement 中"不满足融合条件"路径(获取 platform_info 失败、GetInputDesc/GetOutputDesc 失败、AddInput/AddOutput 失败、Deterministic check 不通过、CreateReplacement/ConstructBoundary/Replace 失败等)属于**图编译期正常降级分支**,非执行错误。算子不满足融合条件时正常走非融合路径是预期行为。 前序日志规范整改(PR #9847)按"INFO 文案含 failed 属级别错配"规则将这些分支误改为 ERROR 级,会导致: - 正常业务场景大量刷错误日志 - 可能触发线上日志告警误报 ### 改动方法 仅回退日志等级宏 OP_LOGE → OP_LOGI(14 处),**保留**前序的文案与格式修正(does not support / only supports / actual value 补参等均不变)。 ## 关联的Issue #5734 ## 测试 - clang-format 检查通过 - 纯日志宏等级回退,无逻辑变更,不影响编译与功能 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!10188 | 27 天前 | |
算子日志可读性与代码规范性的优化 Co-authored-by: xingtaowu<wuxingtao3@h-partners.com> # message auto-generated for no-merge-commit merge: !9376 merge fix_nn_log into master 算子日志可读性与代码规范性的优化 Created-by: xingtaowu Commit-by: xingtaowu Merged-by: cann-robot Description: ## 描述 批量修正日志/报错信息中的英文拼写错误与语法问题,并补充更明确的参数越界诊断信息,同时修正示例测试程序中的日志级别与代码格式问题。改动不涉及业务逻辑与算法流程变化,均为日志可读性与代码规范性的优化。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5291 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ x] 其他,请描述:算子日志可读性与代码规范性的优化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9376 | 1 个月前 | |
fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !9847 merge fix/log-spec-20260903-v2 into master fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 对 index/ 下 6 算子(gather_elements、index、index_put_v2、index_put_with_sort_v2、non_zero、unsorted_segment_sum,含 examples、tests)的日志输出做规范整改,修复以下缺陷: - **致命级别错配**:index_put_v2_fusion_pass 失败分支 OP_LOGI 改为 OP_LOGE(14 处),故障不再被 INFO 级过滤忽略 - **标识符拼写改名(定义/声明/调用全同步)**:公共头 level2_base.h CheckInpuNullTensorMaxUnPool3D→CheckInputNullTensorMaxUnPool3D、isContinous_→isContinuous_、MargeInputAxis/MargeOutputAxis→MergeInputAxis/MergeOutputAxis、intputDtypeSize→inputDtypeSize、CalcTilingForInt→CalcTiling4Int、拼音变量 sheng→remainder - **描述与实现不符修正**:multinomial 日志实参 self/out 顺序颠倒(标签与值配对错误)、cast bool to int8 实际为 int32、onnx dtype 文案与 kvlist 对齐 - **错误描述不完整**:Check* failed! 补参数名(7 处)、GetDim/tailSize/indicesSize 等校验失败补当前值、校验宏 incorrectShapes/incorrectDtypes 传变量名字符串改传真实值(9 处)、dtype 支持列表补 DT_COMPLEX64 与实现集合对齐 - **格式符与实参类型不匹配**:按头文件/TilingData 实类型逐项修正:sortDimValue %d→%ld(9 处)、no_continuous 8 参数整段重写、ubSize_/innerDim_ %ld→%lu(5 处)等 - **语法错误(50+ 处)**:not support→does not support、should same with→should be the same as、is begin→begins、running begin/end→started/finished、don't→doesn't、序数 1th、两行拼接逗号补空格等 ### 改动方法 仅修改日志文案/级别/格式符及拼写错误标识符的全量同步改名,不改动任何校验逻辑与控制流;标识符改名已确认仓内定义/声明/调用零残留。 ## 关联的Issue #5650 ## 测试 - pre-commit 全部通过(clang-format / ruff-check / ruff-format / codespell / OAT 等 10 项) - bash build.sh --pkg --jit --soc=ascend950 编译打包通过(含 -Werror=format 严格校验) - 标识符改名定义/声明/调用全部同步(grep 零残留) - 输出文案中文残留、业务代码私有打印残留均为 0 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9847 | 27 天前 | |
ops-nn仓算子添加隔离宏 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9655 merge proto_reg_op_modify into master ops-nn仓算子添加隔离宏 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2、SparseFillEmptyRows、SparseSegmentSum 算子添加隔离宏,防止原型重复定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9655 | 1 个月前 | |
fix(index): prevent InplaceAdd uint32 loop overflow Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !9545 merge fix/inplace-add-uint32-loop-overflow into master fix(index): prevent InplaceAdd uint32 loop overflow Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 InplaceAdd Ascend 950 kernel 在超大合法 shape 下可能卡死的问题。 累加阶段使用 uint32_t grid-stride 循环时,原判断只保证扁平地址不超过 UINT32_MAX,没有为循环末尾的 element += stride 预留空间。当 accTotal 位于 32 位上界前最后 stride - 1 个元素的区间内时,循环变量会 发生无符号回绕,导致循环无法退出。 本次将 32 位累加路径的安全条件收紧为: text widest <= UINT32_MAX && accTotal <= UINT32_MAX - stride + 1 超过该上限的极窄边界区间复用现有 uint64_t 路径。普通 shape 继续使用原 32 位热路径,SIMT 循环内未增加分支。 ## 关联的Issue 无。 ## 测试 - [x] 修复前使用 Ascend 950PR release binary 实机复现: n=k=65535、rowSize=65537、accTotal=UINT32_MAX,TTK 命中 blockDim=56 后报告 AIC Task TIMEOUT。 - [x] 边界算术检查:stride=57344 时安全上限为 4294909952;原反例 4294967295 改走 64 位路径。 - [x] 仓库 pre-commit 全部通过(clang-format、codespell、OAT 等)。 - [x] 修复源码单算子 JIT 构建、部署成功,部署侧源码与仓内源码 SHA-256 一致。 - [x] 修复后同一超大 shape 使用 --clean-dyn 实机复测:动态编译成功,shape、 blockDim=56 及 tiling data 与修复前一致;kernel 正常返回,STATUS: PASS、 DYN_MEM: OK,OK,未再出现 AIC Task TIMEOUT。该用例关闭 golden,只验证卡死消失和 内存安全。 - [x] FP32 普通小 shape JIT 数值回归通过,DYN_GOLD: PASS、STATUS: PASS、 DYN_MEM: OK,OK。 ## 文档更新 无需更新用户文档;问题复现与根因已记录在本地问题档案。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9545 | 1 个月前 | |
aclnnindexadd golden和空tensor修复 Co-authored-by: jinpenghe<hejinpeng5@huawei.com> # message auto-generated for no-merge-commit merge: !10001 merge indexadd into master aclnnindexadd golden和空tensor修复 Created-by: jinpenghe Commit-by: jinpenghe Merged-by: cann-robot Description: ## 描述 1、新增aclnnindexadd golden 2、aclnnindexadd 空tensor场景失败 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5640 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ops-test-kit aclnn用例shape ((4,3,),(0,),(0,3,),(4,3,),) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10001 | 28 天前 | |
inplace_index_add_with_sorted将golden规范化 Co-authored-by: liaohuming<liaohuming@huawei.com> # message auto-generated for no-merge-commit merge: !9902 merge master into master inplace_index_add_with_sorted将golden规范化 Created-by: liaohuming Commit-by: liaohuming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5588 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9902 | 1 个月前 | |
MicroAPI namespace to Reg for arch35 kernels Co-authored-by: gcw_DS4cmz2b<1312925094@qq.com> # message auto-generated for no-merge-commit merge: !9267 merge rename into master MicroAPI namespace to Reg for arch35 kernels Created-by: gcw_DS4cmz2b Commit-by: gcw_DS4cmz2b Merged-by: cann-robot Description: ## 描述 修改了index,activation,matmul,conv,foreach,optim,experimental,vfusion,hash这几个文件夹内的命名空间,将MicroAPI-->Reg ## 关联的Issue [多个文件夹内的算子命名空间使用的MicroAPI,应改为Reg](https://gitcode.com/cann/ops-nn/issues/5218) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 冒烟,代码审查均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9267 | 1 个月前 | |
AIDD拼写和标点问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !10060 merge master into master AIDD拼写和标点问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 AIDD拼写和标点问题修改 ## 关联的Issue 关联Issue #5680 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10060 | 28 天前 | |
fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9218 merge fix/proto-isolation-macro into master fix(op_graph): 30 个算子原型头补 OPS_PROTO_DEF 隔离宏 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 **改动原因** op_graph/*_proto.h 中的 REG_OP 会被 scripts/util/merge_proto.py 合并进 ops_proto_nn.h/.cpp,再编成内置 op_proto 库(cmake/gen_ops_info.cmake 的 merge_graph_headers → cmake/symbol.cmake 的 gen_opgraph_symbol)。当同名算子在 canndev 侧的遗留原型头(nn_norm_ops.h、reduce_ops.h、ops_proto_legacy.h 等)也有 REG_OP 注册时,两份定义进入同一编译单元会重复定义。 仓库既有范式是在 REG_OP 外层加条件编译隔离宏,merge_proto.py 的匹配式会把该宏一并带入合并产物。本仓已有 activation/relu6_d、optim/sgd、norm/in_training_reduce_v2、vfusion/normalize_bbox 等先例,但本批 30 个算子的原型头遗漏了该保护。检视意见整改。 **改动方法** 对 30 个算子的 op_graph/*_proto.h,在 REG_OP 外层补 #ifndef/#define OPS_PROTO_DEF_<OPTYPE> … #endif: c #ifndef OPS_PROTO_DEF_DEEPNORM #define OPS_PROTO_DEF_DEEPNORM REG_OP(DeepNorm) ... .OP_END_FACTORY_REG(DeepNorm) #endif // OPS_PROTO_DEF_DEEPNORM 宏名取 OPS_PROTO_DEF_ + 算子名大写去下划线,与发布包 opp/built-in/op_graph/inc 中已有 967 个同类隔离宏的拼法一致。位置严格贴在 REG_OP 前、OP_END_FACTORY_REG 后一行——merge_proto.py 的正则要求 guard 与 REG_OP 相邻,位置写偏宏会被丢弃。 **涉及算子(30 个)** ApplyAdagrad、BatchNormExt2、BN3DTrainingUpdate、BNInfer、BNTrainingUpdateV2、BNTrainingUpdateV3、ChamferDistance、ClippedSwiglu、CosineEmbeddingLoss、DeepNorm、DeepNormGrad、DynamicQuantUpdateScatter、DynamicQuantUpdateScatterV2、GemmaRmsNorm、GroupNormSiluQuant、HardSigmoid、HardSwishGradV2、INInferV2、InplaceApplyRMSProp、InplaceSub、InstanceNormGrad、INTrainingUpdateGrad、L2NormalizeGrad、MultiAddRmsNormDynamicQuant、MultilabelMarginLoss、NonZeroWithValue、PoissonNllLoss、Relu6Grad、SoftmaxFocalLoss、SoftmaxFocalLossGrad **顺带修复**:deep_norm、deep_norm_grad、gemma_rms_norm、multi_add_rms_norm_dynamic_quant、dynamic_quant_update_scatter_v2 这 5 个原型头文件末尾缺换行,属存量问题;pre-commit 的 end-of-file-fixer 钩子只扫改动文件,一旦改动即会被拦,故一并补齐。 **变更范围**:30 个文件,+95 −5,改动全部为条件编译指令与文件末尾换行,不改动任何 IR 的输入/输出/属性/dtype 定义,无功能与支持面变化。未改动 common/inc/op_graph/op_nn_proto_extend.h——merge_proto.py 会按算子名把聚合头中的重复项去重,改它不会进入合并产物。 ## 关联的Issue 关联 Issue #5170 ## 测试 1. **合并产物验证**:对 30 个改动文件跑 python3 scripts/util/merge_proto.py,合并产物中 REG_OP 30 个、#ifndef OPS_PROTO_DEF_ 30 个,隔离宏 30/30 全部正确带出。 2. **宏名配对验证**:与发布包 cann-9.2.0/opp/built-in/op_graph/inc/*.h 中同名算子的既有隔离宏逐个比对,宏名不一致项 0 处。 3. **重名检查**:30 个新增宏在三仓范围内无跨文件重名,每个文件内 OPS_PROTO_DEF_ 宏数恰为 1(无嵌套/重复保护)。 4. **格式与合规门禁**:按 .pre-commit-config.yaml 逐钩子本地复现 —— clang-format 18.1.8 --style=file --dry-run -Werror 整文件检查 30/30 通过、OAT 许可头 30/30 合规、trailing-whitespace / end-of-file-fixer / check-merge-conflict / detect-private-key / check-added-large-files 全部通过。 ## 文档更新 无。本 PR 不涉及文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 <!-- 关联 Issue: https://gitcode.com/cann/ops-nn/issues/5170 --> See merge request: cann/ops-nn!9218 | 1 个月前 | |
feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8821 merge InferShape into master feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5250 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Unknown Shape/ Unknown Rank迁移适配 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8821 | 1 个月前 | |
算子日志可读性与代码规范性的优化 Co-authored-by: xingtaowu<wuxingtao3@h-partners.com> # message auto-generated for no-merge-commit merge: !9376 merge fix_nn_log into master 算子日志可读性与代码规范性的优化 Created-by: xingtaowu Commit-by: xingtaowu Merged-by: cann-robot Description: ## 描述 批量修正日志/报错信息中的英文拼写错误与语法问题,并补充更明确的参数越界诊断信息,同时修正示例测试程序中的日志级别与代码格式问题。改动不涉及业务逻辑与算法流程变化,均为日志可读性与代码规范性的优化。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5291 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ x] 其他,请描述:算子日志可读性与代码规范性的优化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9376 | 1 个月前 | |
refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !8840 merge move-opapi into master refactor: 将 op_api 目录移动至算子根目录并统一构建配置 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 7 个算子的 op_api 实现从 op_host/op_api/ 子目录移动至算子根目录 op_api/,并将算子根目录 CMakeLists.txt 由递归式 file(GLOB) + add_subdirectory 统一为 add_modules_sources 构建方式,同时同步更新所有相关头文件引用路径。 涉及的算子: - index/apply_top_k_top_p_with_sorted - index/embedding_bag - index/linear_index - index/linear_index_v2 - loss/fused_cross_entropy_loss_with_max_sum - quant/fake_quant_affine_cachemask - rnn/single_layer_lstm_grad ### 改动原因 ops-nn 仓库中部分算子的 op_api 代码位于 op_host/op_api/ 层级之下,与其他算子的组织方式不一致,且构建配置分散在 op_host/CMakeLists.txt 中。本改动将 op_api 目录统一上移至算子根目录,并统一算子构建配置。 ### 改动方法 1. 将 7 个算子的 op_host/op_api/ 目录整体移动至算子根目录 op_api/(纯移动,内容不变); 2. 删除 7 个 op_host/CMakeLists.txt,算子根目录 CMakeLists.txt 统一改为调用 add_modules_sources(HOSTNAME ${OPHOST_NAME} MODE PRIVATE DIR ${CMAKE_CURRENT_SOURCE_DIR} OPTYPE <op_name> ACLNNTYPE aclnn_exclude); 3. 同步更新头文件引用路径:index/index_put_v2/op_api/aclnn_index_put_impl.cpp(linear_index_v2.h)、index/scatter_elements_v2/op_api/aclnn_scatter.cpp(linear_index.h)及 6 个 UT 测试文件; 4. 更新 classify_rule.yaml 中 linear_index_v2 的 op_api 路径(op_host/op_api/ → op_api/); 5. 格式修正:3 个文件补充末尾换行符,embedding_bag.cpp 注释格式调整。 ## 关联的Issue - https://gitcode.com/cann/ops-nn/issues/4875 ## 测试 - 变更均为目录结构移动与构建配置统一,无算法逻辑改动;UT 测试文件仅同步头文件引用路径。 - 依赖 CI 构建验证(未在 PR 中提供其他测试信息)。 ## 文档更新 无文档变更。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构(op_api 目录结构整理与构建配置统一) ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8840 | 1 个月前 | |
nn仓vector算子适配350平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10004 merge master into master nn仓vector算子适配350平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 p_relu等算子适配350平台 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5755 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10004 | 26 天前 | |
fix(masked_scatter): mark tiling parse context unused Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !10145 merge codex/masked-scatter-const-context-master into master fix(masked_scatter): mark tiling parse context unused Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 TilingPrepare4MaskedScatter 的 context 参数未被使用。本修改保持框架要求的 gert::TilingParseContext* 回调签名,为参数增加 [[maybe_unused]] 标注,并删除 (void)context。 ## 关联的Issue 关联Issue #5712 ## 测试 - git diff --check:通过 - 推送阶段 Git Hooks Checking:通过 - 未执行完整 C++ 构建:当前 Windows 环境缺少项目构建工具链 ## 文档更新 无需文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码质量改进 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10145 | 27 天前 | |
fix: 修复文件重名问题 Co-authored-by: duxinlei<duxinlei@h-partners.com> # message auto-generated for no-merge-commit merge: !9675 merge checkRepeat2 into master fix: 修复文件重名问题 Created-by: duxinlei Commit-by: duxinlei Merged-by: cann-robot Description: ## 描述 解决单仓内和多仓间文件名重复问题, 1、对于将公共文件引入单算子目录的重命名问题,改引用公共目录下的文件 2、对于单纯重名问题,重命名 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue #5460 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9675 | 1 个月前 | |
md大模型检测低错修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9420 merge master into master md大模型检测低错修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md aidd大模型检测低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5254 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9420 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !9847 merge fix/log-spec-20260903-v2 into master fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 对 index/ 下 6 算子(gather_elements、index、index_put_v2、index_put_with_sort_v2、non_zero、unsorted_segment_sum,含 examples、tests)的日志输出做规范整改,修复以下缺陷: - **致命级别错配**:index_put_v2_fusion_pass 失败分支 OP_LOGI 改为 OP_LOGE(14 处),故障不再被 INFO 级过滤忽略 - **标识符拼写改名(定义/声明/调用全同步)**:公共头 level2_base.h CheckInpuNullTensorMaxUnPool3D→CheckInputNullTensorMaxUnPool3D、isContinous_→isContinuous_、MargeInputAxis/MargeOutputAxis→MergeInputAxis/MergeOutputAxis、intputDtypeSize→inputDtypeSize、CalcTilingForInt→CalcTiling4Int、拼音变量 sheng→remainder - **描述与实现不符修正**:multinomial 日志实参 self/out 顺序颠倒(标签与值配对错误)、cast bool to int8 实际为 int32、onnx dtype 文案与 kvlist 对齐 - **错误描述不完整**:Check* failed! 补参数名(7 处)、GetDim/tailSize/indicesSize 等校验失败补当前值、校验宏 incorrectShapes/incorrectDtypes 传变量名字符串改传真实值(9 处)、dtype 支持列表补 DT_COMPLEX64 与实现集合对齐 - **格式符与实参类型不匹配**:按头文件/TilingData 实类型逐项修正:sortDimValue %d→%ld(9 处)、no_continuous 8 参数整段重写、ubSize_/innerDim_ %ld→%lu(5 处)等 - **语法错误(50+ 处)**:not support→does not support、should same with→should be the same as、is begin→begins、running begin/end→started/finished、don't→doesn't、序数 1th、两行拼接逗号补空格等 ### 改动方法 仅修改日志文案/级别/格式符及拼写错误标识符的全量同步改名,不改动任何校验逻辑与控制流;标识符改名已确认仓内定义/声明/调用零残留。 ## 关联的Issue #5650 ## 测试 - pre-commit 全部通过(clang-format / ruff-check / ruff-format / codespell / OAT 等 10 项) - bash build.sh --pkg --jit --soc=ascend950 编译打包通过(含 -Werror=format 严格校验) - 标识符改名定义/声明/调用全部同步(grep 零残留) - 输出文案中文残留、业务代码私有打印残留均为 0 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9847 | 27 天前 | |
fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9870 merge fix/ttk-golden-tf-third-party into master fix(assets,index,loss): ScatterList 资料/校验、loss 检视整改、TTK spec 适配、tf 三方腿与三方精度修正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ## 描述 补齐foreach类、scatter类及lamb类算子的tf等通路三方 ## 关联的Issue NA ## 测试 st ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9870 | 30 天前 | |
ops-nn仓算子添加隔离宏 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9655 merge proto_reg_op_modify into master ops-nn仓算子添加隔离宏 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2、SparseFillEmptyRows、SparseSegmentSum 算子添加隔离宏,防止原型重复定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9655 | 1 个月前 | |
feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9685 merge tf-plugin-part2 into master feat: 迁移第二批 TF 算子插件(新增 21 个 TF plugin 注册文件) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 本 PR 为 TensorFlow(TF)算子插件迁移的第二批(分支 tf-plugin-part2),新增 21 个 *_tf_plugin.cpp 插件注册文件,覆盖 common、conv、matmul、pooling、optim、norm、index、vfusion 模块。每个文件通过 REGISTER_CUSTOM_OP 将 TF 框架算子注册为自定义算子: - .FrameworkType(TENSORFLOW):声明算子来源于 TF 框架; - .OriginOpType(...):映射原始 TF 算子类型(含 Resource* 变体,如 ApplyAddSign / ResourceApplyAddSign); - 参数解析:多数算子通过 AutoMappingByOpFn 自动映射属性;Conv2D 额外将 filter format 固定为 HWCN,并根据 explicit_paddings 与输入 format(NCHW/NHWC)生成 pads 属性;Conv2DBackpropInput / Conv2DBackpropFilter / Conv3DBackpropFilter / Conv3DBackpropInput / AvgPool3D 等设置 NDHWC/NCDHW/DHWCN 等 format 与 pads 默认值;BatchMatMulV2 将 adj_x / adj_y 映射为 adj_x1 / adj_x2,并对 BatchMatMulV3 提供 ParseOpToGraphFn 将算子展开为 Data -> BatchMatMulV3 -> Cast 子图;InstanceNormGrad 提供 FusionParseParamsFn 融合参数解析接口; - .ImplyType(ImplyType::TVM):所有注册算子采用 TVM 实现。 ### 新增算子清单(21 个文件) | 文件 | 注册算子(OriginOpType) | |------|-------------------------| | common/src/framework/apply_add_sign_tf_plugin.cpp | ApplyAddSign(ApplyAddSign / ResourceApplyAddSign) | | common/src/framework/basic_lstm_cell_tf_plugin.cpp | BasicLSTMCell | | common/src/framework/basic_lstm_cell_grad_tf_plugin.cpp | BasicLSTMCellCStateGrad / BasicLSTMCellWeightGrad / BasicLSTMCellInputGrad | | common/src/framework/dynamic_lstm_tf_plugin.cpp | DynamicLSTM | | conv/conv2d_v2/framework/conv2d_tf_plugin.cpp | Conv2D | | conv/conv3d_v2/framework/conv3d_tf_plugin.cpp | Conv3D | | conv/conv3d_backprop_filter_v2/framework/conv2d_backprop_filter_tf_plugin.cpp | Conv2DBackpropFilter | | conv/conv3d_backprop_filter_v2/framework/conv3d_backprop_filter_tf_plugin.cpp | Conv3DBackpropFilter(Conv3DBackpropFilterV2) | | conv/conv3d_backprop_input_v2/framework/conv2d_backprop_input_tf_plugin.cpp | Conv2DBackpropInput | | conv/conv3d_backprop_input_v2/framework/conv3d_backprop_input_tf_plugin.cpp | Conv3DBackpropInput(Conv3DBackpropInputV2) | | index/non_zero_with_value_shape_v2/framework/non_zero_with_value_shape_v2_tf_plugin.cpp | NonZeroWithValueShapeV2 | | matmul/mat_mul_v3/framework/matmul_tf_plugin.cpp | MatMulV2(MatMul) | | matmul/batch_mat_mul_v3/framework/batch_matmul_tf_plugin.cpp | BatchMatMulV2(BatchMatMul / BatchMatMulV2 / BatchMatMulV3) | | norm/instance_norm_grad/framework/instance_norm_grad_tf_plugin.cpp | InstanceNormGrad | | optim/inplace_apply_adagrad_da/framework/apply_adagrad_da_tf_plugin.cpp | ApplyAdagradDA(ApplyAdagradDA / ResourceApplyAdagradDA) | | optim/inplace_apply_adagrad_v2/framework/apply_adagradv2_tf_plugin.cpp | ApplyAdagradV2(ApplyAdagradV2 / ResourceApplyAdagradV2) | | optim/inplace_apply_power_sign/framework/apply_power_sign_tf_plugin.cpp | ApplyPowerSign(ApplyPowerSign / ResourceApplyPowerSign) | | pooling/avg_pool3_d/framework/avg_pool3d_tf_plugin.cpp | AvgPool3D | | pooling/dilation2_d/framework/dilation2d_tf_plugin.cpp | Dilation2D | | pooling/max_pool_3d_grad_grad/framework/max_pool3d_grad_grad_tf_plugin.cpp | MaxPool3DGradGrad | | vfusion/normalize_bbox/framework/normalize_bbox_tf_plugin.cpp | NormalizeBBox | ### 改动原因 TF 算子插件迁移系列工作的第二批:将 TF 算子按模块拆分为独立的 */framework/*_tf_plugin.cpp 注册文件,统一注册方式与代码组织。 ## 关联的Issue - #5464 ## 测试 本次变更仅新增插件注册文件,未包含测试用例变更。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!9685 | 1 个月前 | |
nn仓vector算子适配350平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10004 merge master into master nn仓vector算子适配350平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 p_relu等算子适配350平台 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5755 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10004 | 26 天前 | |
feat:nn add aclnn testcase and golden again. Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master feat:nn add aclnn testcase and golden again. Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充了一批算子的st用例 和 golden。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5587 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9634 | 29 天前 | |
算子日志可读性与代码规范性的优化 Co-authored-by: xingtaowu<wuxingtao3@h-partners.com> # message auto-generated for no-merge-commit merge: !9376 merge fix_nn_log into master 算子日志可读性与代码规范性的优化 Created-by: xingtaowu Commit-by: xingtaowu Merged-by: cann-robot Description: ## 描述 批量修正日志/报错信息中的英文拼写错误与语法问题,并补充更明确的参数越界诊断信息,同时修正示例测试程序中的日志级别与代码格式问题。改动不涉及业务逻辑与算法流程变化,均为日志可读性与代码规范性的优化。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5291 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ x] 其他,请描述:算子日志可读性与代码规范性的优化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9376 | 1 个月前 | |
erfinv等3个算子新增ascend350平台支持 Co-authored-by: c00887544<chenshengze@huawei.com> # message auto-generated for no-merge-commit merge: !9912 merge 350 into master erfinv等3个算子新增ascend350平台支持 Created-by: chengzhi1120 Commit-by: c00887544 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> erfinv等3个算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5664 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9912 | 28 天前 | |
feat:nn add aclnn testcase and golden again. Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master feat:nn add aclnn testcase and golden again. Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充了一批算子的st用例 和 golden。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5587 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9634 | 29 天前 | |
gather_v2、scatter、scatter_update、scatter_nd_update算子支持PCIE through特性 Co-authored-by: klein8793<zhangli24@huawei.com> # message auto-generated for no-merge-commit merge: !8407 merge dev_zl_2026_0806 into master gather_v2、scatter、scatter_update、scatter_nd_update算子支持PCIE through特性 Created-by: klein8793 Commit-by: klein8793 Merged-by: cann-robot Description: ## 描述 gather_v2、scatter、scatter_update、scatter_nd_update算子支持PCIE through特性 ## 关联的Issue 关联Issue #5449 ## 测试 白盒用例、端对端通路验证:包括geir通路、aclnn、aclgraph通路 ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8407 | 1 个月前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
[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 | 25 天前 | |
feat(scatter_elements): 支持确定性全局排序 Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !9766 merge codex/migrate-scatter-elements-global-sort into master feat(scatter_elements): 支持确定性全局排序 Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 ScatterElements 在 Ascend 950 确定性模式下新增全局排序路径,复用现有 SortLib,并保留 data -> y 拷贝语义。 主要修改: - Host Tiling 增加全局排序 tiling、workspace 及 2xxxxxx tiling key 路由。 - 新增 copy -> linear index -> SortLib radix sort -> grouped reduction kernel。 - FP16/BF16 分组内使用 FP32 累加;INT8/INT16 使用 INT32 累加,组间按输出 dtype 写回。 - permSize 跟随 countMode,采用 32/64 位同宽设计,不修改 SortLib。 - 新增 ScatterElements Host Tiling UT,覆盖排序路由、fallback、subset 和 64 位 permutation 边界。 本 PR 仅修改 index/scatter_elements,index/sort_lib 与目标基线一致。 ## 关联的Issue Closes #5735 ## 测试 - pre-commit run --from-ref upstream/master --to-ref HEAD:全部通过。 - clang-format、codespell、OAT Compliance Check:全部通过。 - rebase 前后 git range-diff:补丁完全等价。 - git diff --check upstream/master...HEAD:通过。 - ScatterElementsWithSortedTiling:5/5 通过。 - ScatterElementsV2WithSortedTiling:9/9 通过。 - 上游 SortLibTilingTest:10/10 通过。 - ScatterElements Ascend950PR_9599 kernel 配置:20/20 编译通过。 - 完整 Host UT:48/51 通过;其余 3 个失败为本机 CANN 9.1 下既有的 ScatterElementsV2 确定性 tiling 序列化期望差异,与本 PR 无关。 ## 文档更新 无需文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9766 | 26 天前 | |
修改nn仓部分算子license和format Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !10082 merge scatter_nd_add into master 修改nn仓部分算子license和format Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 修改nn仓部分算子license和format ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5706 ## 测试 冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:修改部分算子license和format ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10082 | 27 天前 | |
[Test] 补充 ScatterListTorchSpec 的 torch 三方标杆注册 Co-authored-by: chendunyang<chendunyang1@huawei.com> # message auto-generated for no-merge-commit merge: !10238 merge fix/scatter-list-torch-third-party into master [Test] 补充 ScatterListTorchSpec 的 torch 三方标杆注册 Created-by: qq_37913898 Commit-by: chendunyang Merged-by: cann-robot Description: ## 问题 ScatterListTorchSpec 缺少 third_party 注册,E2E 三方比对无法从该 Spec 获取 torch 组合实现。 ## 修改 - 补充 third_party = {"torch": _Compose}。 - 新增最小参数名适配,将 Torch API 的 input/indices/updates 转交现有 _ScatterListCompose,mask、axis 等参数原样透传。 - 不修改现有计算逻辑、CPU golden、Kernel/ACLNN 注册或精度标准。仅修改 index/scatter_list/tests/assets/golden.py,新增 5 行。 ## 验证 - 使用真实 TTK get_spec_attr 成功加载 torch_npu.npu_scatter_list 的 third_party。 See merge request: cann/ops-nn!10238 | 26 天前 | |
[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 | 25 天前 | |
feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8821 merge InferShape into master feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5250 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Unknown Shape/ Unknown Rank迁移适配 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8821 | 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 | 25 天前 | |
[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 | 25 天前 | |
docs: 修正 IndexFill/ScatterNd/FusedLinearOnlineMaxSum/WeightQuantBatchMatmulV2/LSTM 文档示例笔误 Co-authored-by: weike<weike13@huawei.com> # message auto-generated for no-merge-commit merge: !10123 merge codex/pr-37ebcb4-docs-fix into master docs: 修正 IndexFill/ScatterNd/FusedLinearOnlineMaxSum/WeightQuantBatchMatmulV2/LSTM 文档示例笔误 Created-by: m0_55003149 Commit-by: weike Merged-by: cann-robot Description: ## 描述 修正 5 个算子文档示例中的笔误(对应本地提交 37ebcb4cb): - aclnnInplaceIndexFill:示例中日志打印的函数名由 aclnnIndexFill 改为 aclnnInplaceIndexFill; - aclnnScatterNd:示例注释由 aclnnAdd 改为 aclnnScatterNd; - aclnnFusedLinearOnlineMaxSum:示例中变量名 tatgetDeviceAddr 拼写修正为 targetDeviceAddr; - aclnnWeightQuantBatchMatmulV2:示例中 LOG_PRINT 的 aclnnCast2 修正为 aclnnCast; - aclnnLSTM:公式中隐藏状态向量符号 h_i 修正为 h_t。 ## 关联的Issue (https://gitcode.com/cann/ops-nn/issues/5704) ## 测试 纯文档修改,无代码逻辑变更,不需要运行测试。 ## 文档更新 本次改动仅涉及 5 个算子 .md 文档的示例/描述修正。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!10123 | 27 天前 | |
修改nn仓部分算子license和format Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !10082 merge scatter_nd_add into master 修改nn仓部分算子license和format Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 修改nn仓部分算子license和format ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5706 ## 测试 冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:修改部分算子license和format ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10082 | 27 天前 | |
MicroAPI namespace to Reg for arch35 kernels Co-authored-by: gcw_DS4cmz2b<1312925094@qq.com> # message auto-generated for no-merge-commit merge: !9267 merge rename into master MicroAPI namespace to Reg for arch35 kernels Created-by: gcw_DS4cmz2b Commit-by: gcw_DS4cmz2b Merged-by: cann-robot Description: ## 描述 修改了index,activation,matmul,conv,foreach,optim,experimental,vfusion,hash这几个文件夹内的命名空间,将MicroAPI-->Reg ## 关联的Issue [多个文件夹内的算子命名空间使用的MicroAPI,应改为Reg](https://gitcode.com/cann/ops-nn/issues/5218) ## 测试 验证方法 严格按四步流程,逐算子验证: 1. Step 1:编译原始代码,保存 baseline binary .o 文件 MD5 2. Step 2:执行 MicroAPI → Reg 替换 3. Step 3:编译替换后代码,保存 after binary .o 文件 MD5 4. Step 4:对比 A_before.md5 与 B_after.md5 平台:ascend950,编译参数:--soc=ascend950 --ops=<op> -j16 验证替换前后 binary 产物 MD5 完全一致。 冒烟,代码审查均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9267 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 2 个月前 | |
补充ScatterNdSub算子InferDataType推导 Co-authored-by: guankarl<guanhongwei3@huawei.com> # message auto-generated for no-merge-commit merge: !9478 merge fix_scatter_nd_sub_inferdtype into master 补充ScatterNdSub算子InferDataType推导 Created-by: guankarl Commit-by: guankarl Merged-by: cann-robot Description: ## 描述 ScatterNdSub算子补充InferDataType推导:op_host/scatter_nd_sub_infershape.cpp 原先仅注册 InferShape,缺少 InferDataType 注册,补充输出 dtype 推导(输出 dtype = 输入 var dtype)并挂接到 IMPL_OP_INFERSHAPE 注册链。 ## 关联的issue https://gitcode.com/cann/ops-nn/issues/5465 ## 测试 - 已通过 ophost 编译验证(ascend950,build.sh --ops=scatter_nd_sub) ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [x] AI 辅助编写 - [ ] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-nn!9478 | 1 个月前 | |
scatterNdUpdate 算子cleancode 整改 Co-authored-by: xingtaowu<wuxingtao3@h-partners.com> # message auto-generated for no-merge-commit merge: !10027 merge fix_cleancode into master scatterNdUpdate 算子cleancode 整改 Created-by: xingtaowu Commit-by: xingtaowu Merged-by: cann-robot Description: ## 描述 scatterNdUpdate 算子的 ScatterNdUpdateDeterministicSimd 模板类(scatter_nd_update_deterministic_simd.h)进行 cleancode 整改,核心改动是将缓冲队列深度相关的魔法数字 2 统一替换为语义明确的命名常量 DOUBLE_BUFFER,不涉及业务逻辑或行为变化。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5667 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟通过,修改模板用例验证。 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ x] 其他,请描述:scatterNdUpdate 算子cleancode 整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10027 | 27 天前 | |
feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8821 merge InferShape into master feat: 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 18个迁移算子适配unknown shape/rank InferShape并补UT及入口日志 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5250 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:Unknown Shape/ Unknown Rank迁移适配 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8821 | 1 个月前 | |
fix(scatter,foreach): 修复 ScatterMax/Min/Mul/Div 排序竞态与 Div 精度档,并整改 12 个算子 golden Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !10059 merge fix/golden-third-party-precision-batch2 into master fix(scatter,foreach): 修复 ScatterMax/Min/Mul/Div 排序竞态与 Div 精度档,并整改 12 个算子 golden Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复 ScatterMax/Min/Mul/Div 排序阶段的多核同步缺口与 foreach_div_list_inplace 的除法精度档, 并整改 12 个 foreach/scatter/lamb 算子 tests/assets/golden.py 的四类缺陷、补齐 2 处资料。 ### 一、内核缺陷 **1) scatter_reduce_common 并行归并排序缺少 MTE3->V / MTE3->S 同步(竞态)** SortLocalRuns() 循环尾只发 MTE3->MTE2(保护下一轮的输入搬入),未约束下一轮的 V 管道(Sort/Adds)与 S 管道(补哨兵)—— 而它们写的正是同一对 UB shiftSorted / originUb,本轮把它们搬出到 GM 的 DataCopyPad(MTE3) 尚未读完就被覆写, 导致落盘的排序键与原位置索引被污染,少数 var 行折进别行的 update。 旁证:同文件 SortMergeTree() 循环尾发的是 MTE3->S(它只用 S 写 UB,够用), 反衬出 SortLocalRuns() 漏了两条。 修复: cpp + const event_t m3v = pipe_.FetchEventID(HardEvent::MTE3_V); + const event_t m3s2 = pipe_.FetchEventID(HardEvent::MTE3_S); ... SetFlag<MTE3_MTE2>(m3m2); WaitFlag<MTE3_MTE2>(m3m2); + SetFlag<MTE3_V>(m3v); WaitFlag<MTE3_V>(m3v); + SetFlag<MTE3_S>(m3s2); WaitFlag<MTE3_S>(m3s2); **A/B 同种子对照**(var 6288948 行 / M 5375 万 / 合法索引 / 8 个固定种子,其余完全相同): | | 修复前 | 修复后 | |---|---:|---:| | PASS | 2 | **8** | | FAIL | 6 | **0** | 原触发用例连跑 3 遍 3/3 全绿(修复前每次必红)。ScatterMin 同规模复跑 3/3 全绿。 影响面:该内核为 ScatterMax/Min/Mul/Div 共享(Process() 中 MAX/MIN/MUL 走完全相同的路径, DIV 共用排序阶段),四个算子一并修复;位于 op_kernel/arch35/ 专属目录,不影响 A2。 **2) foreach_div_list_inplace 未开启 Div 的 0 ULP 精度档** Div(...) 未传 DivConfig,落到 DEFAULT_DIV_CONFIG = {DivAlgo::INTRINSIC}; 在 dav-3510 上该档是 1 ULP 保真舍入(实测 3126 万个 fp32 元素中 **8.29% 偏 1 ULP**), 而竞品 fp32 除法为 0 ULP 正确舍入。显式选 PRECISION_0ULP_FTZ_TRUE: | | 偏 0 ULP | 偏 1 ULP | 最大偏差 | |---|---:|---:|---:| | 修改前 | 91.71% | 8.29% | 1 ULP | | 修改后 | **100.0000%** | **0%** | **0 ULP** | 全泛化集 34/34 通过,性能 +4.2%(--run 12 同条件实测 209.8us -> 218.7us)。 未取仓内他处常见的 FTZ_FALSE:两档精度实测完全相同,但 FTZ_FALSE 的非规格数完整处理 同条件实测 218.7us -> 2028.1us(**9.3x**),而本算子输入域内不产生 fp32 非规格数。 ### 二、golden 整改(12 个算子) **3) Promote 撤销** —— _to_fp32 无条件把 Promote 后的 float64 砍回 fp32,等于撤销 TTK 的 Promote 能力:fp32 档的 mare 恒等于地板值 0.0019531(= 1ULP / 2^-14),无论内核对错都过, **该档等于从未被验证**。加 float64 护栏(CPU 侧不 cast,来什么算什么)。 **4) 三方腿入参绑定失效** —— _TpKernelFaithful 包装遮蔽了真实签名,TTK 按 __call__ 签名 绑定入参导致 TypeError,三方腿整条不可用。透传 __signature__ 修复。 **5) TensorList 载体还原** —— bf16 以 void 视图传入,torch 不认,按位 view 回 bf16(同宽无损)。 **6) 标量重载** —— torch 的 foreach 标量重载只接受 Number,Python 标量是 weak-typed 不会抬高 dtype,改为返回 Python 数值。 **7) scatter_list 的 uint16/uint32 崩溃** —— 走 torch index_put 会抛异常,改用等宽有符号 位视图(uint16->int16、uint32->int32)规避。 **8) scatter_div 工作 dtype** —— 由硬编码 fp32 改为跟随输入(仅保留 bf16->fp32 的载体桥接)。 **9) scatter_max/min/mul/div 的 tf 三方腿按内核算法转写** —— 内核对 fp16 是 LoadWiden 到 fp32 计算、NarrowStore 窄回,原实现只在窄类型上算,与被测内核不是同一个算法。 ### 三、资料 **10)** aclnnScatterMin.md 补齐索引取值范围约束(索引值的取值范围为[0, varRef.shape[0]))—— 该条 Max/Mul/Div 三个算子的资料原本就有,仅 Min 的约束列为空,属资料内部不一致。 **11)** aclnnScatterList.md 补充 maskOptional 取值范围(措辞与既有的 indice 取值条款对齐), 并修正参数表 mask 维度列笔误(原写 0-8,实际实现仅支持 1 维,tiling 对 maskDims != 1 直接返回 GRAPH_FAILED)。 ## 验证 | 项 | 结果 | |---|---| | ScatterMax 排序竞态 A/B(同 8 种子) | 修复前 2/8 通过 → 修复后 **8/8 通过** | | ScatterMin 同规模复跑 | **3/3 通过** | | foreach_div 全泛化集 | **34/34 通过**,3126 万元素 100% 偏 0 ULP | | 12 个算子 kernel + geir 双通路 | **1646 例,除已修复项外全部通过** | | ScatterMax/Min aclnn 通路 | **2/2、2/2 通过**(GetWorkspaceSize 与 OnXpuProfiling 均命中) | | CI 门禁 | ruff check / ruff format 全部通过 | 关联 Issue #5682 See merge request: cann/ops-nn!10059 | 28 天前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 1 个月前 | |
feat:nn add aclnn testcase and golden again. Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !9634 merge master into master feat:nn add aclnn testcase and golden again. Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充了一批算子的st用例 和 golden。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5587 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> st用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9634 | 29 天前 | |
将卷积和matmul的ut根据版本隔离开, 整改950 ophost ut Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !9549 merge master into master 将卷积和matmul的ut根据版本隔离开, 整改950 ophost ut Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 主要修改内容: 1. nn仓完成和legacy common 动态库解耦后,卷积和matmul的不同版本 ophost ut 已经不能混合一起跑了。需要版本隔离 2. ascend950的ut全量编译 失败,需要修改 ## 关联的Issue [https://gitcode.com/cann/ops-nn/issues/5425](https://gitcode.com/cann/ops-nn/issues/5425) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9549 | 1 个月前 | |
贡献sort lib全局排序公共库 Co-authored-by: lixin433<lixin433@huawei.com> # message auto-generated for no-merge-commit merge: !8888 merge master-sort into master 贡献sort lib全局排序公共库 Created-by: lixin433 Commit-by: lixin433 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 贡献sort lib全局排序公共库,供索引类算子全局排序方案使用 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue [#4913](https://gitcode.com/cann/ops-nn/issues/4913) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 冒烟通过,ut通过,本地测试通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8888 | 1 个月前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 1 个月前 | |
fix(index): validate negative dense rows Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !9621 merge fix/issue-5023-validate-dense-rows into master fix(index): validate negative dense rows Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 在将 dense_shape[0] 用作内部行偏移数组长度前增加合法性校验。当行数为负数时返回 KERNEL_STATUS_PARAM_INVALID,避免负数在 std::vector 分配过程中隐式转换为超大的无符号值。 新增 AICPU Kernel 回归测试,覆盖 dense_shape[0] 为负数的异常输入场景。 ## 关联的Issue Fixes #5023 ## 测试 - bash build.sh --opkernel_aicpu_test --ops=sparse_fill_empty_rows -j8 - 34/34 测试通过。 - /home/developer/.local/bin/pre-commit run --files index/sparse_fill_empty_rows/op_kernel_aicpu/sparse_fill_empty_rows_aicpu.cpp index/sparse_fill_empty_rows/tests/ut/op_kernel_aicpu/test_sparse_fill_empty_rows.cpp - 全部检查通过。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9621 | 1 个月前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 1 个月前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 1 个月前 | |
ops-nn仓算子添加隔离宏 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !9655 merge proto_reg_op_modify into master ops-nn仓算子添加隔离宏 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 IndexToAddr、NonZeroWithValueShape、NonZeroWithValueShapeV2、SparseFillEmptyRows、SparseSegmentSum 算子添加隔离宏,防止原型重复定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9655 | 1 个月前 | |
修改SparseSegmentSumGrad、Dilation2D infershape并增加对应UT Co-authored-by: wang-shilong32<wangshilong23@huawei.com> # message auto-generated for no-merge-commit merge: !8931 merge fix_dilation_sparse_infer into master 修改SparseSegmentSumGrad、Dilation2D infershape并增加对应UT Created-by: wang-shilong32 Commit-by: wang-shilong32 Merged-by: cann-robot Description: ## 描述 修改SparseSegmentSumGrad、Dilation2D infershape -1/-2场景 并增加对应UT <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4950 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地验证对应UT用例,出包验证,冒烟测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8931 | 1 个月前 | |
nn仓vector算子适配350平台 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !10004 merge master into master nn仓vector算子适配350平台 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 p_relu等算子适配350平台 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5755 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10004 | 26 天前 | |
refactor: 迁移 TF 插件注册至新框架 API(part 3) Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !9758 merge tf-plugin-part3 into master refactor: 迁移 TF 插件注册至新框架 API(part 3) Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 将 TF 框架侧自定义算子注册(REGISTER_CUSTOM_OP)从旧工具链迁移至 ops-nn 新仓(TF 插件迁移 part 3),共新增/调整 22 个 *_tf_plugin.cpp 注册文件。 ### 改动原因 1. 旧注册 API(ParseParamsFn/AutoMappingFn)与标量 OriginOpType({...}) 写法在新工具链已不适用,统一迁移为 ParseParamsByOperatorFn(AutoMappingByOpFn) 与 OriginOpType(std::vector<ge::AscendString>{...}) 形式; 2. 依赖 TF protobuf NodeDef(node_def.pb.h)的旧解析逻辑在新工具链中已不存在,相关解析改为基于 ge::Operator 的子图分解(ParseOpToGraphFn/FusionParseParamsFn)实现; 3. 承接本仓已完成的 TF 插件迁移 part 1/2,补齐剩余算子的 TF 注册。 ### 改动方法 按模块汇总: - common:新增 AscendWeightQuant(TF 字符串 dst_type 到 ge DataType 的转换解析)、GatherPoint(分解为 GatherV2+Const 子图)、GatherPointGrad(分解为 ScatterUpdate 子图)注册; - index:gather_v2 新增 Gather/ResourceGather 到自定义 Gather 的注册;scatter_add/scatter_sub 新增 TensorScatterAdd/TensorScatterSub 注册;新增 BroadcastGradientArgs、SparseSegmentMean、SparseSegmentMeanGrad、SparseSlice、SparseToDense 注册; - norm:BNInfer/BNTrainingReduceGrad/BNTrainingUpdateGrad/LayerNorm/LayerNormGrad 由 ParseParamsFn 迁移到 ParseParamsByOperatorFn;LayerNorm/LayerNormGrad 增补 FusedLayerNorm/FusedLayerNormGrad 双 origin 映射;bn_training_update_v2 新增 BNTrainingUpdate 注册; - optim:ApplyAdagrad 迁移新 API(保留 ApplyAdagrad/ResourceApplyAdagrad 双 origin); - matmul:新增 Einsum 注册; - rnn:新增 BlockLSTM(分解为 DynamicRNN 子图,含 seq_length 的 Cast 与输出重排)、DynamicRNN 融合解析(FusionParseParamsFn)与 DynamicRnn 注册、DynamicRNNV2/DynamicRnnV2 系列注册(含 is_misplaced 属性处理)。 ## 关联的Issue 关联 Issue #5505:https://gitcode.com/cann/ops-nn/issues/5505 ## 测试 本 PR 仅涉及注册/图解析代码迁移,无测试文件变更;依赖仓内 CI(编译、静态检查、UT/ST 工作流)验证。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:TF 插件注册迁移(part 3) ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9758 | 1 个月前 | |
fix: 修复 TensorScatterUpdate AICPU 并行分支错误码被吞 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !9125 merge tensor_scatter_update_parallel_error into master fix: 修复 TensorScatterUpdate AICPU 并行分支错误码被吞 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 TensorScatterUpdate AICPU 算子的 UpdateOutput 在 info.updates_nums > kSplitSize(64*1024 个元素)时走 CpuKernelUtils::ParallelFor 多线程分支,该分支存在两个问题。 **1. 错误码必现丢失(功能缺陷)** worker 通过按引用捕获的 ret 上报状态,但随后 ret = CpuKernelUtils::ParallelFor(...) 用其返回值覆盖了 ret。CpuKernelUtils::ParallelFor 在 device/sharder 非空时无条件 return KERNEL_STATUS_OK,且其内部 barrier 保证所有 worker 先于该赋值完成,因此 worker 上报的 PARAM_INVALID / INNER_ERROR **100% 被覆盖为 OK**,与线程交错无关。 由此产生行为不一致:同一份越界 indices 输入,updates 元素数 <= 65536 走串行分支正确返回 PARAM_INVALID;> 65536 则静默返回 OK 并输出错误数据。 **2. 数据竞争** ret 为非原子 uint32_t,被多个 worker 并发读(:196/:201)写(:200)。同文件 InitializeOutput(:131) 以及 scatter_elements_aicpu.cpp:250、scatter_nd_max_aicpu.cpp:79 的同构实现均使用 std::atomic<uint32_t>,此处为遗漏。 ### 修改内容 - ret 改为 std::atomic<uint32_t> work_ret,与同仓同类实现对齐; - 循环内改用局部变量 one_ret 承接单次结果,仅在出错时写 work_ret; - ParallelFor 的返回值不再覆盖 work_ret,仅在派发失败时写入。 ### 顺带的性能收益 原实现每次迭代都写共享的 ret(:200 在内层循环内),所有核在同一 cache line 上反复搬运。改后热路径无共享写。x86 微基准(1M updates,模拟 inner_shape_nums==1): | 线程数 | 修改前 | 修改后 | |---|---|---| | 1 | 13.91 ms | 13.63 ms | | 2 | **21.74 ms** | 7.13 ms | | 4 | 20.24 ms | 3.77 ms | | 8 | 15.10 ms | 3.71 ms | 注意修改前 2 线程反而慢于 1 线程,即该并行分支原本基本没有加速比;修改后恢复线性扩展。该数据来自 x86 开发机,非 NPU 实测,仅用于说明量级与方向。 ## 关联的Issue 关联Issue #5084 ## 测试 **1. 单元测试(tests/ut/op_kernel_aicpu/test_tensor_scatter_update.cpp)** 此前 11 个用例全部为小张量,UpdateOutput 的并行分支零覆盖。本 PR 新增 2 例: - PARALLEL_BRANCH_SUCC:updates_nums = 70000 > 65536,合法 indices(逆序置换,让各 shard 写入交错),验证并行分支结果正确; - FAILED_OUT_OF_BOUNDS_INDEX_PARALLEL:同样规模下含单个越界 index,验证返回 KERNEL_STATUS_PARAM_INVALID。 回归对照(bash build.sh --opkernel_aicpu_test --ops=tensor_scatter_update): | | 修改前 | 修改后 | |---|---|---| | 原有 11 例 | 全通过 | 全通过 | | PARALLEL_BRANCH_SUCC | 通过 | 通过 | | FAILED_OUT_OF_BOUNDS_INDEX_PARALLEL | **失败**(ret=0,期望 1) | 通过 | 修改前 12 通过 1 失败,修改后 13/13 全通过。新增用例确实能捕获该缺陷。 **2. 真机验证(Ascend 910B3 + CANN 9.1.0)** 打自定义算子包(bash build.sh --pkg --soc=ascend910b --ops=tensor_scatter_update,确认 tensor_scatter_update_aicpu.cpp.o 编入 libnn_aicpu_kernels.so)后,用 graph example 对照: | 输入 | CANN 9.1.0 内置算子 | 装入本修复后 | |---|---|---| | 越界 index,updates_nums=70000(并行分支) | Run graph success,输出静默错 10 个元素 | Run graph failed(预期) | | 合法 index,updates_nums=70000(并行分支) | — | SELF_CHECK mismatch=0,success | | 仓内原版 updates_nums=10(串行分支) | success | success,数值不变 | 第一行即本 PR 的核心:错误现在能一路传到 session->RunGraph()。UT 覆盖 HostSharder,真机覆盖 DeviceSharder,两条 sharder 路径均已验证。 注:build.sh --run_example 单独执行时不编译 AICPU kernel,链接的是已安装的 opp 包,需打自定义包安装后才能验证算子改动。 **3. 门禁** pre-commit run 全部通过(trailing-whitespace / end-of-file / clang-format / codespell / OAT 等)。 ## 文档更新 无。本 PR 不改变算子对外接口、语义或约束,仅修复并行分支下错误码未上报的实现缺陷,行为向串行分支对齐。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9125 | 1 个月前 | |
修改aclnn文档示例代码问题 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !9489 merge scatter_add into master 修改aclnn文档示例代码问题 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 修改aclnnTfScatterAdd.md文档示例代码问题 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5326 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 aclnnScatterAdd.md和aclnnTfScatterAdd.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9489 | 1 个月前 | |
Fix top_k_top_p_sample docs and example Co-authored-by: licheng261<licheng261@huawei.com> # message auto-generated for no-merge-commit merge: !9906 merge top_k_top_p_sample_doc_0904 into master Fix top_k_top_p_sample docs and example Created-by: licheng261 Commit-by: licheng261 Merged-by: cann-robot Description: ## 描述 修复top_k_top_p_sample文档和示例代码,保持一致 ## 关联的Issue [#5591](https://gitcode.com/cann/ops-nn/issues/5591) ## 测试 ## 文档更新 ops-nn/index/top_k_top_p_sample/docs/aclnnTopKTopPSample.md ops-nn/index/top_k_top_p_sample/examples/test_aclnn_top_k_top_p_sample.cpp ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9906 | 30 天前 | |
修复aclnnTopKTopPSampleV2文档示例代码与参数表不一致问题 Co-authored-by: 陈赵旻熠<chenzhaominyi1@huawei.com> # message auto-generated for no-merge-commit merge: !10065 merge master into master 修复aclnnTopKTopPSampleV2文档示例代码与参数表不一致问题 Created-by: zerosaki_admin Commit-by: 陈赵旻熠 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复aclnnTopKTopPSampleV2文档示例代码与参数表不一致问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#5681](https://gitcode.com/cann/ops-nn/issues/5681) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了aclnnTopKTopPSampleV2文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10065 | 28 天前 | |
fix license header Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !10118 merge master into master fix license header Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 test_aclnn_unique.cpp和test_aclnn_unique2.cpp源文件版权头不规范 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5746 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10118 | 27 天前 | |
将卷积和matmul的ut根据版本隔离开, 整改950 ophost ut Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !9549 merge master into master 将卷积和matmul的ut根据版本隔离开, 整改950 ophost ut Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 主要修改内容: 1. nn仓完成和legacy common 动态库解耦后,卷积和matmul的不同版本 ophost ut 已经不能混合一起跑了。需要版本隔离 2. ascend950的ut全量编译 失败,需要修改 ## 关联的Issue [https://gitcode.com/cann/ops-nn/issues/5425](https://gitcode.com/cann/ops-nn/issues/5425) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9549 | 1 个月前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 1 个月前 | |
docs:修复Unique系列 ACLNN文档中的格式与示例错误 Co-authored-by: jerry_gd<jerry.luo@huawei.com> # message auto-generated for no-merge-commit merge: !9697 merge master into master docs:修复Unique系列 ACLNN文档中的格式与示例错误 Created-by: jerry_gd Commit-by: jerry_gd Merged-by: cann-robot Description: ## 描述 修复Unique系列 ACLNN文档中的格式与示例错误。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5491 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本次仅修改 Markdown 文档和文档内示例代码,未执行编译或运行测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - index/unique_consecutive/docs/aclnnUnique.md - index/unique_consecutive/docs/aclnnUnique2.md - index/unique_consecutive/docs/aclnnUniqueConsecutive.md - index/unique_with_counts_ext2/docs/aclnnUniqueDim.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9697 | 1 个月前 | |
UnsortedSegmentProd性能优化 Co-authored-by: zhangxiyan7<zhangxiyan7@huawei.com> # message auto-generated for no-merge-commit merge: !9677 merge UnsortedSegmentProd into master UnsortedSegmentProd性能优化 Created-by: zhangxiyan7 Commit-by: zhangxiyan7 Merged-by: cann-robot Description: ## 描述 针对 UnsortedSegmentProd 算子性能对标竞品部分用例不达标的问题,从单一 Simt 路径扩展为多模板路径体系,并增加全无效 id 向量化快路径。分模板优化说明: 1. OutFl / OutFlWsMerge(输出全载)模板 - 输入行数远超输出规模( inputOuterDim > outputSize × 总核数 × 2)时启用:输出整块驻留 UB,输入行按批流入直接累乘,消除逐行原子写 - WsMerge 变体:各核在 workspace 私有段累乘局部积,最后按输出行跨核 merge,突破单核 UB 容量限制 2. InputPart(输入分区)模板 - 输入行数 ≥ 1024 且输出可驻留 workspace 时启用:按输入行多核分区并行,各核产出局部积后按输出行 merge,解决输入长、输出短的负载并行度问题 - strided flag 跨核聚合:各核将"是否存在有效 id"写入带 stride 的 GM flag,清缓存 + SyncAll 后汇聚,全局无有效 id 时直接跳过 merge 写初值 1 3. SegmentSort(段排序)模板 - float32 且 128 ≤ innerDim < 512、行数 ≥ 1024 时启用:RadixSort 对 segmentIds 排序(多核本地排序 + 归并树合并),归约阶段按连续 segment 顺次连乘,消除随机访存 4. SplitCol / SortSimt 模板:复用公共路径 + Prod 特化 - SplitCol 的 baseA ;sLoopNum == 1 时走单块快路径——一次性读入全部 ids 并先做全无效检测,再决定是否搬运数据 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5636 ## 测试 目标用例性能达标(换算带宽后实现 竞品耗时/NPU耗时 > 0.2),冒烟通过。部分用例性能对比结果如下: | # | 用例 / dtype | 输入形状(seg数) | GPU耗时(µs) | 初始NPU耗时(µs) | 初始耗时比 | 最终NPU耗时(µs) | 最终耗时比 | |---|---|---|---|---|---|---|---| | 1 | 000132 fp32/int32 | [5410,77,4] (554) | 19.35 | 381.08 | 0.051 | 30.09 | 0.643 | | 2 | 000040 bf16/int32 | [20,1,8,9,12] (906) | 13.32 | 235.62 | 0.057 | 10.40 | 1.280 | | 3 | 000047 bf16/int64 | [2,2019,33,2,2,2,2,2] (231) | 451.06 | 12101.55 | 0.037 | 110.87 | 4.068 | | 4 | 000116 fp16/int32 | [63,5,10044] (834) | 28.21 | 518.22 | 0.054 | 27.30 | 1.033 | | 5 | 000062 int32/int32 | [3,2,1110,2,2,11,2,2] (224) | 14.59 | 1248.42 | 0.012 | 29.71 | 0.491 | | 6 | 000140 fp32/int32 | [2,4,4,1,8,5,8] (308) | 4.98 | 76.65 | 0.065 | 4.97 | 1.003 | | 7 | 000131 fp32/int64 | [60,5717] (262) | 6.69 | 144.32 | 0.046 | 7.02 | 0.953 | | 8 | 000163 int32/int64 | [101,32383] (853) | 70.59 | 1705.76 | 0.041 | 148.06 | 0.477 | | 9 | 000130 fp32/int32 | [1605,1054] (724) | 620.00 | 34430.41 | 0.018 | 141.21 | 4.391 | | 10 | 000171 int32/int64 | [10090,3,3,3,5,3] (822) | 490.38 | 26759.76 | 0.018 | 270.01 | 1.816 | | 11 | 000017 fp32/int64 | [770] (909) | 8.04 | 1084.10 | 0.007 | 20.81 | 0.386 | | 12 | 000007 fp32/int32 | [52,9739,4,4] (97) | 434.26 | 19934.99 | 0.022 | 66.02 | 6.577 | | 13 | 000134 fp32/int32 | [5,28,34,19] (66) | 160.63 | 34359.26 | 0.005 | 638.77 | 0.251 | | 14 | 000024 fp32/int32 | [20,4,5,21,9] (769) | 5.45 | 198.86 | 0.027 | 7.66 | 0.711 | | 15 | 000006 fp16/int32 | [68,4,4,13603] (208) | 208.56 | 4464.44 | 0.047 | 113.08 | 1.844 | | 16 | 000126 fp16/int32 | [136,2,2,2,645,2,2,2] (965) | 58.30 | 1237.38 | 0.047 | 46.24 | 1.261 | | 17 | 000046 bf16/int32 | [2,2,2,272,2,2,2,63] (406) | 143.06 | 3622.09 | 0.039 | 63.18 | 2.264 | | 18 | 000021 fp32/int64 | [5,12,3171] (383) | 23.28 | 152.96 | 0.152 | 26.94 | 0.864 | | 19 | 000011 fp32/int64 | [2,7081,2,2,2,6,3,2] (632) | 57.57 | 4150.62 | 0.014 | 140.37 | 0.410 | | 20 | 000037 bf16/int64 | [145,4,8254] (1000) | 78.42 | 1037.15 | 0.076 | 96.01 | 0.817 | | 21 | 000135 fp32/int64 | [5,5,4,41] (839) | 45.12 | 3645.09 | 0.012 | 15.85 | 2.847 | | 22 | 000146 bf16/int32 | [23,47] (269) | 14.94 | 480.06 | 0.031 | 15.58 | 0.959 | | 23 | 000017 fp32/int64 | [9718] (954) | 44.76 | 2030.42 | 0.022 | 19.37 | 2.310 | | 24 | 000056 int32/int32 | [4,4,17,4,6535] (396) | 3092.56 | 209483.03 | 0.015 | 552.16 | 5.601 | | 25 | 000227 int32/int64 | [116,317,10,446] (788) | 1254.56 | 83651.63 | 0.015 | 2683.99 | 0.467 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UnsortedSegmentProd算子性能优化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9677 | 28 天前 | |
refactor unsorted_segment series tilingkey register Co-authored-by: oah28<wujiahao37@huawei.com> # message auto-generated for no-merge-commit merge: !8864 merge unsorted_segment into master refactor unsorted_segment series tilingkey register Created-by: oah28 Commit-by: oah28 Merged-by: cann-robot Description: ## 描述 针对UnsortedSegment 系列算子(Sum/Max/Min/Prod)的 TilingKey 采用新的注册方式,利用模板化编程ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 模板注册方式替换硬编码 TilingKey。 1.将各 Tiling 类 GetTilingKey() 中硬编码的数值常量(如 1000/4000/5000/6000/7000/8000/9000/3100-3202)统一替换为基于模板参数的 GET_TPL_TILING_KEY(TPL_MODE_*, TPL_CAST_*); 2.新增 unsorted_segment_tiling_key.h、unsorted_segment_sum_tiling_key.h、unsorted_segment_sum_struct.h 集中声明模板模式、cast 模式及各模式对应的 tiling 数据结构; 3.host 侧注册宏由 REGISTER_OPS_TILING_TEMPLATE 改为 REGISTER_TILING_TEMPLATE,并将 tiling 数据的写入方式从 set_xxx() + SaveToBuffer 迁移到 context_->GetTilingData<T>() 直接赋值; 4.kernel 入口由运行时 TILING_KEY_IS 判断改为 template <uint64_t TEMPLATE_MODE, uint64_t CAST_MODE> + if constexpr 的编译期分发。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5312](https://gitcode.com/cann/ops-nn/issues/5312) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 门槛用例精度通过,冒烟,ut/st通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UnsortedSegment 系列算子TilingKey模板化编程 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8864 | 1 个月前 | |
refactor unsorted_segment series tilingkey register Co-authored-by: oah28<wujiahao37@huawei.com> # message auto-generated for no-merge-commit merge: !8864 merge unsorted_segment into master refactor unsorted_segment series tilingkey register Created-by: oah28 Commit-by: oah28 Merged-by: cann-robot Description: ## 描述 针对UnsortedSegment 系列算子(Sum/Max/Min/Prod)的 TilingKey 采用新的注册方式,利用模板化编程ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 模板注册方式替换硬编码 TilingKey。 1.将各 Tiling 类 GetTilingKey() 中硬编码的数值常量(如 1000/4000/5000/6000/7000/8000/9000/3100-3202)统一替换为基于模板参数的 GET_TPL_TILING_KEY(TPL_MODE_*, TPL_CAST_*); 2.新增 unsorted_segment_tiling_key.h、unsorted_segment_sum_tiling_key.h、unsorted_segment_sum_struct.h 集中声明模板模式、cast 模式及各模式对应的 tiling 数据结构; 3.host 侧注册宏由 REGISTER_OPS_TILING_TEMPLATE 改为 REGISTER_TILING_TEMPLATE,并将 tiling 数据的写入方式从 set_xxx() + SaveToBuffer 迁移到 context_->GetTilingData<T>() 直接赋值; 4.kernel 入口由运行时 TILING_KEY_IS 判断改为 template <uint64_t TEMPLATE_MODE, uint64_t CAST_MODE> + if constexpr 的编译期分发。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5312](https://gitcode.com/cann/ops-nn/issues/5312) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 门槛用例精度通过,冒烟,ut/st通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UnsortedSegment 系列算子TilingKey模板化编程 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8864 | 1 个月前 | |
UnsortedSegmentProd性能优化 Co-authored-by: zhangxiyan7<zhangxiyan7@huawei.com> # message auto-generated for no-merge-commit merge: !9677 merge UnsortedSegmentProd into master UnsortedSegmentProd性能优化 Created-by: zhangxiyan7 Commit-by: zhangxiyan7 Merged-by: cann-robot Description: ## 描述 针对 UnsortedSegmentProd 算子性能对标竞品部分用例不达标的问题,从单一 Simt 路径扩展为多模板路径体系,并增加全无效 id 向量化快路径。分模板优化说明: 1. OutFl / OutFlWsMerge(输出全载)模板 - 输入行数远超输出规模( inputOuterDim > outputSize × 总核数 × 2)时启用:输出整块驻留 UB,输入行按批流入直接累乘,消除逐行原子写 - WsMerge 变体:各核在 workspace 私有段累乘局部积,最后按输出行跨核 merge,突破单核 UB 容量限制 2. InputPart(输入分区)模板 - 输入行数 ≥ 1024 且输出可驻留 workspace 时启用:按输入行多核分区并行,各核产出局部积后按输出行 merge,解决输入长、输出短的负载并行度问题 - strided flag 跨核聚合:各核将"是否存在有效 id"写入带 stride 的 GM flag,清缓存 + SyncAll 后汇聚,全局无有效 id 时直接跳过 merge 写初值 1 3. SegmentSort(段排序)模板 - float32 且 128 ≤ innerDim < 512、行数 ≥ 1024 时启用:RadixSort 对 segmentIds 排序(多核本地排序 + 归并树合并),归约阶段按连续 segment 顺次连乘,消除随机访存 4. SplitCol / SortSimt 模板:复用公共路径 + Prod 特化 - SplitCol 的 baseA ;sLoopNum == 1 时走单块快路径——一次性读入全部 ids 并先做全无效检测,再决定是否搬运数据 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5636 ## 测试 目标用例性能达标(换算带宽后实现 竞品耗时/NPU耗时 > 0.2),冒烟通过。部分用例性能对比结果如下: | # | 用例 / dtype | 输入形状(seg数) | GPU耗时(µs) | 初始NPU耗时(µs) | 初始耗时比 | 最终NPU耗时(µs) | 最终耗时比 | |---|---|---|---|---|---|---|---| | 1 | 000132 fp32/int32 | [5410,77,4] (554) | 19.35 | 381.08 | 0.051 | 30.09 | 0.643 | | 2 | 000040 bf16/int32 | [20,1,8,9,12] (906) | 13.32 | 235.62 | 0.057 | 10.40 | 1.280 | | 3 | 000047 bf16/int64 | [2,2019,33,2,2,2,2,2] (231) | 451.06 | 12101.55 | 0.037 | 110.87 | 4.068 | | 4 | 000116 fp16/int32 | [63,5,10044] (834) | 28.21 | 518.22 | 0.054 | 27.30 | 1.033 | | 5 | 000062 int32/int32 | [3,2,1110,2,2,11,2,2] (224) | 14.59 | 1248.42 | 0.012 | 29.71 | 0.491 | | 6 | 000140 fp32/int32 | [2,4,4,1,8,5,8] (308) | 4.98 | 76.65 | 0.065 | 4.97 | 1.003 | | 7 | 000131 fp32/int64 | [60,5717] (262) | 6.69 | 144.32 | 0.046 | 7.02 | 0.953 | | 8 | 000163 int32/int64 | [101,32383] (853) | 70.59 | 1705.76 | 0.041 | 148.06 | 0.477 | | 9 | 000130 fp32/int32 | [1605,1054] (724) | 620.00 | 34430.41 | 0.018 | 141.21 | 4.391 | | 10 | 000171 int32/int64 | [10090,3,3,3,5,3] (822) | 490.38 | 26759.76 | 0.018 | 270.01 | 1.816 | | 11 | 000017 fp32/int64 | [770] (909) | 8.04 | 1084.10 | 0.007 | 20.81 | 0.386 | | 12 | 000007 fp32/int32 | [52,9739,4,4] (97) | 434.26 | 19934.99 | 0.022 | 66.02 | 6.577 | | 13 | 000134 fp32/int32 | [5,28,34,19] (66) | 160.63 | 34359.26 | 0.005 | 638.77 | 0.251 | | 14 | 000024 fp32/int32 | [20,4,5,21,9] (769) | 5.45 | 198.86 | 0.027 | 7.66 | 0.711 | | 15 | 000006 fp16/int32 | [68,4,4,13603] (208) | 208.56 | 4464.44 | 0.047 | 113.08 | 1.844 | | 16 | 000126 fp16/int32 | [136,2,2,2,645,2,2,2] (965) | 58.30 | 1237.38 | 0.047 | 46.24 | 1.261 | | 17 | 000046 bf16/int32 | [2,2,2,272,2,2,2,63] (406) | 143.06 | 3622.09 | 0.039 | 63.18 | 2.264 | | 18 | 000021 fp32/int64 | [5,12,3171] (383) | 23.28 | 152.96 | 0.152 | 26.94 | 0.864 | | 19 | 000011 fp32/int64 | [2,7081,2,2,2,6,3,2] (632) | 57.57 | 4150.62 | 0.014 | 140.37 | 0.410 | | 20 | 000037 bf16/int64 | [145,4,8254] (1000) | 78.42 | 1037.15 | 0.076 | 96.01 | 0.817 | | 21 | 000135 fp32/int64 | [5,5,4,41] (839) | 45.12 | 3645.09 | 0.012 | 15.85 | 2.847 | | 22 | 000146 bf16/int32 | [23,47] (269) | 14.94 | 480.06 | 0.031 | 15.58 | 0.959 | | 23 | 000017 fp32/int64 | [9718] (954) | 44.76 | 2030.42 | 0.022 | 19.37 | 2.310 | | 24 | 000056 int32/int32 | [4,4,17,4,6535] (396) | 3092.56 | 209483.03 | 0.015 | 552.16 | 5.601 | | 25 | 000227 int32/int64 | [116,317,10,446] (788) | 1254.56 | 83651.63 | 0.015 | 2683.99 | 0.467 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UnsortedSegmentProd算子性能优化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9677 | 28 天前 | |
fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Co-authored-by: liangtongxue<lianglihui@h-partners.com> # message auto-generated for no-merge-commit merge: !9847 merge fix/log-spec-20260903-v2 into master fix: 规范 index 目录 6 算子日志输出(级别错配/标识符拼写/格式符/错误描述) Created-by: liangtongxue Commit-by: liangtongxue Merged-by: cann-robot Description: ## 描述 对 index/ 下 6 算子(gather_elements、index、index_put_v2、index_put_with_sort_v2、non_zero、unsorted_segment_sum,含 examples、tests)的日志输出做规范整改,修复以下缺陷: - **致命级别错配**:index_put_v2_fusion_pass 失败分支 OP_LOGI 改为 OP_LOGE(14 处),故障不再被 INFO 级过滤忽略 - **标识符拼写改名(定义/声明/调用全同步)**:公共头 level2_base.h CheckInpuNullTensorMaxUnPool3D→CheckInputNullTensorMaxUnPool3D、isContinous_→isContinuous_、MargeInputAxis/MargeOutputAxis→MergeInputAxis/MergeOutputAxis、intputDtypeSize→inputDtypeSize、CalcTilingForInt→CalcTiling4Int、拼音变量 sheng→remainder - **描述与实现不符修正**:multinomial 日志实参 self/out 顺序颠倒(标签与值配对错误)、cast bool to int8 实际为 int32、onnx dtype 文案与 kvlist 对齐 - **错误描述不完整**:Check* failed! 补参数名(7 处)、GetDim/tailSize/indicesSize 等校验失败补当前值、校验宏 incorrectShapes/incorrectDtypes 传变量名字符串改传真实值(9 处)、dtype 支持列表补 DT_COMPLEX64 与实现集合对齐 - **格式符与实参类型不匹配**:按头文件/TilingData 实类型逐项修正:sortDimValue %d→%ld(9 处)、no_continuous 8 参数整段重写、ubSize_/innerDim_ %ld→%lu(5 处)等 - **语法错误(50+ 处)**:not support→does not support、should same with→should be the same as、is begin→begins、running begin/end→started/finished、don't→doesn't、序数 1th、两行拼接逗号补空格等 ### 改动方法 仅修改日志文案/级别/格式符及拼写错误标识符的全量同步改名,不改动任何校验逻辑与控制流;标识符改名已确认仓内定义/声明/调用零残留。 ## 关联的Issue #5650 ## 测试 - pre-commit 全部通过(clang-format / ruff-check / ruff-format / codespell / OAT 等 10 项) - bash build.sh --pkg --jit --soc=ascend950 编译打包通过(含 -Werror=format 严格校验) - 标识符改名定义/声明/调用全部同步(grep 零残留) - 输出文案中文残留、业务代码私有打印残留均为 0 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!9847 | 27 天前 | |
TF plugin修改1 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7547 merge nn1 into master TF plugin修改1 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TF plugin修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4196 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7547 | 2 个月前 | |
License Change Split2 Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !371 merge spilit2License3 into master License Change Split2 Created-by: huohuo_wangyan Commit-by: huohuo_wy Merged-by: cann-robot Description: ## 描述 批量整改文件copyright注释 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/177 ## 测试 COPYRIGHT注释头按新要求刷新 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!371 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 26 天前 | ||
| 3 个月前 | ||
| 27 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 3 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 27 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 26 天前 | ||
| 27 天前 | ||
| 26 天前 | ||
| 25 天前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 27 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 28 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 27 天前 | ||
| 2 个月前 | ||
| 9 个月前 |