| 补齐torchapi产品标签注释对 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !8537 merge master into master 补齐torchapi产品标签注释对 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补齐torchapi产品标签注释对 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4551](https://gitcode.com/cann/ops-nn/issues/4551) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已自验 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> torchapi_*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8537 | 1 个月前 |
| 新增swiglu_group_grad算子 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !8015 merge dev_swiglu_group_grad_0728 into master 新增swiglu_group_grad算子 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 新增swiglu_group_grad算子 swiglu_group_grad 用于 MoE FFN 前向训练时,反向需要计算 ∂L/∂x,并在使用 TopK 权重融合时同时回传 ∂L/∂weight。前向涉及 SwiGLU、Clamp(gate 单侧 / up 双侧)、TopK 权重乘等多种非线性操作,反向穿过这些操作的链式法则,无法采用通用 elemwise 算子拼接得到等价梯度(Clamp 的 mask 与 SiLU 的导数耦合度高),需要一个专用融合反向算子。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4424 ## 测试 ut、白盒测试、门槛测试、性能测试、冒烟测试通过 ## 文档更新 ops-nn/quant/swiglu_group_grad/docs/aclnnSwigluGroupGrad.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8015 | 2 个月前 |
| fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Co-authored-by: qq_51545127<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8541 merge fix/swiglu-group-grad-weight-numel-check into master fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Created-by: qq_51545127 Commit-by: qq_51545127 Merged-by: cann-robot Description: ## 描述 swiglu_group_backward 原校验要求 weight.dim() == grad_output.dim() 且 weight.shape[-1] == 1,导致 flat 形态的 weight(如 [T] / [B*S])在 autograd 路径被拒绝。 kernel 实际按一维行偏移访问 weight(weightGm_[row]),只依赖元素个数,不感知逻辑 rank。前向 swiglu_group tiling 也只校验 numel == bs。反向校验与前向不一致,autograd 桥透传 flat weight 时反向校验失败。 ## 修改内容 将反向六层 weight 校验从 rank 对齐 + 末维=1 改为 **element num 校验**,跟前向 tiling 对齐: | 层 | 文件 | 改动 | |----|------|------| | Torch Meta | torch_extension/swiglu_group_grad.py | rank/逐维/末维 → element num | | C++ bridge | torch_extension/csrc/swiglu_group_grad.cpp | 同上 | | ACLNN L2 | op_api/aclnn_swiglu_group_grad.cpp | 同上 | | infershape | op_host/swiglu_group_grad_infershape.cpp | 删旧 rank 校验,加 element num 校验(跟 swiglu_group_quant_grad 对齐) | | tiling base | op_host/arch35/swiglu_group_grad_tiling_base.cpp | rank/末维/逐维 → element num | | regbase tiling | op_host/arch35/swiglu_group_grad_regbase_tiling.cpp | 同上 | 命名风格统一跟前向 swiglu_group tiling 对齐:ShapeElementNum / weightElementNum / totalRows。 grad_weight 输出形态保持 weight.new_empty(weight.shape),与输入 weight 形态一致,autograd 形态匹配天然正确。kernel 代码未改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4750 ## 测试 现有正向用例的 weight 形态从 [T,1] / [B,S,1] 改为 flat [T] / [B*S],验证 flat weight 通过各层校验: - test_swiglu_group_backward.py:weight (2,4,1) → (8,) - test_aclnn_swiglu_group_grad.cpp:weight/dWeight {4,1} → {4} - test_swiglu_group_grad_tiling.cpp:加 weightShape = {8} - test_swiglu_group_grad_infershape.cpp:加 weightShape = {4} 950 环境验证 10 个 autograd 用例全部 PASS(含 flat weight + clamp + bf16 组合)。 冒烟测试通过 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8541 | 1 个月前 |
| 新增swiglu_group_grad算子 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !8015 merge dev_swiglu_group_grad_0728 into master 新增swiglu_group_grad算子 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 新增swiglu_group_grad算子 swiglu_group_grad 用于 MoE FFN 前向训练时,反向需要计算 ∂L/∂x,并在使用 TopK 权重融合时同时回传 ∂L/∂weight。前向涉及 SwiGLU、Clamp(gate 单侧 / up 双侧)、TopK 权重乘等多种非线性操作,反向穿过这些操作的链式法则,无法采用通用 elemwise 算子拼接得到等价梯度(Clamp 的 mask 与 SiLU 的导数耦合度高),需要一个专用融合反向算子。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4424 ## 测试 ut、白盒测试、门槛测试、性能测试、冒烟测试通过 ## 文档更新 ops-nn/quant/swiglu_group_grad/docs/aclnnSwigluGroupGrad.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8015 | 2 个月前 |
| fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Co-authored-by: qq_51545127<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8541 merge fix/swiglu-group-grad-weight-numel-check into master fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Created-by: qq_51545127 Commit-by: qq_51545127 Merged-by: cann-robot Description: ## 描述 swiglu_group_backward 原校验要求 weight.dim() == grad_output.dim() 且 weight.shape[-1] == 1,导致 flat 形态的 weight(如 [T] / [B*S])在 autograd 路径被拒绝。 kernel 实际按一维行偏移访问 weight(weightGm_[row]),只依赖元素个数,不感知逻辑 rank。前向 swiglu_group tiling 也只校验 numel == bs。反向校验与前向不一致,autograd 桥透传 flat weight 时反向校验失败。 ## 修改内容 将反向六层 weight 校验从 rank 对齐 + 末维=1 改为 **element num 校验**,跟前向 tiling 对齐: | 层 | 文件 | 改动 | |----|------|------| | Torch Meta | torch_extension/swiglu_group_grad.py | rank/逐维/末维 → element num | | C++ bridge | torch_extension/csrc/swiglu_group_grad.cpp | 同上 | | ACLNN L2 | op_api/aclnn_swiglu_group_grad.cpp | 同上 | | infershape | op_host/swiglu_group_grad_infershape.cpp | 删旧 rank 校验,加 element num 校验(跟 swiglu_group_quant_grad 对齐) | | tiling base | op_host/arch35/swiglu_group_grad_tiling_base.cpp | rank/末维/逐维 → element num | | regbase tiling | op_host/arch35/swiglu_group_grad_regbase_tiling.cpp | 同上 | 命名风格统一跟前向 swiglu_group tiling 对齐:ShapeElementNum / weightElementNum / totalRows。 grad_weight 输出形态保持 weight.new_empty(weight.shape),与输入 weight 形态一致,autograd 形态匹配天然正确。kernel 代码未改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4750 ## 测试 现有正向用例的 weight 形态从 [T,1] / [B,S,1] 改为 flat [T] / [B*S],验证 flat weight 通过各层校验: - test_swiglu_group_backward.py:weight (2,4,1) → (8,) - test_aclnn_swiglu_group_grad.cpp:weight/dWeight {4,1} → {4} - test_swiglu_group_grad_tiling.cpp:加 weightShape = {8} - test_swiglu_group_grad_infershape.cpp:加 weightShape = {4} 950 环境验证 10 个 autograd 用例全部 PASS(含 flat weight + clamp + bf16 组合)。 冒烟测试通过 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8541 | 1 个月前 |
| perf(swiglu_group_grad): 网络用例性能优化 Co-authored-by: ZhouChuping<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8183 merge swiglu_gropu_grad性能优化 into master perf(swiglu_group_grad): 网络用例性能优化 Created-by: qq_52056150 Commit-by: ZhouChuping Merged-by: cann-robot Description: ## 描述 针对网络中的特定 场景,新增固定长度归约、连续搬运及编译期裁剪等优化。通过 SIMD 并行完成 NumPy pairwise 叶子归约,并保持原有 FP32 加法顺序及 Inf、NaN、溢出行为。将梯度计算、类型转换和输出写入合并,减少中间结果的 UB 读写及流水同步开销。其他 shape 继续使用通用归约和 chunk 分支,保证原有功能覆盖。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4502 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 本地验证通过,网络用例经过优化后性能均达标,obp冒烟和david冒烟均无异常。 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8183 | 1 个月前 |
| fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Co-authored-by: qq_51545127<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8541 merge fix/swiglu-group-grad-weight-numel-check into master fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Created-by: qq_51545127 Commit-by: qq_51545127 Merged-by: cann-robot Description: ## 描述 swiglu_group_backward 原校验要求 weight.dim() == grad_output.dim() 且 weight.shape[-1] == 1,导致 flat 形态的 weight(如 [T] / [B*S])在 autograd 路径被拒绝。 kernel 实际按一维行偏移访问 weight(weightGm_[row]),只依赖元素个数,不感知逻辑 rank。前向 swiglu_group tiling 也只校验 numel == bs。反向校验与前向不一致,autograd 桥透传 flat weight 时反向校验失败。 ## 修改内容 将反向六层 weight 校验从 rank 对齐 + 末维=1 改为 **element num 校验**,跟前向 tiling 对齐: | 层 | 文件 | 改动 | |----|------|------| | Torch Meta | torch_extension/swiglu_group_grad.py | rank/逐维/末维 → element num | | C++ bridge | torch_extension/csrc/swiglu_group_grad.cpp | 同上 | | ACLNN L2 | op_api/aclnn_swiglu_group_grad.cpp | 同上 | | infershape | op_host/swiglu_group_grad_infershape.cpp | 删旧 rank 校验,加 element num 校验(跟 swiglu_group_quant_grad 对齐) | | tiling base | op_host/arch35/swiglu_group_grad_tiling_base.cpp | rank/末维/逐维 → element num | | regbase tiling | op_host/arch35/swiglu_group_grad_regbase_tiling.cpp | 同上 | 命名风格统一跟前向 swiglu_group tiling 对齐:ShapeElementNum / weightElementNum / totalRows。 grad_weight 输出形态保持 weight.new_empty(weight.shape),与输入 weight 形态一致,autograd 形态匹配天然正确。kernel 代码未改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4750 ## 测试 现有正向用例的 weight 形态从 [T,1] / [B,S,1] 改为 flat [T] / [B*S],验证 flat weight 通过各层校验: - test_swiglu_group_backward.py:weight (2,4,1) → (8,) - test_aclnn_swiglu_group_grad.cpp:weight/dWeight {4,1} → {4} - test_swiglu_group_grad_tiling.cpp:加 weightShape = {8} - test_swiglu_group_grad_infershape.cpp:加 weightShape = {4} 950 环境验证 10 个 autograd 用例全部 PASS(含 flat weight + clamp + bf16 组合)。 冒烟测试通过 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8541 | 1 个月前 |
| fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Co-authored-by: qq_51545127<24171214023@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !8541 merge fix/swiglu-group-grad-weight-numel-check into master fix: 放宽 swiglu_group_grad 的 weight 形态校验为 element num Created-by: qq_51545127 Commit-by: qq_51545127 Merged-by: cann-robot Description: ## 描述 swiglu_group_backward 原校验要求 weight.dim() == grad_output.dim() 且 weight.shape[-1] == 1,导致 flat 形态的 weight(如 [T] / [B*S])在 autograd 路径被拒绝。 kernel 实际按一维行偏移访问 weight(weightGm_[row]),只依赖元素个数,不感知逻辑 rank。前向 swiglu_group tiling 也只校验 numel == bs。反向校验与前向不一致,autograd 桥透传 flat weight 时反向校验失败。 ## 修改内容 将反向六层 weight 校验从 rank 对齐 + 末维=1 改为 **element num 校验**,跟前向 tiling 对齐: | 层 | 文件 | 改动 | |----|------|------| | Torch Meta | torch_extension/swiglu_group_grad.py | rank/逐维/末维 → element num | | C++ bridge | torch_extension/csrc/swiglu_group_grad.cpp | 同上 | | ACLNN L2 | op_api/aclnn_swiglu_group_grad.cpp | 同上 | | infershape | op_host/swiglu_group_grad_infershape.cpp | 删旧 rank 校验,加 element num 校验(跟 swiglu_group_quant_grad 对齐) | | tiling base | op_host/arch35/swiglu_group_grad_tiling_base.cpp | rank/末维/逐维 → element num | | regbase tiling | op_host/arch35/swiglu_group_grad_regbase_tiling.cpp | 同上 | 命名风格统一跟前向 swiglu_group tiling 对齐:ShapeElementNum / weightElementNum / totalRows。 grad_weight 输出形态保持 weight.new_empty(weight.shape),与输入 weight 形态一致,autograd 形态匹配天然正确。kernel 代码未改动。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4750 ## 测试 现有正向用例的 weight 形态从 [T,1] / [B,S,1] 改为 flat [T] / [B*S],验证 flat weight 通过各层校验: - test_swiglu_group_backward.py:weight (2,4,1) → (8,) - test_aclnn_swiglu_group_grad.cpp:weight/dWeight {4,1} → {4} - test_swiglu_group_grad_tiling.cpp:加 weightShape = {8} - test_swiglu_group_grad_infershape.cpp:加 weightShape = {4} 950 环境验证 10 个 autograd 用例全部 PASS(含 flat weight + clamp + bf16 组合)。 冒烟测试通过 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8541 | 1 个月前 |
| 新增swiglu_group_grad算子 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !8015 merge dev_swiglu_group_grad_0728 into master 新增swiglu_group_grad算子 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 新增swiglu_group_grad算子 swiglu_group_grad 用于 MoE FFN 前向训练时,反向需要计算 ∂L/∂x,并在使用 TopK 权重融合时同时回传 ∂L/∂weight。前向涉及 SwiGLU、Clamp(gate 单侧 / up 双侧)、TopK 权重乘等多种非线性操作,反向穿过这些操作的链式法则,无法采用通用 elemwise 算子拼接得到等价梯度(Clamp 的 mask 与 SiLU 的导数耦合度高),需要一个专用融合反向算子。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4424 ## 测试 ut、白盒测试、门槛测试、性能测试、冒烟测试通过 ## 文档更新 ops-nn/quant/swiglu_group_grad/docs/aclnnSwigluGroupGrad.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8015 | 2 个月前 |
| 新增swiglu_group_grad算子 Co-authored-by: dong-yanrong<dongyanrong@h-partners.com> # message auto-generated for no-merge-commit merge: !8015 merge dev_swiglu_group_grad_0728 into master 新增swiglu_group_grad算子 Created-by: dong-yanrong Commit-by: dong-yanrong Merged-by: cann-robot Description: ## 描述 新增swiglu_group_grad算子 swiglu_group_grad 用于 MoE FFN 前向训练时,反向需要计算 ∂L/∂x,并在使用 TopK 权重融合时同时回传 ∂L/∂weight。前向涉及 SwiGLU、Clamp(gate 单侧 / up 双侧)、TopK 权重乘等多种非线性操作,反向穿过这些操作的链式法则,无法采用通用 elemwise 算子拼接得到等价梯度(Clamp 的 mask 与 SiLU 的导数耦合度高),需要一个专用融合反向算子。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4424 ## 测试 ut、白盒测试、门槛测试、性能测试、冒烟测试通过 ## 文档更新 ops-nn/quant/swiglu_group_grad/docs/aclnnSwigluGroupGrad.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8015 | 2 个月前 |