| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 2 个月前 | |
迁移开源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 个月前 | |
fix(pad,pad_v2): E*9***内部错误码整改为正式语义码 Co-authored-by: wangchao661<wangchao661@huawei.com> # message auto-generated for no-merge-commit merge: !6534 merge master into master fix(pad,pad_v2): E*9***内部错误码整改为正式语义码 Created-by: wangchao661 Commit-by: wangchao661 Merged-by: cann-robot Description: ## 描述 Pad、PadV2算子内部错误码整改 ## 关联的Issue 关联Issue:#3701 https://gitcode.com/cann/ops-math/issues/3701 ## 测试 UT测试、CI测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6534 | 24 天前 | |
feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !6644 merge feat/register-infer-datatype into master feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 按 RT1.0 到 RT2.0 推导框架迁移方案第 1 步(补齐缺失的 InferDataType 注册,零行为变更)要求,为 12 个缺失 InferDataType 注册的算子新增 op_graph/*_graph_infer.cpp 注册文件。本次变更只新增文件、不修改任何存量代码,共 12 个文件、240 行。 ### 改动点 | # | 算子 | 新增文件 | 注册方式 | |---|------|---------|---------| | 1 | Pad | conversion/pad/op_graph/pad_graph_infer.cpp | InferDataTypeOutputSameAsInput | | 2 | PadV2 | conversion/pad_v2/op_graph/pad_v2_graph_infer.cpp | 同上 | | 3 | PadV3 | conversion/pad_v3/op_graph/pad_v3_graph_infer.cpp | 同上 | | 4 | PadV3Grad | conversion/pad_v3_grad/op_graph/pad_v3_grad_graph_infer.cpp | 同上 | | 5 | MirrorPad | conversion/mirror_pad/op_graph/mirror_pad_graph_infer.cpp | 同上 | | 6 | BroadcastTo | conversion/broadcast_to/op_graph/broadcast_to_graph_infer.cpp | 同上 | | 7 | Transpose | conversion/transpose/op_graph/transpose_graph_infer.cpp | 同上 | | 8 | Rint | math/rint/op_graph/rint_graph_infer.cpp | 同上 | | 9 | TruncateDiv | math/truncate_div/op_graph/truncate_div_graph_infer.cpp | 同上 | | 10 | Expand | math/expand/op_graph/expand_graph_infer.cpp | 同上 | | 11 | GetShape | math/get_shape/op_graph/get_shape_graph_infer.cpp | 专门推导,输出固定 INT32 | | 12 | HistogramFixedWidth | math/histogram_fixed_width/op_graph/histogram_fixed_width_graph_infer.cpp | 专门推导,输出固定 INT32 | ### 改动原因 1. 背景:RT2.0 V2 路径的 dtype 推导在未注册 InferDataType 时依赖 IR(proto/def 的 TensorType)符号映射兜底。以显式注册替代隐式兜底,使推导逻辑代码自明、不依赖 IR 声明的隐式行为,并为后续推导框架切换就位 op_graph 注册设施。 2. dtype 语义逐算子以 RT1.0 SetDataType 为基线核对(迁移原则:非算子语义变更): - 上述 #1-#10 共 10 个算子的 canndev RT1.0 实现均为 SetDataType(input_dtype)(取输入 x 的类型,const/非 const/未知 rank 各分支一致),输出 dtype 跟随输入,故注册仓内公共推导函数 InferDataTypeOutputSameAsInput,与本仓已有 Tile/Erfc/TruncateMod 注册同构; - GetShape、HistogramFixedWidth 的 RT1.0 实现硬编码 SetDataType(DT_INT32),输出为形状值/直方图计数,与输入 dtype 无关,故注册输出固定 INT32 的专门推导,与两者 proto/def 中 OUTPUT(y, TensorType({DT_INT32})) 声明一致。 3. 零行为变更:注册结果与 IR 符号推导兜底结果一致,不改变任何现网推导行为。 4. 构建零改动:op_graph/*.cpp 由 CMake GLOB_RECURSE 自动收集(cmake/func.cmake),无需修改 CMakeLists。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4099 ## 测试 - 本地无 CANN 构建环境,未执行编译与 UT,请通过门禁验证(评论 compile 触发 CI) - 已完成静态核对:13 个注册的 dtype 语义与 canndev RT1.0 SetDataType 逐分支一致、与各算子 proto/def 输出声明一致、与本仓已有同款注册(tile/erfc/truncate_mod/circular_pad)代码风格一致 - UT dtype 断言用例(断言注册结果=兜底结果)可随检视意见补充 ## 文档更新 无需更新文档(纯推导注册代码,无接口与行为变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6644 | 17 天前 | |
feat: expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6568 merge dev_960 into master feat: expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3836 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6568 | 22 天前 | |
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 个月前 | |
fix: pad系列、depth_to_space UT问题 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !6710 merge fix-ut into master fix: pad系列、depth_to_space UT问题 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 修复 pad 系列(Pad / PadV2 / MirrorPad)与 CircularPadGrad、DepthToSpace 共 5 个算子 arch35 tiling UT 的过期期望,使其与上游 tiling 改动对齐,恢复 UT 通过。 改动原因: - commit 63be43b14(MR !5969「pad_v3/pad_v3_grad 去除tiling多余workspace申请」)将共享 tiling 的 workspace 由 16MB 改为 0,但复用同一 PadACTiling / PadV3GradACTiling 的 Pad、PadV2、MirrorPad、CircularPadGrad arch35 用例仍期望 16777216,未同步更新,导致 tiling_case_executor 断言 workspace 不符而失败。 - commit a3439d3c9(MR !6332「transpose 支持 ascend960dt/ascend960pr 平台及 4bit 类型」)在 TransposeOpTilingData 中新增 int64 字段 bigDimBufferNum,DepthToSpaceTilingData 内嵌复用该结构,depth_to_space 用例 expectTilingData 未同步,字段整体错位一位而失败。 改动方法: - 将上述非 slice 分支的 arch35 用例 expectWorkspaces 由 16777216 更新为 0;PadV2 的 slice 分支(tilingKey 10102/10150)在 tiling 中提前返回、不设置 workspace,仍保持 16777216。 - 将 depth_to_space 4 个用例的 expectTilingData 按新结构补齐 bigDimBufferNum 字段(SIMT 小 shape 路径默认值 1)。 ## 关联的Issue 本 PR 修复以下 36 个 UT 失败 issue: ### CircularPadGrad(conversion/circular_pad_grad) - https://gitcode.com/cann/ops-math/issues/4025 - https://gitcode.com/cann/ops-math/issues/4026 - https://gitcode.com/cann/ops-math/issues/4027 - https://gitcode.com/cann/ops-math/issues/4028 - https://gitcode.com/cann/ops-math/issues/4029 - https://gitcode.com/cann/ops-math/issues/4030 - https://gitcode.com/cann/ops-math/issues/4031 - https://gitcode.com/cann/ops-math/issues/4032 - https://gitcode.com/cann/ops-math/issues/4033 - https://gitcode.com/cann/ops-math/issues/4034 - https://gitcode.com/cann/ops-math/issues/4035 ### DepthToSpace(conversion/depth_to_space) - https://gitcode.com/cann/ops-math/issues/4036 - https://gitcode.com/cann/ops-math/issues/4037 - https://gitcode.com/cann/ops-math/issues/4038 - https://gitcode.com/cann/ops-math/issues/4039 ### MirrorPad(conversion/mirror_pad) - https://gitcode.com/cann/ops-math/issues/4041 ### Pad(conversion/pad) - https://gitcode.com/cann/ops-math/issues/4042 - https://gitcode.com/cann/ops-math/issues/4043 - https://gitcode.com/cann/ops-math/issues/4044 - https://gitcode.com/cann/ops-math/issues/4045 - https://gitcode.com/cann/ops-math/issues/4046 - https://gitcode.com/cann/ops-math/issues/4047 ### PadV2(conversion/pad_v2) - https://gitcode.com/cann/ops-math/issues/4048 - https://gitcode.com/cann/ops-math/issues/4049 - https://gitcode.com/cann/ops-math/issues/4050 - https://gitcode.com/cann/ops-math/issues/4051 - https://gitcode.com/cann/ops-math/issues/4052 - https://gitcode.com/cann/ops-math/issues/4053 - https://gitcode.com/cann/ops-math/issues/4054 - https://gitcode.com/cann/ops-math/issues/4055 - https://gitcode.com/cann/ops-math/issues/4056 - https://gitcode.com/cann/ops-math/issues/4057 - https://gitcode.com/cann/ops-math/issues/4058 - https://gitcode.com/cann/ops-math/issues/4059 - https://gitcode.com/cann/ops-math/issues/4060 - https://gitcode.com/cann/ops-math/issues/4061 ## 测试 对每个算子执行 bash build.sh -u --ophost --soc=ascend950 --ops=<算子名>,全部通过: | 算子 | 结果 | |------|------| | circular_pad_grad | 15/15 PASSED | | depth_to_space | 11/11 PASSED | | mirror_pad | 10/10 PASSED | | pad | 16/16 PASSED | | pad_v2 | 43/43 PASSED | ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6710 | 18 天前 | |
feat: expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6568 merge dev_960 into master feat: expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> expand/tile/pad/pad_v3/mirror_pad/get_shape支持Ascend960PR ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3836 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6568 | 22 天前 | |
增加pad算子资料 Co-authored-by: focusforce<gongquanchao@huawei.com> # message auto-generated for no-merge-commit merge: !6685 merge iter11 into master 增加pad算子资料 Created-by: focusforce Commit-by: focusforce Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加pad算子资料 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3734](https://gitcode.com/cann/ops-math/issues/3734) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6685 | 18 天前 | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 9 天前 |
Pad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:按照输入paddings的配置,对输入x的每一维进行前后常量填充,填充值为0。兼容TensorFlow的Pad算子。
-
示例:
输入 x = [[0,1,2]],shape为[1,3] paddings = [[1,1],[2,2]] 输出 y = [[0,0,0,0,0,0,0], [0,0,0,1,2,0,0], [0,0,0,0,0,0,0]],shape为[3,7]
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行填充的原始tensor。 | BFLOAT16、FLOAT16、FLOAT、DOUBLE、INT32、UINT8、INT16、INT8、COMPLEX64、INT64、QINT8、QUINT8、QINT32、QINT16、QUINT16、UINT16、COMPLEX128、UINT32、UINT64、BOOL、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN、FLOAT8_E8M0、FLOAT4_E2M1、FLOAT4_E1M2。 | ND |
| paddings | 输入 | 填充的配置,形状为[rank(x), 2],第i行[a, b]表示对x第i维开头填充a个元素、末尾填充b个元素。 | INT32、INT64 | ND |
| y | 输出 | 进行填充后的tensor,数据类型与x相同。 | 与x的数据类型相同 | ND |
- AICore路径支持的数据类型随平台不同:
- Atlas A2系列产品:FLOAT、FLOAT16、BFLOAT16、INT8、INT16、INT32、UINT16、INT64;
- 部分新一代平台在此基础上还支持:UINT8、UINT32、UINT64、BOOL、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN、FLOAT8_E8M0、FLOAT4_E2M1、FLOAT4_E1M2;
- 其余平台:FLOAT、FLOAT16、BFLOAT16、INT16、INT32、UINT16、INT64。
- 不在上述AICore支持列表中的数据类型(如DOUBLE、COMPLEX64、COMPLEX128、QINT8等)通过AICPU路径计算。
约束说明
- paddings的形状需为[rank(x), 2],其中rank(x)为输入x的维度数。
- 如果x的数据类型为FLOAT4_E2M1或FLOAT4_E1M2,paddings的值应为偶数。
- 如果x的数据类型为HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN或FLOAT8_E8M0,paddings的值应为非负整数。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| GE图模式 | test_geir_pad | 通过算子IR构图方式调用Pad算子。 |