| 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 | 18 天前 |
| TF plugin 迁移2 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7586 merge nn2 into master TF plugin 迁移2 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!7586 | 2 天前 |
| [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 Co-authored-by: chen_chenn<chenchen167@huawei.com> # message auto-generated for no-merge-commit merge: !6489 merge apply_keras_momentum into master [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 Created-by: chen_chenn Commit-by: chen_chenn Merged-by: cann-robot Description: ## 描述 [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3556 --- 算子功能 ApplyKerasMomentum 执行 Keras Momentum 优化器的单步参数更新(inplace 语义),对标 TensorFlow tf.raw_ops.ResourceApplyApplyKerasMomentum。 - 输入:var、accum、grad(同 shape/dtype,FP32/FP16/BF16)+ lr、momentum、use_nesterov(标量,FP32) - 输出:var_out、accum_out(与输入共享 Device 内存) 计算公式: - accum_new = momentum * accum - lr * grad - 标准模式(use_nesterov=0):var_new = var + accum_new - Nesterov 模式(use_nesterov=1):var_new = var + momentum * accum_new - lr * grad 设计思路 目标平台:Ascend950(arch35 / DAV_3510),仅 Vector(AIV)路径。 1. TilingKey 双路径选择(按 dtype) - SCH_MODE=0(FP32):直算路径,VECIN TQue 搬入即计算 - SCH_MODE=1(FP16/BF16):升精度路径,half VECIN → Cast → FP32 VECIN → 计算 → Cast → half VECOUT,在 FP32 域完成累加以保证精度 2. Host 侧 Tiling(两级切分) - 多核切分:blockFormer 按 512 元素对齐,按数据量与核数计算 blockNum,尾核处理余量 - UB 切分:tileLength(256B 对齐)作为 blockFormer 上限,保证单核单 UB 循环,避免循环间同步开销 3. Kernel 数据流与同步 - CopyIn:DataCopyPad(DataCopyExtParams)GM→UB,EnQue/DeQue(VECIN) 提供 MTE2→Vector 同步 - Compute:DeQue 后在 FP32 域执行 Muls→Sub→Add(Nesterov 额外 Muls→Sub),Vector 指令间依赖由硬件自动同步 - CopyOut:PipeBarrier<PIPE_ALL> 保证 Vector 完成后再 DataCopyPad UB→GM - Nesterov 分支用 nesterovBuf_ 暂存 lr*grad,grad buffer 原地复用计算 delta 4. 标量输入处理 lr/momentum/use_nesterov 为标量 Tensor,Kernel Init 阶段从 GM 读取一次存入成员变量,循环内直接使用,避免每 tile 重复读 GM。 --- ## 测试 ST 通过 UT 通过 TTK 通过 david冒烟:6970 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6489 | 22 天前 |
| 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 | 18 天前 |
| 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 | 18 天前 |
| 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 | 18 天前 |
| [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 Co-authored-by: chen_chenn<chenchen167@huawei.com> # message auto-generated for no-merge-commit merge: !6489 merge apply_keras_momentum into master [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 Created-by: chen_chenn Commit-by: chen_chenn Merged-by: cann-robot Description: ## 描述 [CANNBot]新增ApplyKerasMomentum优化器算子支持Ascend950 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/3556 --- 算子功能 ApplyKerasMomentum 执行 Keras Momentum 优化器的单步参数更新(inplace 语义),对标 TensorFlow tf.raw_ops.ResourceApplyApplyKerasMomentum。 - 输入:var、accum、grad(同 shape/dtype,FP32/FP16/BF16)+ lr、momentum、use_nesterov(标量,FP32) - 输出:var_out、accum_out(与输入共享 Device 内存) 计算公式: - accum_new = momentum * accum - lr * grad - 标准模式(use_nesterov=0):var_new = var + accum_new - Nesterov 模式(use_nesterov=1):var_new = var + momentum * accum_new - lr * grad 设计思路 目标平台:Ascend950(arch35 / DAV_3510),仅 Vector(AIV)路径。 1. TilingKey 双路径选择(按 dtype) - SCH_MODE=0(FP32):直算路径,VECIN TQue 搬入即计算 - SCH_MODE=1(FP16/BF16):升精度路径,half VECIN → Cast → FP32 VECIN → 计算 → Cast → half VECOUT,在 FP32 域完成累加以保证精度 2. Host 侧 Tiling(两级切分) - 多核切分:blockFormer 按 512 元素对齐,按数据量与核数计算 blockNum,尾核处理余量 - UB 切分:tileLength(256B 对齐)作为 blockFormer 上限,保证单核单 UB 循环,避免循环间同步开销 3. Kernel 数据流与同步 - CopyIn:DataCopyPad(DataCopyExtParams)GM→UB,EnQue/DeQue(VECIN) 提供 MTE2→Vector 同步 - Compute:DeQue 后在 FP32 域执行 Muls→Sub→Add(Nesterov 额外 Muls→Sub),Vector 指令间依赖由硬件自动同步 - CopyOut:PipeBarrier<PIPE_ALL> 保证 Vector 完成后再 DataCopyPad UB→GM - Nesterov 分支用 nesterovBuf_ 暂存 lr*grad,grad buffer 原地复用计算 delta 4. 标量输入处理 lr/momentum/use_nesterov 为标量 Tensor,Kernel Init 阶段从 GM 读取一次存入成员变量,循环内直接使用,避免每 tile 重复读 GM。 --- ## 测试 ST 通过 UT 通过 TTK 通过 david冒烟:6970 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6489 | 22 天前 |
| [CANNBot]: 修正README参数说明与算子定义一致 Co-authored-by: chen_chenn<chenchen167@huawei.com> # message auto-generated for no-merge-commit merge: !7867 merge applyKerasMomentum into master [CANNBot]: 修正README参数说明与算子定义一致 Created-by: chen_chenn Commit-by: chen_chenn Merged-by: cann-robot Description: ## 描述 修正README参数说明与算子定义一致 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4274 ## 测试 ## 文档更新 https://gitcode.com/cann/ops-nn/blob/master/optim/apply_keras_momentum/README.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!7867 | 1 天前 |