| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Label the chip Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !7823 merge master into master Label the chip Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Label the chip ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4245 ## 测试 NA ## 文档更新 activation目录所有的aclnn.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7823 | 3 个月前 | |
算子原型迁移 | 2 个月前 | |
算子插件迁移 | 2 个月前 | |
Added clipped_swiglu op with clamp_mode Co-authored-by: clwsy1<wangsiyang3@huawei.com> # message auto-generated for no-merge-commit merge: !8534 merge dev into master Added clipped_swiglu op with clamp_mode Created-by: clwsy1 Commit-by: clwsy1 Merged-by: cann-robot Description: ## 描述 为ClippedSwiglu算子新增clamp_mode属性,用于控制clamp与silu操作的执行顺序 ## 关联的Issue [#4940](https://gitcode.com/cann/ops-nn/issues/4940) ## 测试 进行了ttk,aclnn,图模式以及api测试,均验证通过 ## 文档更新 更新了README、aclnn.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8534 | 2 个月前 | |
clipped_swiglu_grad torch extension bug fix Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !8823 merge torch_extension into master clipped_swiglu_grad torch extension bug fix Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> clipped_swiglu_grad torch extension bug fix ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4754 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8823 | 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 | 3 个月前 | |
fix(geir-test): 修复 geir 测试日志级别与描述不一致(INFO→ERROR) Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !9003 merge fix-geir-test-log-level-mismatch into master fix(geir-test): 修复 geir 测试日志级别与描述不一致(INFO→ERROR) Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 修复 14 个算子 geir 测试文件中日志级别与描述不一致的问题:3 类失败消息被误标记为 INFO,而同文件内其他失败消息均正确标记为 ERROR,构成内部不一致。本次将这 3 类失败消息的日志级别从 INFO 改为 ERROR。 ### 改动原因 geir 测试文件统一使用 printf("%s - LEVEL - [XIR]: message") 格式输出日志。在以下 3 类失败分支中,消息内容明确表示失败,但日志级别却写成 INFO,与同文件内其他失败消息(如 Generate input data failed、Create ir session using build options failed、Session add ir compute graph failed、Output verification FAILED,均标记为 ERROR)不一致,会误导日志排查: - Initialize ge using ge global options failed - Run graph failed - Finalize ir graph session failed ### 改动方法 仅将上述 3 类失败消息的日志级别标签 - INFO - 改为 - ERROR -,不修改任何测试逻辑、消息文本或参数。 ### 涉及文件(每个 3 处,共 42 处,14 文件 +42 -42) - activation/log_softmax_v2 - activation/confusion_softmax_grad - index/broadcast_gradient_args - norm/add_layer_norm_quant - norm/add_rms_norm_dynamic_quant_v2 - norm/batch_norm - norm/group_norm_v2 - norm/instance_norm - norm/layer_norm - norm/layer_norm_v3 - norm/sync_batch_norm_backward_elemt - norm/sync_batch_norm_backward_reduce - norm/sync_batch_norm_gather_stats - norm/sync_bn_training_update ## 关联的Issue - #4973 ## 测试 - 仅日志级别字符串修改,无逻辑变更,不影响测试编译与运行结果。 - 通过 git diff 逐项核对:仅 - INFO - → - ERROR -,消息文本与参数不变。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9003 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
fix: 移除elu_grad_v2和grouped_dynamic_mx_quant的重复op_api头文件并修正测试include路径 Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !8610 merge fix/remove-duplicate-op-api-headers into master fix: 移除elu_grad_v2和grouped_dynamic_mx_quant的重复op_api头文件并修正测试include路径 Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 移除 elu_grad_v2 和 grouped_dynamic_mx_quant 两个算子在 op_host/op_api/ 目录下的重复头文件,并修正对应 UT 测试文件的 include 路径,统一指向规范位置 op_api/。 ### 改动原因 经 git ls-tree 比对,op_host/op_api/ 下的头文件与 op_api/ 下的同名文件 blob hash 完全一致,属内容完全相同的重复副本。重复头文件会导致: - include 路径歧义(测试代码引用了重复副本而非规范位置) - 潜在 ODR(单一定义规则)冲突风险 - 维护成本增加(修改需同步两处) ### 改动方法 1. 删除 activation/elu_grad_v2/op_host/op_api/ 下 2 个重复头文件: - aclnn_elu_backward.h(与 op_api/aclnn_elu_backward.h blob 一致:2508e099...) - elu_grad_v2.h(与 op_api/elu_grad_v2.h blob 一致:0f8740b1...) 2. 删除 quant/grouped_dynamic_mx_quant/op_host/op_api/ 下 3 个重复头文件: - aclnn_grouped_dynamic_mx_quant.h(blob 一致:1cf0b8cc...) - aclnn_grouped_dynamic_mx_quant_v2.h(blob 一致:18aacd89...) - grouped_dynamic_mx_quant.h(blob 一致:2324f36c...) 3. 修正 2 个 UT 测试文件的 include 路径: - test_aclnn_elu_backward.cpp:../../../op_host/op_api/aclnn_elu_backward.h → ../../../op_api/aclnn_elu_backward.h - test_aclnn_grouped_dynamic_mx_quant.cpp:../../../op_host/op_api/aclnn_grouped_dynamic_mx_quant.h → ../../../op_api/aclnn_grouped_dynamic_mx_quant.h ## 关联的Issue #4922 ## 测试 - 更新了 test_aclnn_elu_backward.cpp 和 test_aclnn_grouped_dynamic_mx_quant.cpp 的 include 路径,指向规范的 op_api/ 头文件位置 - 删除的文件与保留文件内容完全一致(git blob hash 相同),不影响编译产物 ## 文档更新 无需更新文档 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8610 | 2 个月前 | |
修复算子文档格式与示例代码规范问题 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8288 merge fix-doc-format-issues into master 修复算子文档格式与示例代码规范问题 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复算子文档格式与示例代码规范问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4603 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8288 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
TF plugin开源 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7516 merge nn into master TF plugin开源 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TF plugin开源修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4196 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7516 | 3 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
feat: Add FusedBiasLeakyRelu Operate Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !7631 merge mhf_FusedBiasLeakyRelu_0717 into master feat: Add FusedBiasLeakyRelu Operate Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> #### 项目背景 CANNBot长尾算子项目,将FusedBiasLeakyRule算子从experimental迁移到built-in。FusedBiasLeakyRelu(融合偏置泄漏整流线性单元)是一个元素级融合算子,将 **偏置加法(bias_add)+ LeakyReLU 激活 + 方差缩放(scale)** 三段计算融合为单次 kernel 调用,能有效减少访存,提升执行效率。 算子原型已跟SE(苏跃明)和MDE(王星)对齐,并经SE(汤磊)评审。 #### 功能说明 FusedBiasLeakyRelu(融合偏置泄漏整流线性单元)是一个元素级融合算子,将 **偏置加法(bias_add)+ LeakyReLU 激活 + 方差缩放(scale)** 三段计算融合为单次 kernel 调用 - 接口功能:对输入张量x加上偏置bias后,应用带缩放因子的LeakyReLU激活函数。 - 计算公式: $$ FusedBiasLeakyRelu(x, bias) = \begin{cases} (x + bias) \ast scale, \quad x + bias \geq 0\\ (x + bias) \ast negative\_slope \ast scale, \quad x + bias < 0 \end{cases} $$ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4625 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> TTK、冒烟、三方 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 已更新op_list.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7631 | 2 个月前 | |
fix(fused_bias_leaky_relu_grad): add inferdatatype & tiling shape check Co-authored-by: ugzhangyiyi<zhangyiyi4@huawei.com> # message auto-generated for no-merge-commit merge: !8314 merge fixfusedbias into master fix(fused_bias_leaky_relu_grad): add inferdatatype & tiling shape check Created-by: ugzhangyiyi Commit-by: ugzhangyiyi Merged-by: cann-robot Description: 为 FusedBiasLeakyReluGrad 算子补齐 InferDataType 注册和 Tiling 层异常校验。 **改动原因:** 1. 算子缺少 InferDataType 注册(canndev runtime 只注册了 InferShape,开源仓未提供 InferDataType) 2. Tiling 层缺少 dtype 一致性校验、rank 上限校验和广播兼容性校验,非法输入不会被 Tiling 拒绝 **改动内容:** 1. 新增 op_graph/fused_bias_leaky_relu_grad_graph_infer.cpp:注册 IMPL_OP(FusedBiasLeakyReluGrad).InferDataType(...),输出 dtype = y_grad dtype,校验两输入 dtype 一致且为 FLOAT16/FLOAT 2. 新增 op_graph/CMakeLists.txt:add_graph_plugin_sources() 构建配置 3. 修改 op_host/arch35/fused_bias_leaky_relu_grad_tiling_arch35.cpp 的 ReadContextShapes 函数: - 读取两个输入的 dtype 并校验一致性(dtype0 != dtype1 时 OP_LOGE + GRAPH_FAILED) - 新增 rank > 8 拒绝校验 - 新增广播兼容性逐维校验(d0 != d1 && d0 != 1 && d1 != 1 时拒绝) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4598 ## 测试 - Ascend950 GEIR 静态 example:Shape/dtype/数值校验 PASSED - Ascend950 GEIR 动态 example:-1(3组rank2) + -2(3组rank1/2/3) 全通过,6 次 Kernel launch - 异常值 GEIR example 4/4 PASS: - dtype_unsupported_int32:INT32 被 Tiling 拒绝 - cast_fp32_to_fp16:Cast fp32→fp16 接受,Kernel launch + 数值校验通过 - rank9_reject:9D Tensor 被 rank>8 校验拒绝 - shape_broadcast_incompatible:[3,5] vs [3,7] 广播不兼容被拒绝 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8314 | 2 个月前 | |
激活和量化算子的示例中的输出类型不匹配 Co-authored-by: ji-jun1<jijun1@huawei.com> # message auto-generated for no-merge-commit merge: !8372 merge master into master 激活和量化算子的示例中的输出类型不匹配 Created-by: ji-jun1 Commit-by: ji-jun1 Merged-by: cann-robot Description: ## 描述 部分激活算子和量化算子的aclnn demo中,存在变量申请的类型和使用的类型不匹配的问题 ## 关联的Issue [#4608](https://gitcode.com/cann/ops-nn/issues/4608) ## 测试 已跑最新demo ## 文档更新 更新了 activation/ge_glu_grad_v2/docs/aclnnGeGluBackward.md activation/ge_glu_grad_v2/docs/aclnnGeGluV3Backward.md quant/dynamic_quant_v2/docs/aclnnDynamicQuantV2.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8372 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
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 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
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 | 2 个月前 | |
修改乱码 Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !8257 merge master into master 修改乱码 Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 修改乱码 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4573 ## 测试 NA ## 文档更新 aclnnHardShrinkBackward.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8257 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
修复算子文档格式与示例代码规范问题 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8288 merge fix-doc-format-issues into master 修复算子文档格式与示例代码规范问题 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix: 修复算子文档格式与示例代码规范问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4603 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8288 | 2 个月前 | |
补充Heaviside算子README约束说明 Co-authored-by: Coder_Nerd<shishuai5@huawei.com> # message auto-generated for no-merge-commit merge: !8991 merge master into master 补充Heaviside算子README约束说明 Created-by: Coder_Nerd Commit-by: Coder_Nerd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充Heaviside算子README约束说明 - input、values、out的数据类型必须一致。 - values为标量(单元素)或与input的shape相同,kernel内部不广播,按相同线性偏移读取values。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4969 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8991 | 2 个月前 | |
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 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
算子插件迁移 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
Label the chip Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !7823 merge master into master Label the chip Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Label the chip ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4245 ## 测试 NA ## 文档更新 activation目录所有的aclnn.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7823 | 3 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !8721 merge pr/relu6-normalization into master relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 描述 relu6 算子存在两类规范化问题:dtype 分发机制与仓内标准模式不一致、InferShape/InferDataType 实现不完整。本 PR 仅针对这两方面进行整改,不涉及算法逻辑变更。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4811 ## 测试 - UT 编译验证:tests/ut/op_kernel/CMakeLists.txt 已配置 -DDTYPE_X=half + MULTI_KERNEL_TARGET,验证 DTYPE_X 宏方式编译通过 - UT 用例一致性:test_relu6.cpp 中 6 个测试用例(fp32_small、fp32_multi_loop、fp16_small、int32_small、bf16_small、fp16_multi_loop)同步移除 dataType 赋值,与 TilingData 结构体定义一致 - InferShape UT:test_relu6_infershape.cpp 覆盖 float16/float/int32/bf16 四种 dtype + scalar/empty shape 场景,验证 InferShape 正确性 - 参考算子对齐:改动后与 celu_v2(def 驱动 dtype + InferDataType)实现模式完全一致 ## 文档更新 无。本次改动不涉及 README.md 或其他文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x ] 其他,请描述:规范化整改(dtype 分发机制对齐 + InferShape/InferDataType 补全) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ x] AI辅助编写 See merge request: cann/ops-nn!8721 | 2 个月前 | |
修复 Relu6D def 驱动 dtype 及算子原型重复定义问题 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !8640 merge codex/relu6d-transfer-test-fixes into master 修复 Relu6D def 驱动 dtype 及算子原型重复定义问题 Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 修复 ops-transfer-test-scan 检查发现的以下转测准入问题: 1. 修复 Relu6D“def 驱动 dtype”问题。 - 移除 Relu6D tiling key 中的 dtype 模板声明和 dtype 分发逻辑。 - Host tiling 统一设置固定 tiling key 0。 - Kernel 入口直接使用 def 生成的 DTYPE_X 实例化 KernelRelu6D<DTYPE_X>。 - 更新 Relu6D Host UT 和 Kernel UT,使测试逻辑与 def 驱动 dtype 的实现保持一致。 修复后,FP16、FP32、INT32、BF16 四种类型均可通过 def 配置生成并完成正式二进制编译。 2. 修复 Relu6D 和 SmoothL1LossGrad 重复定义问题。 参考 PR 8552 的处理方式,不删除已有 REG_OP 定义,而是增加统一的宏保护: - Relu6D:OPS_PROTO_DEF_RELU6D - SmoothL1LossGrad:OPS_PROTO_DEF_SMOOTHL1LOSSGRAD 宏保护已添加至对应算子 proto 及公共扩展头,避免多份 proto 合并或共同包含时重复展开同名算子定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4780 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 完成以下验证: 1. Relu6D Host/Proto UT - 24/24 通过。 - 覆盖 FP16、FP32、INT32、BF16、空 Tensor、标量、不同 shape、非法 dtype、非法 format、9D shape 和不同 scale 等场景。 - 成功验证 tiling key 固定为 0。 2. Relu6D Kernel UT - 5/5 通过。 - 覆盖 FP32、FP16、INT32、BF16 以及 FP32 多轮循环场景。 - 测试过程中输入数据和 golden 数据均成功生成。 3. Proto 合并及编译 - Relu6D 本地 proto、SmoothL1LossGrad 本地 proto 与公共扩展 proto 合并并编译成功。 - 未出现算子原型重复定义错误。 4. Relu6D 正式二进制编译 - Ascend950PR_9599 编译成功。 - 成功生成 FP16、FP32、INT32、BF16 四种 dtype 的独立二进制产物。 - 最终结果:[SUCCESS] Build binary success! 5. 冒烟已过 6. 代码检查 - git diff --check 通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8640 | 2 个月前 | |
docs(relu6_grad): mark Atlas A2/A3 series as supported in README Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !8535 merge master into master docs(relu6_grad): mark Atlas A2/A3 series as supported in README Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 更新 relu6_grad 算子的 README「产品支持情况」表,将 Atlas A2/A3 训练/推理系列产品由「不支持(×)」标记为「支持(√)」。 ## 关联的Issue - #4707 ## 测试 本次为纯文档变更(README 产品支持表更新),不涉及算子功能逻辑改动,无需算子功能测试。 ## 文档更新 - activation/relu6_grad/README.md:产品支持表标记 Atlas A2/A3 训练/推理系列产品为支持 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8535 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
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 | 2 个月前 | |
SeluGrad算子对齐竞品实现,修复int类型结果溢出问题 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8771 merge fix_selu_grad into master SeluGrad算子对齐竞品实现,修复int类型结果溢出问题 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 本 PR 修复 Ascend950 arch35 SeluGrad 与指定竞品 TensorFlow tf.raw_ops.SeluGrad 实现不一致的问题。 数学定义统一为: text outputs < 0 : y = gradients * (outputs + 1.7580993408473768...) outputs >= 0 : y = 1.0507009873554805... * gradients 主要改动: - 将负分支判断从 outputs <= 0 调整为 outputs < 0,使零点进入 scale * gradients 分支。 - FP16/BF16 改为在输入 dtype 上直接计算常量和中间结果,对齐 TensorFlow 的 dtype 原生计算行为。 - 整数路径按类型调整:int8/uint8 上浮 FP16,int32 上浮 FP32。 - 整数结果使用 CAST_RINT 直接回铸原 dtype,移除会导致 int32 精度损失的 integer -> FP16 -> FP32 旧中转路径。 - 简化 Transit Kit 的 Cast 辅助函数和 UB 缓冲分配,并保持连续形状与广播路径共用相同计算语义。 - 同步更新 arch35 示例程序中的公式、零点分支与期望值。 对标范围说明:本次产品契约明确以 TensorFlow tf.raw_ops.SeluGrad 为真值;outputs == 0 的行为有意与 PyTorch elu_backward(is_result=True) 的 <= 0 语义区分。 ## 关联的Issue Fixes #4846 https://gitcode.com/cann/ops-nn/issues/4846 ## 测试 - Ascend950 构建:bash build.sh --pkg --ops=selu_grad --soc=ascend950 --vendor_name=custom_nn -j8 - 构建成功。 - 6/6 dtype 对象及 6 个运行时变体生成成功。 - TTK 版本:3.0.0,revision 40f91a7。 - 竞品 Golden:TensorFlow tf.raw_ops.SeluGrad;整数按上述类型上浮和回铸规则处理。 - 原确定性整数失败集:18/18 PASS,binary 100%,内存检查 PASS。 - 全部非资源型整数回归:34/34 PASS。 - int8:10/10 - uint8:10/10 - int32:14/14 - FP16/BF16 防回归:17/17 PASS。 - FP16:14/14 - BF16:3/3 - 4 条超大资源用例未纳入完整整数回归;其输入张量本身占用 1.365-1.974 GiB,原结果为 Golden 资源失败或 profile crash,不属于确定性精度不一致。 ## 示例更新 - 更新 activation/selu_grad/examples/arch35/test_aclnn_selu_grad.cpp 中的输出说明与零点判断。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8771 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
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 | 2 个月前 | |
新增situglu和situglugrad算子 Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !8651 merge situ_commit into master 新增situglu和situglugrad算子 Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> situ系列算子为SiTU(Scalable Interpolated Tanh Units)相关的融合算子族。新增两个situ激活正反向算子及其torch_extension接口,各算子功能如下: **1. situ_glu** SiTU门控线性单元(SiTU Gated Linear Unit)激活函数。对输入张量 x 沿指定维度 dim 切分为门控(gate)与上路径(up)两半,按SiTU公式计算输出。 将 x 基于 dim 进行合轴,合轴后维度为 [pre, cut],cut 必须为偶数,令 h = cut // 2。根据 activate_left 切分: - activate_left=True:gate = x[..., :h],up = x[..., h:] - activate_left=False:gate = x[..., h:],up = x[..., :h] SiTU计算: $$situ\_a = \beta \cdot \tanh\left(\frac{gate}{\beta}\right) \cdot \sigma(gate)$$ 当 linear_beta > 0 时: $$up = linear\_beta \cdot \tanh\left(\frac{up}{linear\_beta}\right)$$ 输出: $$y = situ\_a \cdot up$$ 输出 y 的 dim 轴大小为 x 的一半,其他维度与 x 相同。 **2. situ_glu_grad** situ_glu 的反向梯度算子。给定前向输出梯度 grad_y 与前向输入 x,按SiTU门控线性单元公式对 x 求导,返回输入梯度 grad_x。 记前向中间量: $$t_g = \tanh\left(\frac{gate}{\beta}\right), \quad s_g = \sigma(gate), \quad situ\_a = \beta \cdot t_g \cdot s_g$$ 当 linear_beta > 0 时:$up' = linear\_beta \cdot \tanh(up / linear\_beta)$,否则 $up' = up$。 乘积法则: $$grad\_situ\_a = grad\_y \cdot up', \quad grad\_up' = grad\_y \cdot situ\_a$$ gate梯度: $$grad\_gate = grad\_situ\_a \cdot s_g \cdot \left[(1 - t_g^2) + \beta \cdot t_g \cdot (1 - s_g)\right]$$ up梯度: - linear_beta > 0 时:$grad\_up = grad\_up' \cdot (1 - \tanh^2(up / linear\_beta))$ - linear_beta ≤ 0 时:$grad\_up = grad\_up'$ 按 activate_left 拼接 grad_gate、grad_up 为 grad_x(shape与 x 一致)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#4749](https://gitcode.com/cann/ops-nn/issues/4749) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1、泛化测试 正向泛化功能测试OK 反向泛化功能测试OK 2、torch接口测试 正向torch接口功能测试OK 反向orch接口功能测试OK 3、示例代码测试 示例代码验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8651 | 2 个月前 | |
新增situglu和situglugrad算子 Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !8651 merge situ_commit into master 新增situglu和situglugrad算子 Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> situ系列算子为SiTU(Scalable Interpolated Tanh Units)相关的融合算子族。新增两个situ激活正反向算子及其torch_extension接口,各算子功能如下: **1. situ_glu** SiTU门控线性单元(SiTU Gated Linear Unit)激活函数。对输入张量 x 沿指定维度 dim 切分为门控(gate)与上路径(up)两半,按SiTU公式计算输出。 将 x 基于 dim 进行合轴,合轴后维度为 [pre, cut],cut 必须为偶数,令 h = cut // 2。根据 activate_left 切分: - activate_left=True:gate = x[..., :h],up = x[..., h:] - activate_left=False:gate = x[..., h:],up = x[..., :h] SiTU计算: $$situ\_a = \beta \cdot \tanh\left(\frac{gate}{\beta}\right) \cdot \sigma(gate)$$ 当 linear_beta > 0 时: $$up = linear\_beta \cdot \tanh\left(\frac{up}{linear\_beta}\right)$$ 输出: $$y = situ\_a \cdot up$$ 输出 y 的 dim 轴大小为 x 的一半,其他维度与 x 相同。 **2. situ_glu_grad** situ_glu 的反向梯度算子。给定前向输出梯度 grad_y 与前向输入 x,按SiTU门控线性单元公式对 x 求导,返回输入梯度 grad_x。 记前向中间量: $$t_g = \tanh\left(\frac{gate}{\beta}\right), \quad s_g = \sigma(gate), \quad situ\_a = \beta \cdot t_g \cdot s_g$$ 当 linear_beta > 0 时:$up' = linear\_beta \cdot \tanh(up / linear\_beta)$,否则 $up' = up$。 乘积法则: $$grad\_situ\_a = grad\_y \cdot up', \quad grad\_up' = grad\_y \cdot situ\_a$$ gate梯度: $$grad\_gate = grad\_situ\_a \cdot s_g \cdot \left[(1 - t_g^2) + \beta \cdot t_g \cdot (1 - s_g)\right]$$ up梯度: - linear_beta > 0 时:$grad\_up = grad\_up' \cdot (1 - \tanh^2(up / linear\_beta))$ - linear_beta ≤ 0 时:$grad\_up = grad\_up'$ 按 activate_left 拼接 grad_gate、grad_up 为 grad_x(shape与 x 一致)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#4749](https://gitcode.com/cann/ops-nn/issues/4749) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1、泛化测试 正向泛化功能测试OK 反向泛化功能测试OK 2、torch接口测试 正向torch接口功能测试OK 反向orch接口功能测试OK 3、示例代码测试 示例代码验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8651 | 2 个月前 | |
增加异常值校验 Co-authored-by: Dyrong<dengyirong@huawei.com> # message auto-generated for no-merge-commit merge: !8162 merge master into master 增加异常值校验 Created-by: Dyrong Commit-by: Dyrong Merged-by: cann-robot Description: ## 描述 soft_shrink_grad算子tiling增加异常值/类型校验 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4489 ## 测试 补充0-8维、数据类型、shape等维度校验 ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8162 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
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 | 2 个月前 | |
leaky_relu,softplus使用elewise16B模板 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !8226 merge master into master leaky_relu,softplus使用elewise16B模板 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> leaky_relu,softplus使用elewise16B接口 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4588 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8226 | 2 个月前 | |
Label the chip Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !7823 merge master into master Label the chip Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Label the chip ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4245 ## 测试 NA ## 文档更新 activation目录所有的aclnn.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7823 | 3 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
feat(softshrink): 补齐 op_graph InferDataType Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !8757 merge feat/softshrink-op-graph into master feat(softshrink): 补齐 op_graph InferDataType Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 feat(softshrink): 补齐 op_graph InferDataType ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4871 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8757 | 2 个月前 | |
fix(softsign): 补充 softsign_proto.h 算子注册去重宏 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !8902 merge master into master fix(softsign): 补充 softsign_proto.h 算子注册去重宏 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 activation/softsign/op_graph/softsign_proto.h 中 REG_OP(Softsign) 注册块此前未包含去重宏。仓库内已有 38 个 *_proto.h 采用 #ifndef OPS_PROTO_DEF_<NAME> 惯例(如 relu6_d_proto.h、selu_grad_proto.h、add_row_ranges_proto.h 等),softsign 属于遗漏项。 当该头文件被同一编译单元重复包含(直接或间接)时,REG_OP(Softsign) 宏展开多次,导致算子重复注册。本 PR 按仓库既有惯例补齐 include guard: c++ #ifndef OPS_PROTO_DEF_SOFTSIGN #define OPS_PROTO_DEF_SOFTSIGN REG_OP(Softsign) ... .OP_END_FACTORY_REG(Softsign) #endif ## 关联的Issue fixes #4912 ## 测试 纯头文件宏修改,无逻辑变更;通过编译验证头文件重复包含场景下 REG_OP(Softsign) 仅展开一次。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8902 | 2 个月前 | |
[Docs] 删除 SoftsignGrad README 中的 ACLNN 接口描述 Co-authored-by: aqt666<2016141505@qq.com> # message auto-generated for no-merge-commit merge: !8960 merge docs/softsign-grad-readme into master [Docs] 删除 SoftsignGrad README 中的 ACLNN 接口描述 Created-by: aqt666 Commit-by: aqt666 Merged-by: cann-robot Description: ## 描述 SoftsignGrad 当前不涉及 ACLNN 通路交付,但 README 约束说明中包含“aclnnSoftsignBackward默认确定性实现”,容易使用户误认为该算子提供对应 ACLNN 接口。 本次仅删除该条描述,其他算子功能和约束说明保持不变。 ## 关联的Issue Closes #4941 ## 测试 - git diff --check 检查通过。 - 本次仅修改文档,不涉及代码及运行行为。 ## 文档更新 删除 activation/softsign_grad/README.md 中的 ACLNN 接口描述。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8960 | 2 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 个月前 | |
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !8450 merge refactor-microapi-ops into master refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。 ### 改动原因 AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。 ### 改动方法 对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子: - **activation**(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad - **index**(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice - **quant**(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize 接口替换映射如下: | 旧接口 | 新接口 | 说明 | |--------|--------|------| | MicroAPI::DataCopy(reg, addr) | MicroAPI::LoadAlign(reg, addr) | UB→Reg 加载 | | MicroAPI::DataCopy(addr, reg) | MicroAPI::StoreAlign(addr, reg) | Reg→UB 存储 | | MicroAPI::DataCopy<T, LoadDist>(reg, addr) | MicroAPI::LoadAlign<T, LoadDist>(reg, addr) | 带 Dist 模板参数的 UB→Reg 加载 | | MicroAPI::DataCopy<T, StoreDist>(addr, reg) | MicroAPI::StoreAlign<T, StoreDist>(addr, reg) | 带 Dist 模板参数的 Reg→UB 存储 | | DataCopyUnAlign(addr, reg, ...) | StoreUnAlign(addr, reg, ...) | 非对齐存储 | | DataCopyUnAlign(reg, addr, ...) | LoadUnAlign(reg, addr, ...) | 非对齐加载 | | DataCopyUnAlignPre | LoadUnAlignPre | 非对齐预加载 | | DataCopyUnAlignPost | StoreUnAlignPost | 非对齐后存储 | | DataCopyScatter | Scatter | 散射写入 | | DataCopyGather | Gather | 聚集读取 | | CompareScalar | Compares | 标量比较 | | Copy | Move | 寄存器间拷贝 | | MaskAnd | And | 掩码与运算 | | MaskUnPack | UnPack | 掩码解包 | | MaskPack | Pack | 掩码打包 | | ReduceMax<T> | Reduce<ReduceType::MAX, T> | 最大值归约 | | ReduceMin<T> | Reduce<ReduceType::MIN, T> | 最小值归约 | | ReduceSum | Reduce<ReduceType::SUM> | 求和归约 | | ReduceMaxWithDataBlock | ReduceDataBlock<ReduceType::MAX> | 数据块最大值归约 | | UnalignReg | UnalignRegForStore | 非对齐存储寄存器 | | __local_mem__ | __ubuf__ | 地址空间限定符 | > 注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。 此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4689 ## 测试 接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口重命名,代码规范对齐 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8450 | 2 个月前 | |
fix: 放宽 swiglu_group_grad 的 grad_y 维度限制并对齐前向 clamp_limit 校验 Co-authored-by: qq_51545127<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8844 merge fix/swiglu-group-grad-support-multi-dim-and-clamp into master fix: 放宽 swiglu_group_grad 的 grad_y 维度限制并对齐前向 clamp_limit 校验 Created-by: qq_51545127 Commit-by: qq_51545127 Merged-by: cann-robot Description: ## 描述 前向 swiglu_group 支持 1-ND 输入且 clamp_limit 默认 -1.0,但反向 swiglu_group_backward 此前仅支持 2D/3D 且 clamp_limit 要求 >= 0.0,autograd 走反向时 1D 及 4D+ 等多维输入被拦截。本次将反向对齐前向语义并放宽维度限制。 ## 修改内容 1. grad_y 维度放宽(2D/3D → >= 1D,无上限),totalRows 改为遍历非尾轴维度累乘 2. 校验方式统一为「尾轴关系 + 非尾轴元素总数相等」,不再要求 grad_y 与 x rank 逐维相等: - x.shape[-1] == SPLIT_NUM * grad_y.shape[-1](SPLIT_NUM = 2) - weight / y_origin 非尾轴元素总数与 grad_y 相等,尾轴等于 grad_y 尾轴 3. clamp_limit 语义对齐前向:-1.0 = 默认不 clamp,>0 = 启用,0 / 负数 / NaN 报错;默认值由 0.0 改为 -1.0(含 autograd 桥 clamp_limit_bwd) 4. SPLIT_NUM 常量化,对齐参照算子 swiglu_group_quant_grad;清理文档/注释中 clamp_limit 旧语义(0.0 = 不 clamp)残留 口径(grad_y / x / weight / y_origin)在 torch 扩展(schema/meta/impl/图转换)、aclnn op_api、op_host(infershape + tiling)三侧同步实现。 kernel 代码未改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4750 ## 测试 冒烟测试 ## 文档更新 更新了 README.md、docs/aclnnSwigluGroupGrad.md、docs/torchapi_swiglu_group_backward.md 及算子公开头文件注释,同步 grad_y 1-ND 维度与 clamp_limit 新语义。 ## 类型标签 - [x] Bug修复 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8844 | 2 个月前 | |
修复SwigluGroup/Quant文档和空Tensor问题 Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !8708 merge master into master 修复SwigluGroup/Quant文档和空Tensor问题 Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复SwigluGroup和SwigluGroupQuant文档、tiling校验和空Tensor问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4949 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ut、st测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> activation/swiglu_group/README.md activation/swiglu_group/docs/aclnnSwigluGroup.md activation/swiglu_group/docs/torchapi_swiglu_group.md activation/swiglu_group_quant/README.md activation/swiglu_group_quant/docs/aclnnSwigluGroupQuant.md activation/swiglu_group_quant/docs/torchapi_swiglu_group_quant.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8708 | 2 个月前 | |
修复swiglu_group_quant_grad bf16输入Cast hazard与group_index场景死锁 Co-authored-by: shilulu<shilulu8@huawei.com> # message auto-generated for no-merge-commit merge: !8667 merge swiglu_group_quant_grad into master 修复swiglu_group_quant_grad bf16输入Cast hazard与group_index场景死锁 Created-by: shilulu Commit-by: shilulu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复swiglu_group_quant_grad bf16输入Cast hazard与group_index场景死锁 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4787 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8667 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
feat(threshold_grad_v2_d): 补充GEIR原型及去重宏 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !8941 merge fix/threshold-grad-v2-d-proto-guard into master feat(threshold_grad_v2_d): 补充GEIR原型及去重宏 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 - 新增 ThresholdGradV2D GEIR 算子原型,定义 gradients、features、backprops 和 required threshold 属性。 - 增加文件级 include guard 和 OPS_PROTO_DEF_THRESHOLDGRADV2D 原型去重宏,避免 REG_OP(ThresholdGradV2D) 重复注册。 - 本 PR 仅包含 activation/threshold_grad_v2_d/op_graph/threshold_grad_v2_d_proto.h。 ## 关联的Issue []https://gitcode.com/cann/ops-nn/issues/4929 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8941 | 2 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 3 个月前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !364 merge license4 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!364 | 10 个月前 | |
新增situglu和situglugrad算子 Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !8651 merge situ_commit into master 新增situglu和situglugrad算子 Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> situ系列算子为SiTU(Scalable Interpolated Tanh Units)相关的融合算子族。新增两个situ激活正反向算子及其torch_extension接口,各算子功能如下: **1. situ_glu** SiTU门控线性单元(SiTU Gated Linear Unit)激活函数。对输入张量 x 沿指定维度 dim 切分为门控(gate)与上路径(up)两半,按SiTU公式计算输出。 将 x 基于 dim 进行合轴,合轴后维度为 [pre, cut],cut 必须为偶数,令 h = cut // 2。根据 activate_left 切分: - activate_left=True:gate = x[..., :h],up = x[..., h:] - activate_left=False:gate = x[..., h:],up = x[..., :h] SiTU计算: $$situ\_a = \beta \cdot \tanh\left(\frac{gate}{\beta}\right) \cdot \sigma(gate)$$ 当 linear_beta > 0 时: $$up = linear\_beta \cdot \tanh\left(\frac{up}{linear\_beta}\right)$$ 输出: $$y = situ\_a \cdot up$$ 输出 y 的 dim 轴大小为 x 的一半,其他维度与 x 相同。 **2. situ_glu_grad** situ_glu 的反向梯度算子。给定前向输出梯度 grad_y 与前向输入 x,按SiTU门控线性单元公式对 x 求导,返回输入梯度 grad_x。 记前向中间量: $$t_g = \tanh\left(\frac{gate}{\beta}\right), \quad s_g = \sigma(gate), \quad situ\_a = \beta \cdot t_g \cdot s_g$$ 当 linear_beta > 0 时:$up' = linear\_beta \cdot \tanh(up / linear\_beta)$,否则 $up' = up$。 乘积法则: $$grad\_situ\_a = grad\_y \cdot up', \quad grad\_up' = grad\_y \cdot situ\_a$$ gate梯度: $$grad\_gate = grad\_situ\_a \cdot s_g \cdot \left[(1 - t_g^2) + \beta \cdot t_g \cdot (1 - s_g)\right]$$ up梯度: - linear_beta > 0 时:$grad\_up = grad\_up' \cdot (1 - \tanh^2(up / linear\_beta))$ - linear_beta ≤ 0 时:$grad\_up = grad\_up'$ 按 activate_left 拼接 grad_gate、grad_up 为 grad_x(shape与 x 一致)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#4749](https://gitcode.com/cann/ops-nn/issues/4749) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 1、泛化测试 正向泛化功能测试OK 反向泛化功能测试OK 2、torch接口测试 正向torch接口功能测试OK 反向orch接口功能测试OK 3、示例代码测试 示例代码验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8651 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 10 个月前 | ||
| 2 个月前 |