| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8750 merge foreach into master fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复11个Foreach算子arch35 tiling中dtype未拦截问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5030 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8750 | 16 天前 | |
fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8750 merge foreach into master fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复11个Foreach算子arch35 tiling中dtype未拦截问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5030 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8750 | 16 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
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 | 13 天前 | |
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
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 | 13 天前 | |
fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8750 merge foreach into master fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复11个Foreach算子arch35 tiling中dtype未拦截问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5030 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8750 | 16 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
refactor(foreach): 消除 op_host/op_api 与 op_kernel 重名头文件 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !9276 merge master into master refactor(foreach): 消除 op_host/op_api 与 op_kernel 重名头文件 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改的核心内容是 foreach_copy、foreach_lerp_list、foreach_lerp_scalar 三个算子 aclnn 代码的迁移:将各算子 op_host/op_api/ 目录下的 4 个文件(aclnn_foreach_*.h/.cpp 与 foreach_*.h/.cpp)整体迁移至算子根目录 op_api/,用于消除 op_host/op_api 与 op_kernel 目录下同名头文件(如 foreach_copy.h 同时存在于 op_api/ 与 op_kernel/)的冲突隐患。整体代码逻辑、对外接口与实现均保持不变,文件内容零改动(100% rename)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> #5209 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:工程结构整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9276 | 13 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 22 天前 | |
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 | 13 天前 | |
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 | 13 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8750 merge foreach into master fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复11个Foreach算子arch35 tiling中dtype未拦截问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5030 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8750 | 16 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
kernel ut 增加防卡死超时,快速模式,覆盖率控制 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8187 merge master into master kernel ut 增加防卡死超时,快速模式,覆盖率控制 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 提交总结:kernel ut 增加防卡死超时、快速模式、覆盖率控制 **修改背景**:Kernel UT 存在单测卡死导致整套测试挂起、运行慢(addr2line 符号化耗时)、gcov 覆盖率始终链接带来不必要开销等问题。 **修改方案**: 1. **防卡死超时**:新增 run_kernel_ut.sh,按 case 逐个执行并用 timeout 限时(默认 120s,--ut_timeout 可配),超时即标记失败并继续,避免单点卡死阻塞全流程。 2. **快速模式**:新增 --ut_mode=fast/debug。fast 模式关闭符号化(注入 fake addr2line 跳过慢解析)、改用 -g0 -O2,用于快速验证;debug 模式保留 -g 与符号化,用于开发调试。 3. **覆盖率控制**:将 ut.cmake 中 gcov 的无条件链接改为 $<$<BOOL:${ENABLE_COVERAGE}>:gcov> 条件链接,仅在开启覆盖率时引入; 4. **修复失败的kernel ut**:TensorFlow 依赖替换为md_dtypes, 修复部分block 越界,缺少SetKernelMode 设置导致核获取错误等问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4606 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 通过kernel ut 测试,bash build.sh -u --opkernel --ut_mode=fast --ut_timeout=60 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8187 | 1 个月前 | |
refactor(foreach): 消除 op_host/op_api 与 op_kernel 重名头文件 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !9276 merge master into master refactor(foreach): 消除 op_host/op_api 与 op_kernel 重名头文件 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次修改的核心内容是 foreach_copy、foreach_lerp_list、foreach_lerp_scalar 三个算子 aclnn 代码的迁移:将各算子 op_host/op_api/ 目录下的 4 个文件(aclnn_foreach_*.h/.cpp 与 foreach_*.h/.cpp)整体迁移至算子根目录 op_api/,用于消除 op_host/op_api 与 op_kernel 目录下同名头文件(如 foreach_copy.h 同时存在于 op_api/ 与 op_kernel/)的冲突隐患。整体代码逻辑、对外接口与实现均保持不变,文件内容零改动(100% rename)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> #5209 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:工程结构整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9276 | 13 天前 | |
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 | 13 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8750 merge foreach into master fix(foreach): 修复11个SIMT算子arch35 tiling中dtype未拦截问题 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 修复11个Foreach算子arch35 tiling中dtype未拦截问题 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5030 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8750 | 16 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 22 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
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 | 13 天前 | |
【社区任务】ForeachNeg算子支持DT_INT16/DT_INT8/DT_UINT8数据类型实现贡献 Co-authored-by: 韩涛鸿<3430426834@qq.com> # message auto-generated for no-merge-commit merge: !5514 merge commit4 into master 【社区任务】ForeachNeg算子支持DT_INT16/DT_INT8/DT_UINT8数据类型实现贡献 Created-by: hth810 Commit-by: 韩涛鸿 Merged-by: cann-robot Description: ## 描述 通过社区任务完成开源仓算子贡献的需求,补充完善 Ascend C 算子库。为现有的 aclnnForeachNeg 算子增加对 DT_INT16、DT_INT8、DT_UINT8 数据类型的支持,以满足更广泛的网络量化及端侧推理场景对底层核心算子的完备性要求。 ## 关联的Issue 关联Issue:https://gitcode.com/cann/ops-nn/issues/3020 ## 测试 采用aclnn调用测试,ascendoptest工具测试 ## 文档更新 foreach/foreach_neg/README.md foreach/foreach_neg/docs/aclnnForeachNeg.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5514 | 19 天前 | |
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 | 13 天前 | |
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 | 13 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9017 merge fix/issue-batch-0820 into master fix(arch35): GroupNormSiluQuant/MultilabelMarginLoss/L2NormalizeGrad算子功能修复 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复测试问题单 #21 / #31 / #32 暴露的三个算子的内核与 tiling 缺陷,并整改 0820 批次核对出的资料与实现不一致项。 ### 一、GroupNormSiluQuant —— UB 记账越界(issue #21) 现象:geir 动静态双腿 7 例全崩(MTE2 写越界 82 / VEC 访存越界 341 / scalar 越界 263),其中 3 例入参完全合法。四处缺陷: 1. SetPartialFallback 的 ubSize - meanAndRstd - gamma - beta - quantScale **无下溢保护**。实测 C=5408396 时 ubRemain 下溢成 2^64-21380096,processSize 被算成 2^61 级。 2. 同函数用 isLargeChannel && hasOptional 决定走 1120 还是 1100,而 quantScale 是否整段常驻**只取决于 C**:大 C 且无 gamma/beta 时被错选进 1100。判据改为「整段常驻装不装得下」。 3. MaybeSetSplitReduce 覆盖成 1140 时不做 UB 预算校验,而 1140 内核按「本核通道数」常驻 gamma/beta(每通道 12B,且无 gamma/beta 时也照开)。新增 SplitReduceFitsUb(与内核 InitUbBuffers 逐项对应),内核侧改为按 hasGamma/hasBeta 条件分配。 4. host 的 couldFold 漏了 kernel isFold = hwNum <= NDDMA_SIZE || (!hasGamma && !hasBeta) 的后半个条件,导致「无 gamma/beta + 大 hwNum」档 kernel 按 fold 布局写 451KB 而 host 只预留 shapeC 个 fp32。 另加防御:generalized 环两处减法加下溢保护;两处 DownAlign 为 0 时直接返回;tiling 出口统一校验——凡靠 processSize 驱动搬运的 key 解不出正值一律 GRAPH_FAILED,不把 0/下溢值下发给内核。 ### 二、MultilabelMarginLoss —— 支持面窄于 A2(issue #32) 原实现七块 buffer 全部随 C 线性增长且不参与分块,UB 253952B 直接换算出 C≈8000 上限,超过即 tiling 主动 GRAPH_FAILED(实测 C<=2842 全过、C>=195万 全败),而 A2 由 TBE DSL 承担切分对 C 无上限。 - tiling 新增 cFactor:整行装得下时 == C(走原全行路径,行为不变),装不下时解出分块长度(解时先给行方向分块 buffer 留 TILE_MIN 份,否则 ubFactor 会解出 0)。 - kernel 新增 C 分块路径:逐段在 UB 内建掩码并产出 is_target,标签分批缓存(每批至多 cFactor 个,连 x[k] 一并取回),每批对全部 x 段各做一次向量累加。复杂度与全行路径同为 O(P*C)。 - 三处同步缺陷(均由「同一用例跑两遍结果不同」暴露):DeQue 只给 MTE2→V,标量读 target 段需自补 MTE2→S;EnQue 只给 V→MTE3,标量写的缓冲搬出前需自补 S→MTE3;类内固定 EVENT_ID0 的 PipeBarrier 在本路径会与队列/LocalReduceSum 的同 ID 事件互踩,改用独立事件 ID。 ### 三、L2NormalizeGrad —— SPLIT_D 累加槽位写穿(issue #31 的超大 D 档) kernel 的 accum 缓冲固定 SPLIT_D_MAX_CHUNKS(=256) 槽,而 FormerProcess 按 numChunks_ 直接 Duplicate/写槽。1 维 D=1.51e8 需约 3.7 万槽,当场写穿 → errcode 341,host 侧无守卫。改为分组累加(组内向量规约 + 组间标量累加),D 不再有上限。 ### 四、GroupNormSiluQuant —— 空 Tensor 的 meanOut 语义两条通路不一致 资料两处(README.md:73、docs/aclnnGroupNormSiluQuant.md:112)与手写 aclnn 都规定「空 Tensor 时 meanOut 填 0、rstdOut 填 NAN」:op_host/op_api/aclnn_group_norm_silu_quant.cpp:251 的 IsEmpty() 分支显式 FillScalar(meanOut, 0) + FillScalar(rstdOut, NAN) 后直接返回,不下发内核。 而 arch35 内核的 empty 分支调 ProcessMeanAndRstd 时,该函数把填充值写死成 NAN,mean/rstd 都填 NAN——走 GE 图通路(aclnn 不参与)时 meanOut 变成 NaN,违反算子自己的契约。修法:把填充值提成入参,mean 传 0、rstd 传 NAN。 (对照:同族 GroupNormSilu 的 aclnn 对 regbase 显式跳过 FillScalar、把空张量交给内核,两条通路自洽;本算子的 aclnn 是无条件填充,所以只有本算子存在通路间不一致。) ### 五、GroupNormSiluQuant golden 补两档 + 判据显式声明 新配额用例集暴露:可选输入缺省(gamma/beta 传 None)与空张量在 golden 里判不了(15 例 GOLDEN_FAILURE),而「可选输入不给」正是 issue #21 中 L1_014 的画像——该档此前从设计上就没被验证过。按内核语义补缺省(1.0/0.0),空张量短路按上述契约取 mean=0 / rstd=NaN。 并把每个输出的判据显式声明到 Spec.tolerance,不再依赖 CLI 传什么: - int8 输出声明 quant —— 否则 TTK 把 int8 硬路由到 binary_equal,量化舍入的 ±1 LSB 被大面积误判(26 例「失败」实测最大 |diff| 全为 1)。 - mean/rstd 三种浮点 dtype 声明 CANN 开源标准 stat_rel_err(mere < th 且 mare < 10*th)。此前未声明,落到 TTK 默认的 isclose(atol=1e-8),该地板低于 bf16/fp32 在常见量级上的分辨率。实测 case00603_rg(2,5120,7) bf16:2560 个 mean 元素里 10 个不相等,**每个恰好差 1 ULP**(--dump 取原始数组算得 ULP 倍数 max=1.0000,超 1 ULP 的 0 个)——内核 fp32 累加后舍入到 bf16 与 torch 求和次序不同,边界值差一格,任何实现都做不到更好。 ### 六、0820 批次资料与实现一致性(issue #36~#49) 判据:aclnn 是手写还是自动生成(前者看 l0op::Contiguous/ViewCopy 的实际调用,后者看 OpDef 的 AutoContiguous,依据 cmake/func.cmake:502 有无 op_api/*.cpp 分流);再看参数是输入、ref(输入/输出复用)还是纯输出——自动生成路径下只有输入与 ref 有非连续支持,纯输出没有这一说。 - 6 个 foreach inplace 的第一参数(ref,输入侧已声明 AutoContiguous):资料 × → √(#38/#39/#44/#45/#46/#47) - ForeachAddcdivList / ForeachAddcmulList:def + arch35 内核 + config/ascend950 三层齐备,资料「A5 不支持」→ 支持(#40/#42) - DeepNorm / DeepNormGrad 的 7 个纯输出:资料 √ → ×(#36/#37) - FusedCrossEntropyLossWithMaxSum:inputOptional/weightOptional 的「非连续Tensor」列 √ → -(不涉及)(#48)。这两个参数当前只支持空指针(资料使用说明已写明),且实现中完全未被使用:aclnn 的 CheckParams 将其标为 [[maybe_unused]],kernel 的 GM_ADDR gmTensor[6] 张量列表也不含它们。既然不可能传入张量,「支持非连续」对其为空谈,正确整改是把该列标为不涉及,而不是给一个永不使用的入参补 l0op::Contiguous。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4994 ## 测试 全部为 Ascend950PR 真机实测(TTK geir 通路 + op_host UT)。 **issue 原始用例** | 项 | 结果 | |---|---| | #21 原始 7 例 | **7/7 PASS**(修复前 7/7 崩) | | #31 超大 D(1.51 亿元素)2 例 | 由 errcode 341 转 **PASS** | | #32 C 轴切分专项 57 例(旧全行路径 33 + 新 C 分块路径 24) | **57/57 PASS** | **回归与泛化** | 算子 | 交付回归集 | 配额集(七条硬约束派生) | 改动路径专项 | |---|---|---|---| | MultilabelMarginLoss | **1098/1098** | **113/113** | 57/57 | | L2NormalizeGrad | **1018/1018** | 79/81 | fp32 精度 13/13 | | GroupNormSiluQuant | 前 158 例 **158/158** | **211/211** | 空张量 **44/44**、改动路径集 **779/779** | 说明: - L2G 配额集余 2 例是 TTK 建图侧问题(rank==1 且属性 dim 缺省时,生成的图把输入 dtype 写错一档),算子对 DT_DOUBLE 正确拒收,该用例未测到算子;同一档由 fp16 那例以正确的 EZ0026 拒收覆盖。 - GNSQ 改动路径集按「本次改动真正生效的条件」筛选(大 C 路由/下溢保护区 + 空张量),未改动路径不重复验证。过程中 6 例 PROFILE_CRASH 退出码为 -9(宿主 OOM,容器 32G 上限),降并发单进程复跑 **6/6 PASS**。 - L2G fp32 13 例按算子自己声明的 cross_check L1 三方比对复判全 PASS:mare 比值 1.0~1.11(阈值 5.0)、mere 0.0036(阈值 1.5),NPU 误差与 GPU 竞品同量级。 ## 文档更新 10 个资料文件的一致性订正(详见「六、0820 批次资料与实现一致性」): - foreach/*/docs/aclnnForeach{ACos,AddList,MulList,MulScalar,SubList,SubScalar}Inplace.md - foreach/*/docs/aclnnForeach{Addcdiv,Addcmul}List.md - norm/deep_norm/docs/aclnnDeepNorm.md、norm/deep_norm_grad/docs/aclnnDeepNormGrad.md - loss/fused_cross_entropy_loss_with_max_sum/docs/aclnnFusedCrossEntropyLossWithMaxSum.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9017 | 18 天前 | |
foreach log fix Co-authored-by: alfengyuan<yyfgdut@gmail.com> # message auto-generated for no-merge-commit merge: !7763 merge 20260722 into master foreach log fix Created-by: alfengyuan Commit-by: alfengyuan Merged-by: cann-robot Description: ## 描述 本次 PR 对 ops-nn/foreach 目录进行日志质量整改与 License 合规修复。 **背景**:CANN 日志质量测评(2026-08-25)发现 foreach 目录存在 **580 项**日志质量问题(严重 30 / 一般 5 / 提示 545)。本次 PR 先整改生产代码与示例代码;**tests 目录内的测试相关改动本次暂不涉及**。 **改动内容**: 1. **生产代码日志整改(54 处,仅日志文案不影响功能)** - 20 处 arch35 tiling tensorNum 越限报错补打实际值 - 2 处判空条件修复:platformInfoPtr == nullptr → compileInfoPtr == nullptr(原条件重复判 platformInfoPtr,compileInfoPtr 未判空即解引用,存在空指针隐患) - 7 处语法错误(%s 改 %u、.Currently 补空格、ConcatString 漏空格、shape dim 补主语) - 2 处拼写改名(Tenor → Tensor) - 22 处中文顿号改英文逗号 2. **示例代码(test_geir)清理(3 个文件)** - 15 处 printf 删除(含 3 处「Run graph failed 却用 INFO」级别错配) - 补标准 CANN-2.0 License 头(年份 2026) > **说明**:tests 目录内的测试相关改动本次暂不涉及,测试文件保持与上游一致。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5181 ## 测试 - 生产代码 54 处问题逐条映射核对:全部解决 - pre-commit 门禁全过:trailing-whitespace / end-of-file-fixer / clang-format / ruff / codespell / OAT(52 文件合规检查) 功能全量回归冒烟PASS ## 文档更新 无(不涉及文档修改) ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:License 合规修复与示例打印清理 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7763 | 14 天前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 1 个月前 | |
modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Co-authored-by: zhaozhoujun520<zhaozhoujun@huawei.com> # message auto-generated for no-merge-commit merge: !7858 merge master into master modified md files (The product filtering tag is added to the aclnn*.md files of the forech and norm classes) Created-by: gitee-duhuiping Commit-by: zhaozhoujun520 Merged-by: cann-robot Description: ## 描述 The product filtering tag is added to the aclnn*.md files of the forech and norm classes. ## 关联的Issue [#4263](https://gitcode.com/cann/ops-nn/issues/4263) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7858 | 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 | 13 天前 | |
fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8767 merge fix/scatter-noncontig-and-lamb-infershape into master fix(arch35): scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 长尾算子问题优化:scatter 类补 AutoContiguous;LambApplyOptimizerAssign infershape 与 tiling 对齐;foreach inplace 与 ScatterList 资料订正 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4865 ## 测试 不涉及 ## 文档更新 README ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8767 | 22 天前 | |
License Change Split2 Co-authored-by: huohuo_wy<wangyan389@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge spilitLicense3 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!372 | 8 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 16 天前 | ||
| 16 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 13 天前 | ||
| 18 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 13 天前 | ||
| 16 天前 | ||
| 1 个月前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 13 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 22 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 14 天前 | ||
| 16 天前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 16 天前 | ||
| 14 天前 | ||
| 22 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 18 天前 | ||
| 14 天前 | ||
| 18 天前 | ||
| 13 天前 | ||
| 19 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 1 个月前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 18 天前 | ||
| 14 天前 | ||
| 18 天前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 13 天前 | ||
| 22 天前 | ||
| 8 个月前 |