| Files | Last commit | Last update |
|---|---|---|
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 27 days ago | |
新增circular_pad算子950实现 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !4888 merge master into master 新增circular_pad算子950实现 Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 新增circular_pad算子950实现 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3110 ## 测试 obp、david冒烟 ## 文档更新 README.md aclnnCircularPad2d.md aclnnCircularPad3d.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4888 | 2 months ago | |
docs: 修复注释与文档不一致(circular_pad、clip_by_value、coalesce_sparse 文件注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6597 merge docs/comment-cleanup-20261022-02 into master docs: 修复注释与文档不一致(circular_pad、clip_by_value、coalesce_sparse 文件注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正以下文件的注释与实际代码不一致问题: - conversion/circular_pad/op_api/aclnn_circular_pad2d.h:#endif 尾注释由 OP_API_INC_CIRCULAR_PAD_H_ 修正为实际保护宏 OP_API_INC_CIRCULAR_PAD2D_H_。 - conversion/circular_pad/op_api/aclnn_circular_pad3d.h:#endif 尾注释由 OP_API_INC_CIRCULAR_PAD_H_ 修正为实际保护宏 OP_API_INC_CIRCULAR_PAD3D_H_。 - conversion/clip_by_value/examples/test_geir_clip_by_value.cpp:\file 注释由 test_geir_add_n.cpp 修正为 test_geir_clip_by_value.cpp。 - conversion/coalesce_sparse/op_kernel/coalesce_sparse.h:#endif 尾注释由 COALESCE_SPARSE 修正为实际保护宏 COALESCE_SPARSE_H。 - conversion/coalesce_sparse/op_kernel/coalesce_sparse_simt.h:#endif 尾注释由 COALESCE_SPARSE_SIMT 修正为实际保护宏 COALESCE_SPARSE_SIMT_H。 此外,按仓库 pre-commit 要求,对被修改文件应用了文件末尾换行/空白/clang-format 修复(仅格式调整,不涉及业务逻辑、接口行为或配置默认值)。 ## 关联的Issue - [#3819](https://gitcode.com/cann/ops-math/issues/3819) 修复注释与文档不一致(circular_pad、clip_by_value、coalesce_sparse) ## 测试 - [x] 本地完整 pre-commit(含 clang-format、EOF/空白、OAT)通过 - [x] git diff --check(CRLF-aware)通过 - [ ] 编译/UT 未运行:本次为注释与格式调整,无代码逻辑变化 ## 文档更新 无独立文档文件更新;本次修正源文件注释,并同步仓库要求的格式问题。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## 待确认项 无。 See merge request: cann/ops-math!6597 | 19 days ago | |
新增circular_pad算子950实现 Co-authored-by: rsj007<renshuojian@huawei.com> # message auto-generated for no-merge-commit merge: !4888 merge master into master 新增circular_pad算子950实现 Created-by: rsj007 Commit-by: rsj007 Merged-by: cann-robot Description: ## 描述 新增circular_pad算子950实现 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3110 ## 测试 obp、david冒烟 ## 文档更新 README.md aclnnCircularPad2d.md aclnnCircularPad3d.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4888 | 2 months ago | |
fix(circular_pad/pad_v3_grad/pad_v4_grad/reflection_pad3d_grad): E*9***内部错误码整改为正式语义码 Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !6615 merge personal/wjc/20261020 into master fix(circular_pad/pad_v3_grad/pad_v4_grad/reflection_pad3d_grad): E*9***内部错误码整改为正式语义码 Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 对 5 个 pad 系算子(circular_pad、pad_v3_grad、pad_v4_grad、pad_v3_grad_replicate、reflection_pad3d_grad)tiling 层错误日志进行错误码规范化整改。 **改动原因**:tiling 层存在大量 plain OP_LOGE 报错,框架统一将其映射为 EZ9999(内部错误),导致用户参数使用错误(dtype 不支持、shape 维数/尺寸非法、paddings 值越界等)无法按正式错误码归类上报。 **改动方法**(对齐官方 concat !3309 整改范式,与扫描清单逐条对账,0 漏改、0 多改): - 29 处:plain OP_LOGE → OP_LOGE_FOR_INVALID_{DTYPE|SHAPEDIM|SHAPES|SHAPESIZE|VALUE}_WITH_REASON,报错包含参数名、实际值、约束说明,宏自动映射 EZ0004~EZ0038 用户参数错误码 - 6 处:底层已正式上报后的重复透传日志改 OP_LOGE_WITHOUT_REPORT,避免重复报 EZ9999 - 保留不动:空指针检查 26 处(OP_CHECK_NULL_WITH_CONTEXT 为官方标准写法,用户传 nullptr 已在 aclnn 入口被 161001 拦截)、UB/平台资源类 16 处(tiling 层无对应正式宏)、其他内部错误日志(EZ9999 语义准确) 不含格式化改动与消息增强等非错误码类修改;arch35 子目录不在本次清单范围,另行处理。 ## 关联的Issue [无](https://gitcode.com/cann/ops-math/issues/3855) ## 测试 - pre-commit 全部通过(clang-format、codespell、OAT Compliance Check) - 与扫描清单全量对账:102 条调用点逐一核对,0 漏改、0 多改 - 错误码UT测试  ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6615 | 19 days ago | |
修正arch35 SIMT旁路向量粒度选择遗漏src基址错位量 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6544 merge dev_circular_pad into master 修正arch35 SIMT旁路向量粒度选择遗漏src基址错位量 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修正arch35 SIMT旁路向量粒度选择遗漏src基址错位量 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3702 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:质量加固 See merge request: cann/ops-math!6544 | 21 days ago | |
fix 950 ut编译失败 Co-authored-by: chenqi317<CF2usBBbA386a-MRyWP5pYfd> # message auto-generated for no-merge-commit merge: !6699 merge master into master fix 950 ut编译失败 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fix 950 ut 编译失败 [2026-10-26 17:42:42] make[3]: *** [tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/build.make:110: tests/ut/op_host/math_op_host_ut] Error 1 [2026-10-26 17:42:42] make[2]: *** [CMakeFiles/Makefile2:14718: tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/all] Error 2 [2026-10-26 17:42:42] make[1]: *** [CMakeFiles/Makefile2:14725: tests/ut/op_host/CMakeFiles/math_op_host_ut.dir/rule] Error 2 [2026-10-26 17:42:42] make: *** [Makefile:1152: math_op_host_ut] Error 2 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6699 | 16 days ago | |
feat: circularpad/circularpadgrad/padv2算子适配ascend350 Co-authored-by: wuyan<wuyan23@huawei.com> # message auto-generated for no-merge-commit merge: !6416 merge master into master feat: circularpad/circularpadgrad/padv2算子适配ascend350 Created-by: rrely11 Commit-by: wuyan Merged-by: cann-robot Description: ## 描述 本 PR 将 CircularPad、CircularPadGrad、PadV2 三个算子适配 ascend350 芯片,并修正 CircularPadGrad 的 License 头信息 主要改动: 1. CircularPad 适配 ascend350 - CMakeLists.txt:支持芯片列表新增 ascend350,对应的 tiling 目录映射为 arch35。 - circular_pad_def.cpp:将 ascend950 的 OpAICoreConfig 重命名为通用 aicore_config,并复用该配置注册 ascend350。 2. CircularPadGrad 适配 ascend350 - CMakeLists.txt:支持芯片列表新增 ascend350,tiling 目录映射为 arch35。 - circular_pad_grad_def.cpp:复用 aicore_config 注册 ascend350。 - 新增 op_host/config/ascend350/circular_pad_grad_binary.json,覆盖 float16、bfloat16、float32 三种 dtype(paddings 为 int64)。 3. PadV2 适配 ascend350 - CMakeLists.txt:支持芯片列表新增 ascend350,tiling 目录映射为 arch35。 - pad_v2_def.cpp:复用 aicore_config 注册 ascend350。 - 新增 op_host/config/ascend350/pad_v2_binary.json,覆盖 int8/int64/float16/float32/float4_e2m1 等 dtype 组合(paddings 为 int32/int64)。 - scripts/kernel/binary_config/ascendc_config.json:PadV2 的 compute_units 新增 ascend350。 4. 修正 License 头 - conversion/circular_pad_grad/CMakeLists.txt 的 License 头格式统一为 CANN Open Software License 标准格式。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/3778 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6416 | 20 days ago | |
docs(circular_pad): 校正 Arch35 单圈 padding 边界说明 Co-authored-by: little_apple_12<020716ljh@gmail.com> # message auto-generated for no-merge-commit merge: !6058 merge fix/ops-math-20260929-002-circular-pad-doc-boundary into master docs(circular_pad): 校正 Arch35 单圈 padding 边界说明 Created-by: little_apple_12 Commit-by: little_apple_12 Merged-by: cann-robot Description: ## 描述 修正文档中 CircularPad padding 必须严格小于维度大小的表述,逐项对应三个 diff hunk: - conversion/circular_pad/README.md:明确 Ascend 950(Arch35)图模式按负 padding 裁剪后的有效尺寸校验,ACLNN 路径按输入维度校验;两条路径均允许正 padding 等于各自校验尺寸,超过时不支持多圈绕回。 - conversion/circular_pad/docs/aclnnCircularPad2d.md:明确左右 padding 对应最后一维、上下 padding 对应倒数第二维,并说明 Arch35 正 padding 允许等于对应维度。 - conversion/circular_pad/docs/aclnnCircularPad3d.md:明确左右、上下、前后 padding 对应的维度,并说明 Arch35 正 padding 允许等于对应维度。 修复依据是 Arch35 校验仅在 padding 严格大于相应尺寸时失败。改动只更新上述三处文档,不调整接口、实现或运行时行为;其他产品仍按对应版本约束说明。 ## 关联的Issue 关联Issue #3362 ## 测试 - grep -R -n -E '必须小于|需小于|都需小于' conversion/circular_pad/README.md conversion/circular_pad/docs/aclnnCircularPad2d.md conversion/circular_pad/docs/aclnnCircularPad3d.md:未命中旧的严格小于表述。 - 对三份文档执行 UTF-8 读取及 Arch35 边界文本静态断言:通过。 - pre-commit run --files conversion/circular_pad/README.md conversion/circular_pad/docs/aclnnCircularPad2d.md conversion/circular_pad/docs/aclnnCircularPad3d.md:退出码 0;尾随空格、文件结尾、冲突标记、私钥、codespell 和 OAT 检查通过。 - git diff --check:退出码 0,无输出。 - 本 PR 仅修改文档,未运行 CANN UT 或 NPU 算子;不将 CPU PyTorch 参考输出声称为 CANN 测试结果。 ## 文档更新 - conversion/circular_pad/README.md - conversion/circular_pad/docs/aclnnCircularPad2d.md - conversion/circular_pad/docs/aclnnCircularPad3d.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ### 当前PR是否有AI参与: [] 否 [x] 是 __1. Agent平台信息: Codex CLI 0.153.4 __2. 模型信息: gpt-5.6-luna __3. Prompt摘要: 对照 issue #3362 复核 Arch35 Graph 与 ACLNN/PadV3 的 padding 边界,只修正 CircularPad 三处文档中的严格小于表述。 ### 希望检视人员了解: 1. 人工参与说明:用户提供挖掘报告、目标 commit 和流程约束;本轮代理独立核对源码、完成全量 issue/PR 去重、执行静态文本验证及 pre-commit。未运行 CANN UT 或 NPU 算子,并已在 issue 环境段注明实际工具 shell 与任务给定机器信息的差异。 See merge request: cann/ops-math!6058 | 29 days ago |
CircularPad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
| Kirin X90处理器系列产品 | √ |
| Kirin 9030处理器系列产品 | √ |
功能说明
- 算子功能:使用循环填充方式对输入张量进行填充操作。
- CircularPad2d:对输入张量的最后两维进行循环填充。
- CircularPad3d:对输入张量的最后三维进行循环填充。
参数说明
CircularPad2d
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入张量 | 待填充的原输入数据,shape支持3-4维。 | FLOAT16、BFLOAT16、FLOAT32、INT8、INT32 | ND |
| padding | 输入数组 | 填充维度,长度为4,数值依次代表左右上下需要填充的值。 | INT64 | - |
| out | 输出张量 | 填充后的输出结果,shape支持3-4维。 | FLOAT16、BFLOAT16、FLOAT32、INT8、INT32 | ND |
CircularPad3d
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入张量 | 待填充的原输入数据,shape支持4-5维。 | FLOAT16、BFLOAT16、FLOAT32、INT8、INT32 | ND |
| padding | 输入数组 | 填充维度,长度为6,数值依次代表左右上下前后需要填充的值。 | INT64 | - |
| out | 输出张量 | 填充后的输出结果,shape支持4-5维。 | FLOAT16、BFLOAT16、FLOAT32、INT8、INT32 | ND |
- Kirin X90/Kirin 9030处理器系列产品:不支持BFLOAT16。
约束说明
- Ascend 950(Arch35)的 CircularPad 正 padding 可等于校验所用的对应尺寸(图模式为负 padding 裁剪后的有效尺寸,ACLNN 接口为输入维度);超过该尺寸不支持多圈绕回。其他产品以对应版本文档约束为准。
- out的最后一维在不同类型下的大小需满足如下约束:
- int8:(0, 98304)
- float16/bfloat16:(0, 49152)
- int32/float32:(0, 24576)
- 输入和输出的数据类型必须一致。
- 支持非连续的Tensor。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_circular_pad | 通过aclnnCircularPad2d, aclnnCircularPad3d接口方式调用CircularPad2d算子。 |
| 图模式调用 | test_geir_circular_pad | 通过算子IR构图方式调用CircularPad算子。 |