| 新增 matrix_diag_part_v3 和 matrix_diag_v3 两个 AICPU 算子
Co-authored-by: Ding_Jing<dingjing19@huawei.com>
# message auto-generated for no-merge-commit merge:
!2408 merge add_matrix_0423 into master
新增 matrix_diag_part_v3 和 matrix_diag_v3 两个 AICPU 算子
Created-by: Ding_Jing
Commit-by: Ding_Jing
Merged-by: cann-robot
Description: ## 描述
新增 matrix_diag_part_v3 和 matrix_diag_v3 两个 AICPU 算子,实现对矩阵对角线的提取和构造功能。
### 变更内容
1. **matrix_diag_part_v3**: 提取矩阵的对角线元素
- 新增算子原型定义 (op_graph)
- 新增 AICPU kernel 实现
- 新增单元测试
- 新增示例代码
2. **matrix_diag_v3**: 根据对角线元素构造矩阵
- 新增算子原型定义 (op_graph)
- 新增 AICPU kernel 实现
- 新增单元测试
- 新增示例代码
3. 更新算子列表文档 (docs/zh/op_list.md)
## 关联的Issue
#1409
## 测试
根据代码变更,测试场景如下:
1. **单元测试**
- matrix_diag_part_v3: tests/ut/op_kernel_aicpu/test_matrix_diag_part_v3.cpp
- matrix_diag_v3: tests/ut/op_kernel_aicpu/test_matrix_diag_v3.cpp
- 执行单元测试验证算子功能正确性
2. **功能验证**
- 运行示例代码验证算子基本功能
- matrix_diag_part_v3: examples/test_geir_matrix_diag_part_v3.cpp
- matrix_diag_v3: examples/test_geir_matrix_diag_v3.cpp
```
[2026-04-29 12:50:50] previous kernel: registered at ../aten/src/ATen/VmapModeRegistrations.cpp:37
[2026-04-29 12:50:50] new kernel: registered at torch_npu/csrc/aten/RegisterNPU.cpp:18255 (function registerKernel)
[2026-04-29 12:50:52] 2026-04-29 12:50:52,000 - INFO - [XIR]: Output: [(9,-1), (9,-1), (1,2), (9,-1), (9,-1), (3,4)]
[2026-04-29 12:50:52] 2026-04-29 12:50:52,000 - INFO - [XIR]: MatrixDiagV3 example passed
[2026-04-29 12:51:25] 2026-04-29 12:51:25,000 - INFO - [XIR]: Output: [(1,1), (5,0), (9,-3)]
[2026-04-29 12:51:25] 2026-04-29 12:51:25,000 - INFO - [XIR]: MatrixDiagPartV3 example passed
[2026-04-29 12:51:27] run test_geir_matrix_diag_part_v3, execute samples success
```
3. **编译构建测试**
- 验证 CMake 配置正确,算子能正确构建
- 验证自定义算子包能正常安装
## 文档更新
- 新增 conversion/matrix_diag_part_v3/README.md
- 新增 conversion/matrix_diag_v3/README.md
- 更新 docs/zh/op_list.md,添加新算子说明
## 类型标签
- [ ] Bug修复
- [x] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/ops-math!2408 | 1 个月前 |