| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: rename APIs in ops-nn batch2 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8567 merge rename-api-batch2 into master refactor: rename APIs in ops-nn batch2 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - ReduceMax → Reduce<ReduceType::MAX> - Copy → Move - DataCopyGather → Gather - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/clipped_swiglu - activation/confusion_softmax_grad - index/broadcast_gradient_args - loss/binary_cross_entropy - loss/cross_entropy_loss - loss/cross_entropy_loss_grad - norm/batch_norm_grad - norm/batch_norm_grad_v3 - norm/batch_norm_v3 - quant/dequant_swiglu_quant 共修改 53 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8567 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
perf(chamfer_distance): 调整循环次序, 降低大规模形状的 GM 访存量 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9057 merge feature/chamfer-distance-perf into master perf(chamfer_distance): 调整循环次序, 降低大规模形状的 GM 访存量 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 原实现对每个查询点都把全部被查点从 GM 重搬一遍,访存量是 O(查询点数 × 被查点数),性能随规模单调恶化。 本修改把两层循环对调:被查点分块在外、查询点分块(64 个)在内——被查点块搬入一次即服务整个查询 tile,访存量降为 O(被查点数 × 块数)。跨段最小值/下标改为按查询点各存一份累加; taskNum = B×N,一个查询 tile 可能跨 batch,故按 batch 分段处理以保证被查集合正确。 另含两处检视整改(无功能影响): - test_chamfer_distance_tiling.cpp:单函数 83 行超 CodeCheck 阈值,拆为 3 个 helper - golden.py:docstring 原写"与内核一致",改为说明其依据是 A2 的 TIK 参考实现(算法规格),避免与红线 R3「golden 须独立于被测实现」冲突;无代码改动 ## 关联的Issue Closes #5051 ## 测试 Ascend950PR 真机实测(261 例性能集,A100 pytorch3d knn_points 对标,raw G/N = GPU 耗时 / NPU 耗时): | 输入规模 | 例数 | 改前 | 改后 | |---|---|---|---| | < 1e4 元素 | 118 | 7.690 | 11.544 | | 1e4 ~ 1e5 | 101 | 1.241 | 2.905 | | ≥ 1e5 | 38 | 0.584 | 1.423 | | 总体中位 | 257 | 2.090 | 4.492 | | 最低 | | 0.347 | 0.711 | 功能侧全档复测通过:泛化 1287/1287、三方精度 144/144、GE 图通路 87/87、动态 shape 27/27、DFX 负向按预期拒收、op_host UT 12/12。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9057 | 1 个月前 | |
clean_code 代码重复率整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8694 merge clean_code into master clean_code 代码重复率整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 clean_code 代码重复率整改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4802 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8694 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
test: 更新7个算子golden测试数据 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !8510 merge master into master test: 更新7个算子golden测试数据 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 更新 7 个算子的 golden(准确度基准)测试数据,同步最新参考值。 | 模块 | 算子 | 文件 | 变化 | |------|------|------|------| | loss | cosine_embedding_loss | golden.py | +56 | | loss | fused_cross_entropy_loss_with_max_sum | golden.py | +145 | | norm | deep_norm | golden.py | +59 | | norm | deep_norm_grad | golden.py | +77 | | optim | apply_adam_w_quant | golden.py | +68 | | quant | dynamic_quant_update_scatter | golden.py | +54 | | quant | dynamic_quant_update_scatter_v2 | golden.py | +56 | ## 测试 - CI golden 数据一致性验证 ## 类型标签 - [x] 测试 ## 关联的Issue - #4683 See merge request: cann/ops-nn!8510 | 1 个月前 | |
fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8943 merge q_work8 into master fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 CANN 9.0.0 中 ReduceType 枚举移至 AscendC::Reg 命名空间,arch35 算子文件中通过 using namespace AscendC 已无法将 ReduceType 引入当前作用域,导致编译时 ReduceType::SUM/ReduceType::MAX 无法解析。 本次改动将 arch35 目录下 62 个算子头文件中的 ReduceType::SUM(502 处)和 ReduceType::MAX(32 处)显式限定为 AscendC::Reg::ReduceType::SUM 和 AscendC::Reg::ReduceType::MAX,修复编译兼容性问题。 涉及的算子模块:activation、norm、loss、index、quant,均为 arch35 架构专用文件,不影响其他架构。 ## 关联的Issue #4937 ## 测试 在 CANN 9.0.0(ascend950)环境下对 62 个文件涉及的算子进行编译验证,全部编译通过。 ## 文档更新 无文档更新,本次为编译兼容性修复。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8943 | 1 个月前 | |
refactor: rename APIs in ops-nn batch2 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8567 merge rename-api-batch2 into master refactor: rename APIs in ops-nn batch2 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - ReduceMax → Reduce<ReduceType::MAX> - Copy → Move - DataCopyGather → Gather - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/clipped_swiglu - activation/confusion_softmax_grad - index/broadcast_gradient_args - loss/binary_cross_entropy - loss/cross_entropy_loss - loss/cross_entropy_loss_grad - norm/batch_norm_grad - norm/batch_norm_grad_v3 - norm/batch_norm_v3 - quant/dequant_swiglu_quant 共修改 53 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8567 | 1 个月前 | |
新增算子cross_entropy_sum_exp_and_index_logit Co-authored-by: jzj007<jiangzhijie9@huawei.com> # message auto-generated for no-merge-commit merge: !8205 merge cross_entropy into master 新增算子cross_entropy_sum_exp_and_index_logit Created-by: jzj007 Commit-by: jzj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增算子 面向 vocab 并行(Tensor Parallel)场景的 CrossEntropy 本地计算融合算子。对按 vocab 维切分后的 TP rank 本地 logits,在 all_reduce(MAX) 之后、predicted_logits / sum_exp_logits 的 all_reduce(SUM) 之前,一次性完成 logits 平移(减全局最大值)、target 越界 mask 判定、本地 target offset 计算、target 对应 logit 的 gather,以及 exp 与沿 vocab 维的本地求和,降低小算子 launch、GM 读写和中间 tensor materialization 开销。面向超大词表大模型训练场景。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4858](https://gitcode.com/cann/ops-nn/issues/4858) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地完成ut测试、ttk各种通路的st测试,torchapi接口通路测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增算子接口文档aclnnCrossEntropySumExpAndIndexLogit.md、torchapi_cross_entropy_sum_exp_and_index_logit.md、README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8205 | 1 个月前 | |
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 个月前 | |
clean_code 代码重复率整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8694 merge clean_code into master clean_code 代码重复率整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 clean_code 代码重复率整改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4802 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8694 | 1 个月前 | |
clean_code 代码重复率整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8694 merge clean_code into master clean_code 代码重复率整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 clean_code 代码重复率整改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4802 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8694 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
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 | 1 个月前 | |
refactor: rename APIs in ops-nn batch3 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8568 merge rename-api-batch3 into master refactor: rename APIs in ops-nn batch3 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - DataCopyUnAlign → StoreUnAlign - DataCopyUnAlignPost → StoreUnAlignPost - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/log_softmax_grad - activation/log_softmax_v2 - loss/kl_div_loss_grad - norm/group_norm_grad - norm/group_norm_v2 - norm/instance_norm - norm/layer_norm_grad - norm/layer_norm_grad_v3 - norm/layer_norm_v3 - norm/layer_norm_v4 共修改 45 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8568 | 1 个月前 | |
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8285 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8285 | 1 个月前 | |
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8285 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8285 | 1 个月前 | |
补充l2_loss算子README.md Co-authored-by: zhengyuchuan2024<zhengyuchuan1@huawei.com> # message auto-generated for no-merge-commit merge: !8097 merge L2Loss_md into master 补充l2_loss算子README.md Created-by: zhengyuchuan2024 Commit-by: zhengyuchuan2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> L2Loss算子缺少REDEME文件说明,补充L2Loss算子REDEME文件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4436 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8097 | 2 个月前 | |
perf(logit): logit算子A5性能优化 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !8443 merge gc15-logit-e1-fixed into master perf(logit): logit算子A5性能优化 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 修改内容 优化 Logit 正向算子,仅修改 loss/logit/op_kernel/logit.h(+59/-27)。 ### 1. 均衡多核切分 - Process() 中将基于 loop 的核间分配改为基于 element 的均衡切分(perCore + remainder) - 消除尾核不均衡,提升大 shape 多核利用率 ### 2. E1 clamp 压缩(仅 A5) - ComputeStepOne 中,A5(__CCE_AICORE__==310)当 eps <= 0.5 时用 Mins + Maxs 替代 CompareScalar x2 + Select x2(4 条指令→2 条) - eps > 0.5 保留原 CompareScalar + Select 路径 - A2/A3 保持原有逻辑不变 ### 3. A5 MicroAPI 向量化(仅 A5) - ComputeStepTwo 中,A5 路径用 MicroAPI RegTensor 执行 Muls → Adds → Div → Log 计算链,消除中间 PipeBarrier - A2/A3 保持原有高层 API 路径不变 See merge request: cann/ops-nn!8443 | 1 个月前 | |
perf(logit_grad): logitgrad算子A5性能优化 Co-authored-by: luoyufan7<luoyufan7@h-partners.com> # message auto-generated for no-merge-commit merge: !8743 merge pr/logitgrad-final-v2 into master perf(logit_grad): logitgrad算子A5性能优化 Created-by: luoyufan7 Commit-by: luoyufan7 Merged-by: cann-robot Description: ## 优化内容 对 aclnnLogitGrad 的 kernel 实现(logit_grad.h)进行 A5 MicroAPI 融合优化: - **FP16 (G5r)**:将 Cast + Muls + Adds + Mul + Div + Compare + Select 融合到单个 MicroAPI 寄存器循环,零 PipeBarrier,零中间 UB 搬运 - **BF16 (BF16_FUSED_V1)**:同样的单 VF 循环融合 - **FP32**:保持不变 ## 性能数据 测量方法:batch100 event(torch.npu.Event),2100 条全量用例,5 轮 ABBA 交替配对 | dtype | >=1M 中位数 | >=1M 平均 | |-------|-----------|----------| | FP16 | 1.27x | 1.28x | | BF16 | 1.24x | 1.34x | | FP32 | 1.00x | 1.00x | ## 精度验证 与基线完全一致 ## 改动范围 logit_grad.h ## 平台兼容性 通过条件编译 #if (__CCE_AICORE__ == 310) 隔离 A5 优化路径,A2/A3 走原始高阶 API 路径,不受影响。 See merge request: cann/ops-nn!8743 | 1 个月前 | |
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8285 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8285 | 1 个月前 | |
clean_code 代码重复率整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8694 merge clean_code into master clean_code 代码重复率整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 clean_code 代码重复率整改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4802 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8694 | 1 个月前 | |
add_cases Co-authored-by: zhaogrug<zhaohai16@h-partners.com> # message auto-generated for no-merge-commit merge: !7583 merge add_cases into master add_cases Created-by: zhaogrug Commit-by: zhaogrug Merged-by: cann-robot Description: ## 描述 新增仓内新版ttk用例 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue [#4223](https://gitcode.com/cann/ops-nn/issues/4223) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟测试,本地验证 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:用例添加 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7583 | 2 个月前 | |
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8285 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8285 | 1 个月前 | |
InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8723 merge fix/op-binary-json-missing into master InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;MultilabelMarginLoss A5 独立 tiling 与归约精度;InstanceNormGrad UB 记账与缓冲下发;8 算子 golden 适配三方对比 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4818 ## 测试 ut/st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8723 | 1 个月前 | |
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 | 1 个月前 | |
fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8943 merge q_work8 into master fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 CANN 9.0.0 中 ReduceType 枚举移至 AscendC::Reg 命名空间,arch35 算子文件中通过 using namespace AscendC 已无法将 ReduceType 引入当前作用域,导致编译时 ReduceType::SUM/ReduceType::MAX 无法解析。 本次改动将 arch35 目录下 62 个算子头文件中的 ReduceType::SUM(502 处)和 ReduceType::MAX(32 处)显式限定为 AscendC::Reg::ReduceType::SUM 和 AscendC::Reg::ReduceType::MAX,修复编译兼容性问题。 涉及的算子模块:activation、norm、loss、index、quant,均为 arch35 架构专用文件,不影响其他架构。 ## 关联的Issue #4937 ## 测试 在 CANN 9.0.0(ascend950)环境下对 62 个文件涉及的算子进行编译验证,全部编译通过。 ## 文档更新 无文档更新,本次为编译兼容性修复。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8943 | 1 个月前 | |
clean_code 代码重复率整改 Co-authored-by: zhuzemao<zhuzemao1@h-partners.com> # message auto-generated for no-merge-commit merge: !8694 merge clean_code into master clean_code 代码重复率整改 Created-by: zhuzemao Commit-by: zhuzemao Merged-by: cann-robot Description: ## 描述 clean_code 代码重复率整改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4802 ## 测试 不涉及 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8694 | 1 个月前 | |
InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8723 merge fix/op-binary-json-missing into master InTrainingUpdateGrad\MultiAddRmsNormDynamicQuant\MultilabelMarginLoss\InstanceNormGrad 算子精度优化 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 fix(arch35): 修复 InTrainingUpdateGrad NDC1HWC0 与 MultiAddRmsNormDynamicQuant 动态输入取值;MultilabelMarginLoss A5 独立 tiling 与归约精度;InstanceNormGrad UB 记账与缓冲下发;8 算子 golden 适配三方对比 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4818 ## 测试 ut/st ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8723 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad: 补充 GEIR example、Tiling 异常校验 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8278 merge master into master SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad: 补充 GEIR example、Tiling 异常校验 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次针对新上库算子补充 GEIR example、Tiling 异常校验,算子分别为SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4583 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8278 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad: 补充 GEIR example、Tiling 异常校验 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8278 merge master into master SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad: 补充 GEIR example、Tiling 异常校验 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本次针对新上库算子补充 GEIR example、Tiling 异常校验,算子分别为SmoothL1Loss/SigmoidCrossEntropyWithLogitsGrad ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4583 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8278 | 1 个月前 | |
修复 SmoothL1LossGrad README Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !8822 merge codex/fix-smooth-l1-loss-grad-dout-doc into master 修复 SmoothL1LossGrad README Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 SmoothL1LossGrad README 中第三个输入名称与实际接口定义不一致的问题。 将计算公式、参数表、dtype 约束和 shape 约束中的 gradOutput 统一修改为 dout,与需求文档、CANNDEV 原型、op_graph、op_host 及构建生成的 binary.json 保持一致。 问题根因是算子首次提交时 codespell 尚未豁免 dout,因此 README 使用了 gradOutput;当前 .pre-commit-config.yaml 已将 dout 加入白名单。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> https://gitcode.com/cann/ops-nn/issues/4862 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 loss/smooth_l1_loss_grad/README.md,将四处 gradOutput 统一为 dout。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8822 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
feat(arch35): 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8870 merge feature/softmax-focal-loss-arch35 into master feat(arch35): 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4926 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8870 | 1 个月前 | |
feat(arch35): 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8870 merge feature/softmax-focal-loss-arch35 into master feat(arch35): 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 新增 SoftmaxFocalLoss / SoftmaxFocalLossGrad 支持 Ascend950 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4926 ## 测试 ut/st ## 文档更新 README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8870 | 1 个月前 | |
fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8943 merge q_work8 into master fix: 显式限定 ReduceType 命名空间以兼容 CANN 9.0.0 (ascend950) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 CANN 9.0.0 中 ReduceType 枚举移至 AscendC::Reg 命名空间,arch35 算子文件中通过 using namespace AscendC 已无法将 ReduceType 引入当前作用域,导致编译时 ReduceType::SUM/ReduceType::MAX 无法解析。 本次改动将 arch35 目录下 62 个算子头文件中的 ReduceType::SUM(502 处)和 ReduceType::MAX(32 处)显式限定为 AscendC::Reg::ReduceType::SUM 和 AscendC::Reg::ReduceType::MAX,修复编译兼容性问题。 涉及的算子模块:activation、norm、loss、index、quant,均为 arch35 架构专用文件,不影响其他架构。 ## 关联的Issue #4937 ## 测试 在 CANN 9.0.0(ascend950)环境下对 62 个文件涉及的算子进行编译验证,全部编译通过。 ## 文档更新 无文档更新,本次为编译兼容性修复。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8943 | 1 个月前 | |
代码同步 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !450 merge master into master 代码同步 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!450 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 个月前 |