| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修复PAD相关算子的资料错误 Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !5526 merge personal/wjc/doc_fix into master 修复PAD相关算子的资料错误 Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 修复 pad 类算子(CircularPad / ReflectionPad / ReplicationPad / ConstantPadNd)文档与示例代码中的 5 类问题: 1. **示例代码错误处理逻辑缺陷**: CHECK_RET(padding != nullptr, return ret) 中 ret 为上一步 CreateAclTensor 返回的成功值(0),aclCreateIntArray 失败时会以成功状态返回,掩盖错误。 统一修改为打印错误日志并返回 ACLNN_ERR_INTERNAL_ERROR。涉及: aclnnCircularPad3d.md、aclnnReflectionPad1d.md、aclnnReplicationPad3d.md 及 4 个对应 examples(reflection_pad_1d / replication_pad_3d / reflection_pad3d_grad / circular_pad 内嵌示例)。 2. **功能说明示例与 padding 声明不一致**:aclnnCircularPad3d.md 示例输出为 3 个 5×7 矩阵 (对应最后一维左右各填 2),与声明的 padding([1,1,1,1,1,1])(各填 1,应输出 5×5)不符。 经核算示例输出数值自洽,将 padding 声明修正为 [2,2,1,1,1,1]。 3. **printf 格式符可移植性问题**:示例以 %ld 格式化 int64_t,在 int64_t 映射为 long long 的平台(如 Windows/MSVC)属未定义行为,统一改为 PRId64 宏并补充 #include <inttypes.h>。 涉及 aclnnConstantPadNd.md、test_aclnn_constant_pad_nd.cpp、test_aclnn_replication_pad_3d.cpp。 4. **示例头文件错误**:test_aclnn_circular_pad.cpp 及 aclnnCircularPad2d.md 示例使用 printf 输出,但包含的是未使用的 <iostream>,替换为 <cstdio>。 5. **代码块语言标记不一致**:aclnnReflectionPad3dBackward.md 调用示例代码块标记 \\\Cpp 统一为 \\\cpp,与函数原型代码块一致。 另:test_aclnn_circular_pad.cpp、test_aclnn_reflection_pad3d_grad.cpp 按 pre-commit (clang-format)规范完成格式化。 ## 关联的Issue ## 测试 - 已对全部修改文件执行 pre-commit 检查(trailing-whitespace / end-of-file-fixer / clang-format / codespell 等均通过;OAT 检查依赖 bash,Windows 本地环境不可用) - 改动均为文档与示例代码纠错,不涉及算子实现逻辑,无需上板验证 ## 文档更新 - conversion/circular_pad/docs/aclnnCircularPad2d.md - conversion/circular_pad/docs/aclnnCircularPad3d.md - conversion/mirror_pad/docs/aclnnReflectionPad1d.md - conversion/pad_v3/docs/aclnnConstantPadNd.md - conversion/pad_v3/docs/aclnnReplicationPad3d.md - conversion/reflection_pad3d_grad/docs/aclnnReflectionPad3dBackward.md - 及上述算子 examples 下 5 个示例 .cpp 同步修改 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5526 | 1 个月前 | |
修复PAD相关算子的资料错误 Co-authored-by: wjc<wangjincheng14@huawei.com> # message auto-generated for no-merge-commit merge: !5526 merge personal/wjc/doc_fix into master 修复PAD相关算子的资料错误 Created-by: Anthony0331 Commit-by: wjc Merged-by: cann-robot Description: ## 描述 修复 pad 类算子(CircularPad / ReflectionPad / ReplicationPad / ConstantPadNd)文档与示例代码中的 5 类问题: 1. **示例代码错误处理逻辑缺陷**: CHECK_RET(padding != nullptr, return ret) 中 ret 为上一步 CreateAclTensor 返回的成功值(0),aclCreateIntArray 失败时会以成功状态返回,掩盖错误。 统一修改为打印错误日志并返回 ACLNN_ERR_INTERNAL_ERROR。涉及: aclnnCircularPad3d.md、aclnnReflectionPad1d.md、aclnnReplicationPad3d.md 及 4 个对应 examples(reflection_pad_1d / replication_pad_3d / reflection_pad3d_grad / circular_pad 内嵌示例)。 2. **功能说明示例与 padding 声明不一致**:aclnnCircularPad3d.md 示例输出为 3 个 5×7 矩阵 (对应最后一维左右各填 2),与声明的 padding([1,1,1,1,1,1])(各填 1,应输出 5×5)不符。 经核算示例输出数值自洽,将 padding 声明修正为 [2,2,1,1,1,1]。 3. **printf 格式符可移植性问题**:示例以 %ld 格式化 int64_t,在 int64_t 映射为 long long 的平台(如 Windows/MSVC)属未定义行为,统一改为 PRId64 宏并补充 #include <inttypes.h>。 涉及 aclnnConstantPadNd.md、test_aclnn_constant_pad_nd.cpp、test_aclnn_replication_pad_3d.cpp。 4. **示例头文件错误**:test_aclnn_circular_pad.cpp 及 aclnnCircularPad2d.md 示例使用 printf 输出,但包含的是未使用的 <iostream>,替换为 <cstdio>。 5. **代码块语言标记不一致**:aclnnReflectionPad3dBackward.md 调用示例代码块标记 \\\Cpp 统一为 \\\cpp,与函数原型代码块一致。 另:test_aclnn_circular_pad.cpp、test_aclnn_reflection_pad3d_grad.cpp 按 pre-commit (clang-format)规范完成格式化。 ## 关联的Issue ## 测试 - 已对全部修改文件执行 pre-commit 检查(trailing-whitespace / end-of-file-fixer / clang-format / codespell 等均通过;OAT 检查依赖 bash,Windows 本地环境不可用) - 改动均为文档与示例代码纠错,不涉及算子实现逻辑,无需上板验证 ## 文档更新 - conversion/circular_pad/docs/aclnnCircularPad2d.md - conversion/circular_pad/docs/aclnnCircularPad3d.md - conversion/mirror_pad/docs/aclnnReflectionPad1d.md - conversion/pad_v3/docs/aclnnConstantPadNd.md - conversion/pad_v3/docs/aclnnReplicationPad3d.md - conversion/reflection_pad3d_grad/docs/aclnnReflectionPad3dBackward.md - 及上述算子 examples 下 5 个示例 .cpp 同步修改 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5526 | 1 个月前 | |
迁移开源TF插件--conversion Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4310 merge transfer-conversion into master 迁移开源TF插件--conversion Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4310 | 2 个月前 | |
refactor: 清理 conversion 与 tile 算子日志拼写、级别与语义错误 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !5337 merge f0903 into master refactor: 清理 conversion 与 tile 算子日志拼写、级别与语义错误 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 清理 conversion 与 math/tile 目录下 10 个算子的 host 侧、op_api 侧及测试代码中的日志消息,修正拼写错误、纠正日志级别、改善错误信息语义,并做代码格式化。改动不改变任何计算逻辑。 涉及算子:circular_pad、circular_pad_grad、mirror_pad(reflection_pad1d/2d/3d)、pad、pad_v2、pad_v3、pad_v3_grad_replication、transpose、tile ### 改动原因 - 多处错误日志存在拼写错误(dimention→dimension、inpit→input、over flow→overflow、couted→counted、shoule→should、rand→rank 等),影响问题定位效率 - 部分错误路径日志级别错误(如失败路径打印 INFO 而非 ERROR),误导排障 - 部分错误信息语义反义(如 "The last DIM of x is valid" 实为 invalid 场景),或语义不准(如 skip 场景打印 "failed") - 错误信息缺少实际值上下文(如只报 "must be even" 未给实际长度),不利于快速定位 - 中文顿号混入英文日志、单行函数体多行展开等格式问题 ### 改动方法 1. 拼写修正:dimention→dimension、inpit→input、Unsupport→Unsupported、cannot empty→cannot be empty、over flow→overflow、rand→rank、shoule→should、not support→not supported、couted→counted、groups.Got→groups. Got 2. 日志级别修正:test_geir_pad.cpp / test_geir_pad_v2.cpp 中 3 处失败路径 INFO→ERROR 3. 语义修正:circular_pad/circular_pad_grad tiling 中 "is valid"→"is invalid";pad_v3_grad_replication tiling 中 8 处 "failed"→"skipped";pad_onnx_plugin 中 "Dynamic cast failed"→"The pads attribute is missing in the node";circular_pad_common_tiling 中 "tiling data size"→"tiling data size(bytes)" 4. 错误信息增强:pad_onnx_plugin 补充实际长度值;pad_v3_grad_replication_infershape 补充实际 zDim 值;aclnn_constant_pad_nd 补充实际 padLen 值 5. 格式清理:中文顿号→英文逗号;单行函数体合并;ONNX 注册多行格式化;文件末尾补换行 ## 关联的Issue - #3019 ## 测试 - 改动仅涉及日志文本与格式,不改变计算逻辑,已有 UT 覆盖行为不变 - circular_pad 测试类名修正 circualr→circular(SetUp/TearDown 日志) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:日志消息清理(拼写/级别/语义修正与格式化) See merge request: cann/ops-math!5337 | 1 个月前 | |
format: batch_to_space_nd 等算子代码格式化 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3822 merge fix-fmt into master format: batch_to_space_nd 等算子代码格式化 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> format: batch_to_space_nd 等算子代码格式化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2147 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 See merge request: cann/ops-math!3822 | 3 个月前 | |
ascend350 arch Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !5437 merge f0908 into master ascend350 arch Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5437 | 1 个月前 | |
refactor: pad/mirror_pad/pad_v2/pad_v3 apt 入口消重,PAD_SLICE 分发链收敛至 pad_slice.h Co-authored-by: Xbying<2119046648@qq.com> # message auto-generated for no-merge-commit merge: !5604 merge 12 into master refactor: pad/mirror_pad/pad_v2/pad_v3 apt 入口消重,PAD_SLICE 分发链收敛至 pad_slice.h Created-by: 2301_81474000 Commit-by: Xbying Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按“公共逻辑单点维护”原则收敛上述重复:pad_v3_grad 公共头新增 PrepareSimtGradArrays、BuildWAxisMidLeftRightIndices(结构体传参)、CopyGradOutputToGM、SetEvent/WaitEvent;PAD_SLICE 宏与分发函数 RunPadSliceProcess 收敛至 pad_slice.h。各调用方改为一次调用或薄委托,模式特有逻辑(dim 分发链、chanHBase 推导、偏移数组)保留原地。全部改动经 opc 编译与 A/B 二进制对比验证,生成代码逐函数等价或逐字节一致,热路径零变化。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3150 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5604 | 1 个月前 | |
format: batch_to_space_nd 等算子代码格式化 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3822 merge fix-fmt into master format: batch_to_space_nd 等算子代码格式化 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> format: batch_to_space_nd 等算子代码格式化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2147 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 See merge request: cann/ops-math!3822 | 3 个月前 | |
ascend350 arch Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !5437 merge f0908 into master ascend350 arch Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5437 | 1 个月前 | |
md大模型检测低错修改 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5183 merge master into master md大模型检测低错修改 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md大模型检测低错修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [# 2466](https://gitcode.com/cann/ops-math/issues/2446) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5183 | 1 个月前 |
MirrorPad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:以镜像方式填充输入tensor的边界。
-
示例:
输入tensor([[0,1,2]]) paddings([2,2]) 1.mode("REFLECT") 输出为([[2,1,0,1,2,1,0]]) 2.mode("SYMMETRIC") 输出为([[1,0,0,1,2,2,1]])
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行镜像扩充的原始tensor。 | INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BF16, FLOAT16, FLOAT, DOUBLE, BOOL | ND |
| paddings | 输入 | 扩充的配置。 | INT32、INT64 | ND |
| mode | 属性 | 填充模式,可以是反射"REFLECT"或对称"SYMMETRIC"。 | string | ND |
| y | 输出 | 进行扩充后的tensor。 | INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BF16, FLOAT16, FLOAT, DOUBLE, BOOL | ND |
-
paddings paddings的第0维表示对输入x第0维的扩充配置,以此类推。每一行表示对应维度上的填充数量(左/右、前/后、上/下等)。对于每一行[a, b],a表示在该维度的开头填充的元素数,b表示在该维度的末尾填充的元素数。
-
mode REFLECT模式下,镜像时不会包括边界本身。 SYMMETRIC模式下,镜像时会包含边界本身,示例中可见。
约束说明
paddings的形状需要为[rank, 2],其中rank为输入x的维度数。 对于每一行paddings[i],填充元素数不得超过其对应x[i]的元素数。即在反射模式下,paddings[i][0]和paddings[i][1] <= x[i].length-1;在对称模式下,paddings[i][0]和paddings[i][1] <= x[i].length。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_reflection_pad_1d | 通过aclnnReflectionPad1d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后一维。 |
| aclnn调用 | test_aclnn_reflection_pad_2d | 通过aclnnReflectionPad2d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后两维。 |
| aclnn调用 | test_aclnn_reflection_pad_3d | 通过aclnnReflectionPad3d接口方式调用REFLECT情况下的mirror_pad算子,填充输入tensor的最后三维。 |