| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 1 个月前 | |
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 | 1 个月前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 21 天前 | |
refactor: rename APIs in ops-nn batch2 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8567 merge rename-api-batch2 into master refactor: rename APIs in ops-nn batch2 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - ReduceMax → Reduce<ReduceType::MAX> - Copy → Move - DataCopyGather → Gather - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/clipped_swiglu - activation/confusion_softmax_grad - index/broadcast_gradient_args - loss/binary_cross_entropy - loss/cross_entropy_loss - loss/cross_entropy_loss_grad - norm/batch_norm_grad - norm/batch_norm_grad_v3 - norm/batch_norm_v3 - quant/dequant_swiglu_quant 共修改 53 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8567 | 24 天前 | |
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 | 21 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Co-authored-by: zhuzixian-lr<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8083 merge softmax_bin into master feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Created-by: zhuzixian-lr Commit-by: zhuzixian-lr Merged-by: cann-robot Description: ## 描述 本 PR 为 softmax 和 group_norm 系列算子在 ascend950 平台的 binary JSON 配置中添加 format_match_mode: FormatAgnostic 格式匹配模式,使这些算子能够以格式无关方式接收输入/输出张量。同时重构 softmax_grad 算子的编译信息获取接口,将 reinterpret_cast 强制类型转换替换为类型安全的模板 API。 ### 改动原因 当前 softmax/group_norm 系列算子的 ascend950 binary JSON 配置未设置 format_match_mode,在格式匹配时存在限制。仓库中其他算子(如 relu_grad_v2、gelu_grad、log_sigmoid_grad、hard_swish_grad_v2、swiglu_group 等)已广泛使用 FormatAgnostic 模式,本 PR 将该模式统一扩展至 softmax/group_norm 系列,保持一致性。 ### 改动方法 **1. Binary JSON 配置变更(6 个算子,ascend950 平台)** 为以下算子的所有输入和输出张量添加 "format_match_mode": "FormatAgnostic" 字段: | 算子 | 配置文件 | binary 变体数 | 数据类型 | 张量数 | |------|----------|:---:|------|:---:| | ConfusionSoftmaxGrad | activation/confusion_softmax_grad/op_host/config/ascend950/confusion_softmax_grad_binary.json | 3 | bfloat16 / float16 / float32 | 9 | | LogSoftmaxGrad | activation/log_softmax_grad/op_host/config/ascend950/log_softmax_grad_binary.json | 3 | float16 / bfloat16 / float32 | 9 | | SoftmaxGrad | activation/softmax_grad/op_host/config/ascend950/softmax_grad_binary.json | 3 | float16 / float32 / bfloat16 | 9 | | SoftmaxV2 | activation/softmax_v2/op_host/config/ascend950/softmax_v2_binary.json | 4 | bfloat16 / float16 / float16_to_float32 / float32 | 8 | | GroupNormGrad | norm/group_norm_grad/op_host/config/ascend950/group_norm_grad_binary.json | 5 | fp32 / fp16 / bf16 / fp16_f32 / bf16_f32 | 40 | | GroupNormV2 | norm/group_norm_v2/op_host/config/ascend950/group_norm_v2_binary.json | 5 | fp16 / fp32 / bf16 / bf16_f32 / fp16_f32 | 30 | 共 105 个张量条目添加了 FormatAgnostic 格式匹配模式。 **2. C++ 接口重构** activation/softmax_grad/op_host/arch35/softmax_grad_tiling_base.cpp 中 GetPlatformInfo() 方法: - 将 reinterpret_cast<const SoftmaxGradCompileInfo*>(context_->GetCompileInfo()) 替换为 context->GetCompileInfo<SoftmaxGradCompileInfo>() - 使用类型安全的模板 API 替代不安全的强制类型转换 **3. 其他变更** - 新增 .opencode/opencode.json(opencode 工具配置文件) ## 关联的Issue - #4469 ## 测试 - 验证各算子 binary JSON 配置文件格式正确性 - 验证 FormatAgnostic 模式下算子能够正确匹配不同格式的输入/输出张量 - 验证 softmax_grad 编译信息获取接口重构后功能正常 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8083 | 20 天前 | |
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 | 20 天前 | |
新增算子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 | 1 个月前 | |
修改aclnn中的乱码 Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !8373 merge master into master 修改aclnn中的乱码 Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 文档中存在乱码 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4632 ## 测试 NA ## 文档更新 activation/celu_v2/docs/aclnnCelu&aclnnInplaceCelu.md activation/elu_grad_v2/docs/aclnnEluBackward.md matmul/quant_matmul_dequant/docs/aclnnQuantMatmulDequant.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8373 | 1 个月前 | |
修复算子文档格式与示例代码规范问题 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 | 1 个月前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
激活和量化算子的示例中的输出类型不匹配 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 | 30 天前 | |
新增算子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 | 1 个月前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
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 | 20 天前 | |
新增算子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 | 1 个月前 | |
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 | 1 个月前 | |
feat(hard_shrink): def 驱动 dtype + abs/le 公式对齐竞品 Co-authored-by: leaving__<B24040621@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !8756 merge feat/hard_shrink-def-driven-dtype-abs-le into master feat(hard_shrink): def 驱动 dtype + abs/le 公式对齐竞品 Created-by: leaving__ Commit-by: leaving__ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4871 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8756 | 20 天前 | |
修改乱码 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 | 1 个月前 | |
fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !8577 merge master into master fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子按照新的golden要求,优化golden代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub:golden验证OK,已完成相应算子的泛化用例验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8577 | 26 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !8577 merge master into master fix(update Ascend950 golden specs):HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子golden优化 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub算子按照新的golden要求,优化golden代码 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> HardSwishGradV2,HardSigmoid,ApplyAdagrad,InplaceSub:golden验证OK,已完成相应算子的泛化用例验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8577 | 26 天前 | |
修复算子文档格式与示例代码规范问题 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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
新增算子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 | 1 个月前 | |
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 | 20 天前 | |
feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Co-authored-by: zhuzixian-lr<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8083 merge softmax_bin into master feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Created-by: zhuzixian-lr Commit-by: zhuzixian-lr Merged-by: cann-robot Description: ## 描述 本 PR 为 softmax 和 group_norm 系列算子在 ascend950 平台的 binary JSON 配置中添加 format_match_mode: FormatAgnostic 格式匹配模式,使这些算子能够以格式无关方式接收输入/输出张量。同时重构 softmax_grad 算子的编译信息获取接口,将 reinterpret_cast 强制类型转换替换为类型安全的模板 API。 ### 改动原因 当前 softmax/group_norm 系列算子的 ascend950 binary JSON 配置未设置 format_match_mode,在格式匹配时存在限制。仓库中其他算子(如 relu_grad_v2、gelu_grad、log_sigmoid_grad、hard_swish_grad_v2、swiglu_group 等)已广泛使用 FormatAgnostic 模式,本 PR 将该模式统一扩展至 softmax/group_norm 系列,保持一致性。 ### 改动方法 **1. Binary JSON 配置变更(6 个算子,ascend950 平台)** 为以下算子的所有输入和输出张量添加 "format_match_mode": "FormatAgnostic" 字段: | 算子 | 配置文件 | binary 变体数 | 数据类型 | 张量数 | |------|----------|:---:|------|:---:| | ConfusionSoftmaxGrad | activation/confusion_softmax_grad/op_host/config/ascend950/confusion_softmax_grad_binary.json | 3 | bfloat16 / float16 / float32 | 9 | | LogSoftmaxGrad | activation/log_softmax_grad/op_host/config/ascend950/log_softmax_grad_binary.json | 3 | float16 / bfloat16 / float32 | 9 | | SoftmaxGrad | activation/softmax_grad/op_host/config/ascend950/softmax_grad_binary.json | 3 | float16 / float32 / bfloat16 | 9 | | SoftmaxV2 | activation/softmax_v2/op_host/config/ascend950/softmax_v2_binary.json | 4 | bfloat16 / float16 / float16_to_float32 / float32 | 8 | | GroupNormGrad | norm/group_norm_grad/op_host/config/ascend950/group_norm_grad_binary.json | 5 | fp32 / fp16 / bf16 / fp16_f32 / bf16_f32 | 40 | | GroupNormV2 | norm/group_norm_v2/op_host/config/ascend950/group_norm_v2_binary.json | 5 | fp16 / fp32 / bf16 / bf16_f32 / fp16_f32 | 30 | 共 105 个张量条目添加了 FormatAgnostic 格式匹配模式。 **2. C++ 接口重构** activation/softmax_grad/op_host/arch35/softmax_grad_tiling_base.cpp 中 GetPlatformInfo() 方法: - 将 reinterpret_cast<const SoftmaxGradCompileInfo*>(context_->GetCompileInfo()) 替换为 context->GetCompileInfo<SoftmaxGradCompileInfo>() - 使用类型安全的模板 API 替代不安全的强制类型转换 **3. 其他变更** - 新增 .opencode/opencode.json(opencode 工具配置文件) ## 关联的Issue - #4469 ## 测试 - 验证各算子 binary JSON 配置文件格式正确性 - 验证 FormatAgnostic 模式下算子能够正确匹配不同格式的输入/输出张量 - 验证 softmax_grad 编译信息获取接口重构后功能正常 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8083 | 20 天前 | |
docs: add batch invariant descriptions Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !8642 merge docs/batch-invariant-description into master docs: add batch invariant descriptions Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 描述 补充Ascend 950 Batch一致性文档说明: - aclnnSoftmax、aclnnLogSoftmax、aclnnNorm和aclnnLinalgVectorNorm默认非Batch一致性实现,支持通过aclrtSetSysParamOpt(ACL_OPT_DETERMINISTIC, 3)开启Batch一致性。 - 开启后,非归约轴的计算结果与所在批次大小、位置无关;归约轴不支持Batch一致性。 - 开启Batch一致性后,性能可能存在劣化。 - Batch一致性说明作为独立约束补充,不修改现有确定性计算说明。 本PR仅修改接口文档,不涉及算子Tiling、Kernel和示例代码变更。 ## 关联的Issue 无。 ## 测试 - git diff --check:通过。 - pre-commit:通过。 - codespell:通过。 - OAT Compliance Check:通过。 - GitCode Git Hooks:通过。 - 本次仅修改文档,未执行NPU运行测试。 ## 文档更新 - activation/softmax_v2/docs/aclnnSoftmax.md - activation/log_softmax_v2/docs/aclnnLogSoftmax.md - norm/lp_norm_v2/docs/aclnnNorm.md - norm/lp_norm_v2/docs/aclnnLinalgVectorNorm.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8642 | 21 天前 | |
新增算子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 | 1 个月前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 1 个月前 | |
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 | 19 天前 | |
修复 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 | 20 天前 | |
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 | 27 天前 | |
新增算子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 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 1 个月前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 1 个月前 | |
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 | 1 个月前 | |
fix(selu_grad): 校验输入dtype一致性 Co-authored-by: zhongheng<m202474569@hust.edu.cn> # message auto-generated for no-merge-commit merge: !8677 merge master into master fix(selu_grad): 校验输入dtype一致性 Created-by: zhongheng Commit-by: zhongheng Merged-by: cann-robot Description: ## 描述 修复SeluGrad未校验输入dtype一致性的问题。 主要改动: 1. 在Ascend950 Tiling中读取gradients和outputs的TensorDesc,校验两个输入dtype相同;不一致时返回GRAPH_FAILED。 2. 在aclnnSeluBackward参数检查中校验gradOutput、result和gradInput的dtype一致性。 3. 新增Ascend950 Tiling UT,覆盖相同dtype正常通过,以及两个均受支持但不一致的dtype组合被拒绝。 4. 调整ACLNN dtype异常用例,使用FLOAT与FLOAT16两个受支持dtype,确保用例命中“dtype不一致”约束,而不是“不支持dtype”约束。 本PR不包含int32精度优化,不修改Kernel计算链和Golden。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4791 ## 测试 - SeluGrad Ascend950 Tiling UT:2/2通过 - SeluGrad op_api UT:13/13通过 - 冒烟通过 ## 文档更新 未修改 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8677 | 20 天前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
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 | 20 天前 | |
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 | 20 天前 | |
新增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 | 21 天前 | |
新增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 | 21 天前 | |
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 | 1 个月前 | |
refactor: rename APIs in ops-nn batch4 (10 ops) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !8569 merge rename-api-batch4 into master refactor: rename APIs in ops-nn batch4 (10 ops) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 对 ops-nn 仓 10 个算子的 arch35 kernel 进行 AscendC MicroAPI 重命名整改,涉及以下 API 映射: - __local_mem__ → __ubuf__(地址空间限定符) - DataCopy(load 方向) → LoadAlign - DataCopy(store 方向) → StoreAlign - ReduceSum → Reduce<ReduceType::SUM> - DataCopyUnAlign → StoreUnAlign - DataCopyUnAlignPost → StoreUnAlignPost - UnalignReg → UnalignRegForStore / UnalignRegForLoad 涉及算子(10 个): - activation/softmax_cross_entropy_with_logits - activation/softmax_grad - activation/softmax_v2 - loss/nll_loss - loss/sparse_softmax_cross_entropy_with_logits - norm/rms_norm - norm/rms_norm_dynamic_mx_quant - norm/rms_norm_grad - norm/rms_norm_grad_quant - norm/rms_norm_quant_v2 共修改 38 个 arch35 kernel 头文件,纯 API 重命名,无逻辑变更。 ## 关联的Issue ## 测试 纯 API 重命名整改,编译验证通过;无新增测试用例。 ## 文档更新 无需更新文档。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8569 | 25 天前 | |
feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Co-authored-by: zhuzixian-lr<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8083 merge softmax_bin into master feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Created-by: zhuzixian-lr Commit-by: zhuzixian-lr Merged-by: cann-robot Description: ## 描述 本 PR 为 softmax 和 group_norm 系列算子在 ascend950 平台的 binary JSON 配置中添加 format_match_mode: FormatAgnostic 格式匹配模式,使这些算子能够以格式无关方式接收输入/输出张量。同时重构 softmax_grad 算子的编译信息获取接口,将 reinterpret_cast 强制类型转换替换为类型安全的模板 API。 ### 改动原因 当前 softmax/group_norm 系列算子的 ascend950 binary JSON 配置未设置 format_match_mode,在格式匹配时存在限制。仓库中其他算子(如 relu_grad_v2、gelu_grad、log_sigmoid_grad、hard_swish_grad_v2、swiglu_group 等)已广泛使用 FormatAgnostic 模式,本 PR 将该模式统一扩展至 softmax/group_norm 系列,保持一致性。 ### 改动方法 **1. Binary JSON 配置变更(6 个算子,ascend950 平台)** 为以下算子的所有输入和输出张量添加 "format_match_mode": "FormatAgnostic" 字段: | 算子 | 配置文件 | binary 变体数 | 数据类型 | 张量数 | |------|----------|:---:|------|:---:| | ConfusionSoftmaxGrad | activation/confusion_softmax_grad/op_host/config/ascend950/confusion_softmax_grad_binary.json | 3 | bfloat16 / float16 / float32 | 9 | | LogSoftmaxGrad | activation/log_softmax_grad/op_host/config/ascend950/log_softmax_grad_binary.json | 3 | float16 / bfloat16 / float32 | 9 | | SoftmaxGrad | activation/softmax_grad/op_host/config/ascend950/softmax_grad_binary.json | 3 | float16 / float32 / bfloat16 | 9 | | SoftmaxV2 | activation/softmax_v2/op_host/config/ascend950/softmax_v2_binary.json | 4 | bfloat16 / float16 / float16_to_float32 / float32 | 8 | | GroupNormGrad | norm/group_norm_grad/op_host/config/ascend950/group_norm_grad_binary.json | 5 | fp32 / fp16 / bf16 / fp16_f32 / bf16_f32 | 40 | | GroupNormV2 | norm/group_norm_v2/op_host/config/ascend950/group_norm_v2_binary.json | 5 | fp16 / fp32 / bf16 / bf16_f32 / fp16_f32 | 30 | 共 105 个张量条目添加了 FormatAgnostic 格式匹配模式。 **2. C++ 接口重构** activation/softmax_grad/op_host/arch35/softmax_grad_tiling_base.cpp 中 GetPlatformInfo() 方法: - 将 reinterpret_cast<const SoftmaxGradCompileInfo*>(context_->GetCompileInfo()) 替换为 context->GetCompileInfo<SoftmaxGradCompileInfo>() - 使用类型安全的模板 API 替代不安全的强制类型转换 **3. 其他变更** - 新增 .opencode/opencode.json(opencode 工具配置文件) ## 关联的Issue - #4469 ## 测试 - 验证各算子 binary JSON 配置文件格式正确性 - 验证 FormatAgnostic 模式下算子能够正确匹配不同格式的输入/输出张量 - 验证 softmax_grad 编译信息获取接口重构后功能正常 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8083 | 20 天前 | |
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 | 20 天前 | |
feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Co-authored-by: zhuzixian-lr<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !8083 merge softmax_bin into master feat: softmax/group_norm 系列算子添加 FormatAgnostic 格式匹配模式并重构 softmax_grad 编译信息获取接口 Created-by: zhuzixian-lr Commit-by: zhuzixian-lr Merged-by: cann-robot Description: ## 描述 本 PR 为 softmax 和 group_norm 系列算子在 ascend950 平台的 binary JSON 配置中添加 format_match_mode: FormatAgnostic 格式匹配模式,使这些算子能够以格式无关方式接收输入/输出张量。同时重构 softmax_grad 算子的编译信息获取接口,将 reinterpret_cast 强制类型转换替换为类型安全的模板 API。 ### 改动原因 当前 softmax/group_norm 系列算子的 ascend950 binary JSON 配置未设置 format_match_mode,在格式匹配时存在限制。仓库中其他算子(如 relu_grad_v2、gelu_grad、log_sigmoid_grad、hard_swish_grad_v2、swiglu_group 等)已广泛使用 FormatAgnostic 模式,本 PR 将该模式统一扩展至 softmax/group_norm 系列,保持一致性。 ### 改动方法 **1. Binary JSON 配置变更(6 个算子,ascend950 平台)** 为以下算子的所有输入和输出张量添加 "format_match_mode": "FormatAgnostic" 字段: | 算子 | 配置文件 | binary 变体数 | 数据类型 | 张量数 | |------|----------|:---:|------|:---:| | ConfusionSoftmaxGrad | activation/confusion_softmax_grad/op_host/config/ascend950/confusion_softmax_grad_binary.json | 3 | bfloat16 / float16 / float32 | 9 | | LogSoftmaxGrad | activation/log_softmax_grad/op_host/config/ascend950/log_softmax_grad_binary.json | 3 | float16 / bfloat16 / float32 | 9 | | SoftmaxGrad | activation/softmax_grad/op_host/config/ascend950/softmax_grad_binary.json | 3 | float16 / float32 / bfloat16 | 9 | | SoftmaxV2 | activation/softmax_v2/op_host/config/ascend950/softmax_v2_binary.json | 4 | bfloat16 / float16 / float16_to_float32 / float32 | 8 | | GroupNormGrad | norm/group_norm_grad/op_host/config/ascend950/group_norm_grad_binary.json | 5 | fp32 / fp16 / bf16 / fp16_f32 / bf16_f32 | 40 | | GroupNormV2 | norm/group_norm_v2/op_host/config/ascend950/group_norm_v2_binary.json | 5 | fp16 / fp32 / bf16 / bf16_f32 / fp16_f32 | 30 | 共 105 个张量条目添加了 FormatAgnostic 格式匹配模式。 **2. C++ 接口重构** activation/softmax_grad/op_host/arch35/softmax_grad_tiling_base.cpp 中 GetPlatformInfo() 方法: - 将 reinterpret_cast<const SoftmaxGradCompileInfo*>(context_->GetCompileInfo()) 替换为 context->GetCompileInfo<SoftmaxGradCompileInfo>() - 使用类型安全的模板 API 替代不安全的强制类型转换 **3. 其他变更** - 新增 .opencode/opencode.json(opencode 工具配置文件) ## 关联的Issue - #4469 ## 测试 - 验证各算子 binary JSON 配置文件格式正确性 - 验证 FormatAgnostic 模式下算子能够正确匹配不同格式的输入/输出张量 - 验证 softmax_grad 编译信息获取接口重构后功能正常 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8083 | 20 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
修改README中关联的aclnn Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !8391 merge master into master 修改README中关联的aclnn Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 修改README中关联的aclnn ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4638 ## 测试 NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8391 | 1 个月前 | |
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 | 1 个月前 | |
fix(softsign):修复精度问题,修复空tensor问题 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !8479 merge fix_softsign into master fix(softsign):修复精度问题,修复空tensor问题 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 修复 Ascend950 Softsign 的低精度计算和空 Tensor kernel 直调问题,使实现逻辑与 TensorFlow tf.nn.softsign 对齐。 ### 问题原因 1. 原 FP16/BF16 路径将输入提升到 FP32 后,在 FP32 中完成 abs(x) + 1 和除法,直到最终输出才回落到原 dtype,缺少 TensorFlow 低精度路径中的中间舍入。 2. 空 Tensor 的 blockNum 为 0,但 Kernel 仍进入 ElementwiseSch,导致无有效任务时停留在动态性能采集阶段。 ### 修改内容 - 新增 GraphSoftsignLowPrecision:FP16/BF16 在 abs(x) + 1 后显式窄化回输入 dtype,再拓宽进行除法,保留 TensorFlow 对应的舍入点。 - 新增 GraphSoftsignByDtype:FP32 继续使用原计算图,FP16/BF16 使用低精度对齐计算图。 - Host Tiling 与 Kernel 统一通过 dtype 选择相同 DAG,保证 Tiling 资源估算和 Kernel 执行图一致。 - Kernel 在 tilingData.baseTiling.blockNum == 0 时直接返回,避免空 Tensor 进入 Elementwise 调度。 本 PR 共修改 3 个文件,新增 44 行、删除 8 行;FP32 计算路径保持不变。 ## 关联的Issue 关联 Issue [#4673](https://gitcode.com/cann/ops-nn/issues/4673) ## 测试 - 构建验证: - bash build.sh --ops=softsign --soc=ascend950 --opkernel -j8 - bash build.sh --ops=softsign --soc=ascend950 --pkg -j8 - TTK kernel 直调,Golden 实际调用 TensorFlow 2.16.1 tf.nn.softsign;BF16 直接使用 tf.bfloat16 计算。 - 正式 500 条用例采用严格 --compare close:500/500 PASS,无失败、无跳过。 - FP32:167/167 PASS - FP16:167/167 PASS - BF16:166/166 PASS - 精度、内存越界和性能状态均为 500/500 PASS,逐元素精度均为 100%。 - 标量专项:FP32/FP16/BF16 3/3 PASS。 - 真空 Tensor (0,) 专项:FP32/FP16/BF16 3/3 PASS,输出 shape/dtype 保持不变,kernel 正常结束。 ## 文档更新 - 更新 softsign_dag.h 中 FP16/BF16 数据流和 TensorFlow 舍入语义说明。 - 无用户接口或公开 API 文档变更。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8479 | 26 天前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 20 天前 | |
处理swiglu_group和swiglu_group_quant的自动反向未在dispatcher层注册的问题 Co-authored-by: liuhongpeng<liuhongpeng2@h-partners.com> # message auto-generated for no-merge-commit merge: !8389 merge sgqg into master 处理swiglu_group和swiglu_group_quant的自动反向未在dispatcher层注册的问题 Created-by: liu_hp711 Commit-by: liuhongpeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> swiglu_group和swiglu_group_quant的自动反向未在dispatcher层,导致在跑图模式情况下自动反向部分场景出现问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4636 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自动反向功能的单算子和图模式验证OK,ST用例OK,冒烟OK。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8389 | 26 天前 | |
处理swiglu_group和swiglu_group_quant的自动反向未在dispatcher层注册的问题 Co-authored-by: liuhongpeng<liuhongpeng2@h-partners.com> # message auto-generated for no-merge-commit merge: !8389 merge sgqg into master 处理swiglu_group和swiglu_group_quant的自动反向未在dispatcher层注册的问题 Created-by: liu_hp711 Commit-by: liuhongpeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> swiglu_group和swiglu_group_quant的自动反向未在dispatcher层,导致在跑图模式情况下自动反向部分场景出现问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4636 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自动反向功能的单算子和图模式验证OK,ST用例OK,冒烟OK。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8389 | 26 天前 | |
修复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 | 25 天前 | |
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 | 20 天前 | |
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 | 20 天前 | |
docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Co-authored-by: xuejinghui<xuejinghui@huawei.com> # message auto-generated for no-merge-commit merge: !8571 merge doc into master docs: 更新16个算子README,新增支持Atlas A2/A3系列产品 Created-by: xuejinghui Commit-by: xuejinghui Merged-by: cann-robot Description: ## 描述 更新16个算子README,新增支持Atlas A2/A3系列产品 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4785 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8571 | 24 天前 | |
解决threshold_grad_v2_d输入为nan时的精度问题 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !8553 merge master into master 解决threshold_grad_v2_d输入为nan时的精度问题 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 输入为nan,精度和竞品不一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4736 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8553 | 26 天前 | |
新增算子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 | 1 个月前 | |
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 | 8 个月前 | |
新增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 | 21 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 21 天前 | ||
| 24 天前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 21 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 19 天前 | ||
| 20 天前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 21 天前 | ||
| 21 天前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 26 天前 | ||
| 26 天前 | ||
| 25 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 24 天前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 21 天前 |