| 删除查看源码 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !12004 merge master into master 删除查看源码 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 删除查看源码 ## 关联的Issue 关联Issue [#6694](https://gitcode.com/cann/ops-nn/issues/6694) ## 测试 无需测试 ## 文档更新 删除文档中的查看源码链接 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!12004 | 16 天前 |
| format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 |
| 代码同步 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !450 merge master into master 代码同步 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!450 | 10 个月前 |
| feat(arch35): add Ascend 950 support for Adam optimizer operators Co-authored-by: daiwei18<daiwei18@huawei.com> # message auto-generated for no-merge-commit merge: !8078 merge 930-optim into master feat(arch35): add Ascend 950 support for Adam optimizer operators Created-by: daiwei18 Commit-by: daiwei18 Merged-by: cann-robot Description: ## 描述 - 为 ApplyAdamWQuant 增加 arch35/Ascend 950 tiling、kernel、binary 配置和测试覆盖。 - 新增 ApplyAdamWithAmsgrad 算子目录,包含 proto、host、kernel、Ascend950 配置、示例和 UT。 - 修复 ApplyAdamWQuant 公共 tiling 头文件命名和 UT tiling 类型对齐问题。 - 补充 README、aclnn 文档和 golden 资产,完善算子提交材料。 ## 关联的Issue 关联Issue #4461 https://gitcode.com/cann/ops-nn/issues/4461 ## 测试 - 新增/更新 ApplyAdamWQuant、ApplyAdamWithAmsgrad arch35 op_host/op_kernel UT。 - ApplyAdamWQuant golden 入口本地可执行;dtype 与校验反例覆盖已补充。 - 本地执行 clang-format 18.1.8 --dry-run --Werror,改动 C/C++ 文件格式检查通过。 - 精度、泛化和性能结果随转测补充。 ## 文档更新 - 更新 ApplyAdamWQuant 文档,并新增 ApplyAdamWithAmsgrad README/示例说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8078 | 2 个月前 |
| feat(arch35): add Ascend 950 support for Adam optimizer operators Co-authored-by: daiwei18<daiwei18@huawei.com> # message auto-generated for no-merge-commit merge: !8078 merge 930-optim into master feat(arch35): add Ascend 950 support for Adam optimizer operators Created-by: daiwei18 Commit-by: daiwei18 Merged-by: cann-robot Description: ## 描述 - 为 ApplyAdamWQuant 增加 arch35/Ascend 950 tiling、kernel、binary 配置和测试覆盖。 - 新增 ApplyAdamWithAmsgrad 算子目录,包含 proto、host、kernel、Ascend950 配置、示例和 UT。 - 修复 ApplyAdamWQuant 公共 tiling 头文件命名和 UT tiling 类型对齐问题。 - 补充 README、aclnn 文档和 golden 资产,完善算子提交材料。 ## 关联的Issue 关联Issue #4461 https://gitcode.com/cann/ops-nn/issues/4461 ## 测试 - 新增/更新 ApplyAdamWQuant、ApplyAdamWithAmsgrad arch35 op_host/op_kernel UT。 - ApplyAdamWQuant golden 入口本地可执行;dtype 与校验反例覆盖已补充。 - 本地执行 clang-format 18.1.8 --dry-run --Werror,改动 C/C++ 文件格式检查通过。 - 精度、泛化和性能结果随转测补充。 ## 文档更新 - 更新 ApplyAdamWQuant 文档,并新增 ApplyAdamWithAmsgrad README/示例说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8078 | 2 个月前 |
| fix: 修复 10 算子 TTK golden 参考实现的输出 dtype 与 fp64 精度处理缺陷 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !11042 merge goldenMod into master fix: 修复 10 算子 TTK golden 参考实现的输出 dtype 与 fp64 精度处理缺陷 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 本 MR 修正 loss / norm / optim / quant 共 10 个算子的 TTK golden 参考实现(<算子>/tests/assets/golden.py),使 golden 严格按用例声明的输出 dtype(output_dtypes)生成真值,并在 TTK Promote 提供 fp64 时保留 fp64 计算精度。仅修改测试参考实现(纯 Python,numpy/torch 计算),不涉及 kernel / op_host 代码。 ### 改动原因 1. **忽略用例声明的输出 dtype(output_dtypes)**:次级输出被硬编码为 float32,不看声明。典型如 norm/deep_norm/tests/assets/golden.py:旧实现 _compute_deep_norm 直接将 mean/rstd 强制 .to(torch.float32),deep_norm_golden 只从 output_dtypes[2] 取 y 的 dtype,output_dtypes[0]/[1](mean/rstd 声明)被忽略;norm/batch_norm3_d、norm/batch_norm3_d_grad、norm/batch_norm_grad_ext2 的 batch_mean/saved_var/saved_rstd/dscale/doffset、optim/apply_adam_w_quant 的 absmax_m/absmax_v、quant/dynamic_quant_update_scatter(_v2) 的 scale/offset 同样被强制 float32。 2. **把 TTK Promote 的 fp64 精度截回 fp32**:golden 内部一律经 astype(np.float32) / .to(torch.float32)(_to_f32 / _to_torch_float32 / _to_numpy_float32 及一系列 dtype=np.float32 的归约助手),TTK Promote 送入的 fp64 输入被降为 fp32,cross_check 真值被截回 fp32(修复后代码注释对应 "retaining fp64 (TTK Promote) so the true value is not cut back to fp32")。 ### 改动方法 - **统一计算 dtype 入口**:_to_f32 → _to_compute(apply_adam_w_quant / apply_came_part4)、_to_torch_float32/_to_numpy_float32 → _to_torch_compute/_to_numpy_compute(deep_norm_grad)、_to_torch(x, dtype=float32) 改为保持输入自身 dtype(dynamic_quant_update_scatter)。语义:fp64 原样保留,fp16/bf16 提升到 fp32。 - **归约/累加助手改为输入 dtype 驱动**:batch_norm3_d_grad / batch_norm_grad_ext2 的 _sum_fp32、_sum_seq_fp32、_binary_fold_sum、_ra_split_r_channel_sum、_sum_pairwise_fp32、_chunk32_pair_channel_sum、_chunk_channel_sum、_ascend_like_channel_sum 由 np.float32 改为 x.dtype;deep_norm_grad 的 _reduce_sum_vl、_reduce_sum_regbase(_1d)、_reduce_sum_rows、_reduce_sum_rows_fp64 改为 values.dtype 驱动;新增 _compute_dtype() 判定(fp64 输入 → 全程 fp64,否则 fp32)。 - **按声明输出 dtype 生成输出**:新增 _output_dtype(kwargs, index, default) 从 TTK 传入的 output_dtypes 取声明 dtype(缺省 float32)。应用于 mean/rstd(deep_norm、deep_norm_grad)、batch_mean/saved_var/saved_rstd(batch_norm3_d)、dscale/doffset(batch_norm3_d_grad、batch_norm_grad_ext2)、dbeta/dgamma(deep_norm_grad)、absmax_m/absmax_v(apply_adam_w_quant,改为保持计算 dtype)、scale(dynamic_quant_update_scatter,改用 var_scale 实际 dtype)、out_scale/out_offset(_v2,保持原 dtype,去掉 np.float32 强制转换)。 - **常量与超参对齐计算 dtype**:apply_adam_w_quant 的 one/lr/beta1/beta2/weight_decay/eps/gnorm_scale、dynamic_quant_update_scatter 的 QUANT_MAX、_v2 的 INT4_SCALE_RANGE/INT4_QUANT_MAX/QUANT_EPSILON、batch_norm*_grad 的 reduce_count/epsilon 标量等改用 compute dtype。 - **cosine_embedding_loss**:计算 dtype 用 torch.promote_types(torch.float32, a.dtype) 并再与声明输出 dtype 提升;整数输入经 _to_compute_tensor 提升到计算 dtype;归约不再强制 dtype=torch.float32;reduction 结果按 out_dtype 输出。 - **batch_norm3_d**:__spec__ / __golden__ 增加算子名别名 batch_norm3_d(原仅注册 batch_norm3d)。 - **apply_came_part4**:_dtype_of 支持 float64;customize_inputs 增加 **kwargs 并使返回顺序与函数签名一致(sum_r 移至 sum_u_rc 之后);移除 __input__ 注册。 - **dynamic_quant_update_scatter / _v2**:_compute_dtype 由输入与声明输出 dtype 联合提升;量化写回不再经 np.float32 截断。 | # | 算子 | 文件 | +/− | |---|------|------|-----| | 1 | loss/cosine_embedding_loss | tests/assets/golden.py | +54/−18 | | 2 | norm/batch_norm3_d | tests/assets/golden.py | +36/−6 | | 3 | norm/batch_norm3_d_grad | tests/assets/golden.py | +53/−29 | | 4 | norm/batch_norm_grad_ext2 | tests/assets/golden.py | +53/−29 | | 5 | norm/deep_norm | tests/assets/golden.py | +7/−3 | | 6 | norm/deep_norm_grad | tests/assets/golden.py | +82/−55 | | 7 | optim/apply_adam_w_quant | tests/assets/golden.py | +45/−19 | | 8 | optim/apply_came_part4 | tests/assets/golden.py | +29/−21 | | 9 | quant/dynamic_quant_update_scatter | tests/assets/golden.py | +41/−10 | | 10 | quant/dynamic_quant_update_scatter_v2 | tests/assets/golden.py | +30/−13 | | | **合计** | **10 个文件** | **+430/−203** | ## 关联的Issue - #6449 ## 测试 本 MR 仅修改 TTK golden 参考实现(纯 Python,numpy/torch 计算,无 kernel / op_host 代码变更),建议按仓库 TTK ST 流程验证(需 Linux + CANN + Ascend 环境): bash cd /path/to/ops-test-kit REPO=/path/to/ops-nn # 仓内已提供用例的 3 个算子 python3 -m ttk kernel -i "$REPO/norm/deep_norm/tests/st/arch35/ttk_kernel_deep_norm_generalization.csv" \ --plugin "$REPO/norm/deep_norm/tests/assets/golden.py" python3 -m ttk kernel -i "$REPO/quant/dynamic_quant_update_scatter/tests/st/arch35/ttk_kernel_dynamic_quant_update_scatter_st.csv" \ --plugin "$REPO/quant/dynamic_quant_update_scatter/tests/assets/golden.py" python3 -m ttk kernel -i "$REPO/quant/dynamic_quant_update_scatter_v2/tests/st/arch35/ttk_kernel_dynamic_quant_update_scatter_v2_st.csv" \ --plugin "$REPO/quant/dynamic_quant_update_scatter_v2/tests/assets/golden.py" 检查点: - 各输出 dtype 与用例 output_dtypes 声明一致(如 deep_norm fp16 用例 ('float32','float32','float16')); - fp64 Promote 用例的 cross_check 真值保持 fp64,不被截回 fp32; - 既有 float16/bfloat16 用例的容差与判定不变。 ## 文档更新 本 MR 未包含文档修改。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!11042 | 21 天前 |
| 代码同步 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !450 merge master into master 代码同步 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!450 | 10 个月前 |
| 产品名称修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !11292 merge master into master 产品名称修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 产品名称修改 ## 关联的Issue 关联Issue [#6089](https://gitcode.com/cann/ops-nn/issues/6089) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11292 | 1 个月前 |