| Files | Last commit | Last update |
|---|---|---|
【master】【docs&examples】修改部分conversion算子的docs和examples目录下的调用示例的问题 Co-authored-by: t00935269<tangkaidi1@huawei.com> # message auto-generated for no-merge-commit merge: !5527 merge master into master 【master】【docs&examples】修改部分conversion算子的docs和examples目录下的调用示例的问题 Created-by: tangkaidi Commit-by: t00935269 Merged-by: cann-robot Description: ## 描述 【docs&examples】修改部分conversion算子的docs和examples目录下的调用示例的问题 [conversion/clip_by_value_v2/docs/aclnnHardtanh&aclnnInplaceHardtanh.md]:将代码围栏统一为 cpp,并把 Host 数据补足为 8 个元素以匹配 {4, 2} shape。 [conversion/npu_format_cast/docs/aclnnNpuFormatCast.md]:修正 C++ 类型转换语法以及 DHWCN=31、NHWC=1 的格式枚举值。 [conversion/split_v/docs/aclnnSplitTensor.md]:为 aclCreateTensorList 失败补充日志并返回明确的内部错误码,避免错误返回旧的 ret。 [conversion/split_v/docs/aclnnSplitWithSize.md]:统一 cpp 代码围栏、补齐步骤 3~5,并将释放对象说明修正为实际使用的 Tensor、IntArray 和 TensorList。 [conversion/transpose/docs/aclnnChannelShuffle.md]:将 groups 参数的数据类型修正为与其 int64_t 定义一致的 INT64。 [conversion/unfold_grad/docs/aclnnUnfoldGrad.md]:将 gradOutHostData 补足为 18 个元素以匹配 {3, 2, 3} shape。 [experimental/conversion/clip_by_value_v2/docs/aclnnHardtanh&aclnnInplaceHardtanh.md]:同步将代码围栏改为 cpp,并把 Host 数据补足为与 {4, 2} shape 匹配的 8 个元素。 [experimental/conversion/split_v/docs/aclnnSplitTensor.md]:同步为 TensorList 创建失败增加日志和明确的内部错误返回值。 [experimental/conversion/split_v/docs/aclnnSplitWithSize.md]:同步补齐步骤编号并修正资源释放说明。 同步修改涉及的example下的问题。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue [Documentation|文档反馈]: 【master】修改部分conversion算子的docs和examples目录下的调用示例存在的问题 #3116 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 已经全部执行pre-commit检查并通过编译门禁。 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 conversion/clip_by_value_v2/docs/aclnnHardtanh&aclnnInplaceHardtanh.md conversion/npu_format_cast/docs/aclnnNpuFormatCast.md conversion/split_v/docs/aclnnSplitTensor.md conversion/split_v/docs/aclnnSplitWithSize.md conversion/transpose/docs/aclnnChannelShuffle.md conversion/unfold_grad/docs/aclnnUnfoldGrad.md experimental/conversion/clip_by_value_v2/docs/aclnnHardtanh&aclnnInplaceHardtanh.md experimental/conversion/split_v/docs/aclnnSplitTensor.md experimental/conversion/split_v/docs/aclnnSplitWithSize.md <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5527 | 1 month ago | |
refactor: 迁移 arch35 算子 Reg API、修正拼写并规范化日志文案 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !5135 merge f082601 into master refactor: 迁移 arch35 算子 Reg API、修正拼写并规范化日志文案 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 对 arch35 架构下多个算子进行 AscendC Reg API 迁移、命名拼写修正及日志文案规范化,共 46 个文件,涉及 conversion/ 与 math/ 下 15 个算子。 主要改动: - AscendC Reg API 迁移(arch35 kernel 代码,21 个 .h 文件): - 地址空间修饰符: __local_mem__ → __ubuf__ - Reg 数据搬运 API 细化:加载用 AscendC::Reg::LoadAlign(原 Reg::DataCopy 加载语义),存储用 AscendC::Reg::StoreAlign(原 Reg::DataCopy 存储语义) - 掩码操作 API 重命名:AscendC::Reg::MaskNot → AscendC::Reg::Not、AscendC::Reg::MaskAnd → AscendC::Reg::And - 移除冗余 using AscendC::Reg::DataCopy; 声明 - 命名拼写修正(op_host/arch35,3 个文件): - 方法名 TilingForReleatedTranspose → TilingForRelatedTranspose(Releated→Related) - 成员变量 isReleatedTranspsoe_ → isRelatedTranspose_(Releated→Related, Transpsoe→Transpose) - 同步修改 confusion_transpose_d、depth_to_space 中对该方法的调用 - 日志清理(examples、op_host、op_api,22 个文件): - 失败路径日志级别 INFO → ERROR(Initialize ge failed、Run graph failed、Finalize ir graph session failed 等) - 文案语法修正:only support → only supports、is: %s and %s → are: %s and %s、expect %f → expected %f、multiples's → multiples' - tile 示例代码宏定义缩进格式化 ### 改动原因 配合 AscendC Reg API 演进,将 arch35 算子迁移至新的地址空间修饰符与 LoadAlign/StoreAlign/Not/And API;修正 transpose 相关命名中的拼写错误;统一日志级别与文案规范,提升日志可读性与问题定位效率。 ### 改动方法 - kernel 侧:逐文件替换 __local_mem__→__ubuf__、Reg::DataCopy(加载)→Reg::LoadAlign、Reg::DataCopy(存储)→Reg::StoreAlign、Reg::MaskNot→Reg::Not、Reg::MaskAnd→Reg::And,不改变控制流。 - host 侧:重命名 TilingForReleatedTranspose→TilingForRelatedTranspose、isReleatedTranspsoe_→isRelatedTranspose_,同步所有调用点。 - 日志:修改 printf/OP_LOGE/OP_LOGW/OP_LOGI 文案与级别字符串,不改变校验逻辑。 ## 关联的Issue - #2916 ## 测试 本 PR 为 API 迁移、命名修正与日志清理,通过已有测试用例(含 arch35 tiling UT 与 examples 二级冒烟)回归验证。 ## 文档更新 本 PR 未包含文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:AscendC Reg API 迁移 + 命名拼写修正 + 日志规范化 See merge request: cann/ops-math!5135 | 2 months ago | |
refactor: 规范化多算子日志文案与错误提示信息 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !4924 merge f0821 into master refactor: 规范化多算子日志文案与错误提示信息 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 对多个算子的日志文案与错误提示信息进行规范化清理,涉及 depth_to_space、matrix_set_diag_v2、pad_v3、pad_v3_grad_replicate、pad_v3_grad_replication、transpose 共 6 个算子、11 个文件。 主要改动: - 修复语法错误: must greater than → must be greater than、must less than → must be less than - 修复拼写错误:dimention → dimension、strat → start - 序数词规范化:-2th → -2nd、-1th → -1st - 补充缺失动词/介词:cannot empty → cannot be empty、Failed to vector size → Failed to get vector size - 统一用语:on aicore situation → in AICore situation - 增强日志信息量:部分校验失败日志补充实际的 dim num / padding size 数值,便于定位问题 - 统一错误提示描述:wrong gradOutput shape. → gradOutput shape does not match the expected shape derived from input and padding. - 格式化:transpose_onnx_plugin.cpp 中 REGISTER_CUSTOM_OP 缩进对齐 ### 改动原因 原有日志文案存在语法错误、拼写错误和表述不清晰的问题,影响问题定位效率和用户体验。本次统一规范化,提升日志的可读性和准确性。 ### 改动方法 逐文件修改 OP_LOGE/OP_LOGW/OP_LOGI 等日志调用中的文案字符串,不改变任何控制流和校验逻辑。transpose_onnx_plugin.cpp 额外对 REGISTER_CUSTOM_OP 调用做了缩进格式化。 ## 关联的Issue - #2786 ## 测试 本 PR 仅修改日志文案字符串,不涉及逻辑变更,通过已有测试用例回归验证。 ## 文档更新 本 PR 未包含文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范化/日志文案清理 See merge request: cann/ops-math!4924 | 2 months ago | |
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 months ago | |
fusion pass兼容性问题修复 Co-authored-by: pengyiming7<pengyiming7@h-partners.com> # message auto-generated for no-merge-commit merge: !3908 merge fusion_pass into master fusion pass兼容性问题修复 Created-by: pengyiming7 Commit-by: pengyiming7 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fusion pass兼容性问题修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2201 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3908 | 3 months ago | |
fix: transpose小shape分核删除不可达if分支并修复取模除零风险 Co-authored-by: Xbying<2119046648@qq.com> # message auto-generated for no-merge-commit merge: !5399 merge 10 into master fix: transpose小shape分核删除不可达if分支并修复取模除零风险 Created-by: 2301_81474000 Commit-by: Xbying Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 删除不可达的 if 分支(1038-1041) 2. 对剩余取模运算加除零保护 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3060 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5399 | 2 months ago | |
feat: transpose kernel代码切换旧接口到新接口 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !5018 merge worktree/transpose into master feat: transpose kernel代码切换旧接口到新接口 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat: transpose kernel代码切换旧接口到新接口 | 旧接口/类型 | 新接口/类型 | |--|--| | MultiCopyConfig | NdDmaConfig | | __local_mem__ | __ubuf__ | | DataCopy | LoadAlign | | DataCopy | StoreAlign | | CompareScalar | Compares | | DataCopyGather | Gather | | Copy | Move | | ... | ... | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2844 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 修改前后对比,编译出来的kernel二进制相同 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:接口替换 See merge request: cann/ops-math!5018 | 2 months ago | |
feat: Add aclnn st cases and golden functions Co-authored-by: yanzhi2024<yanzhi@huawei.com> # message auto-generated for no-merge-commit merge: !5200 merge master into master feat: Add aclnn st cases and golden functions Created-by: yanzhi2024 Commit-by: yanzhi2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加蓝区aclnn用例和golden函数 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/5325 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5200 | 2 months ago | |
concat/pad/slice等算子支持新平台 Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !5184 merge master into master concat/pad/slice等算子支持新平台 Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子支持新平台 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2992 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5184 | 2 months ago | |
批量修改md中冗余空格 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !3305 merge master into master 批量修改md中冗余空格 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改冗余空格,如中英文间冗余空格 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [DOC_1962#冗余空格](https://gitcode.com/cann/ops-math/issues/1962) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [X ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3305 | 4 months ago |
Transpose
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能:对tensor的任意维度进行调换。如输入self是shape为[2, 3, 5]的tensor,dims为(2, 0, 1),则输出是shape为[5, 2, 3]的tensor。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入张量 | 需要进行维度置换的输入张量。 | 见下方 | ND |
| perm | 输入张量 | 表示x的维度的排列。取值需在[0,self的维度数量-1]范围内。 | INT64、INT32 | - |
| y | 输出 | 维度最大不超过8维,shape由dims和原self的shape共同决定,dtype需要与self一致。 | 同x | ND |
- GPU支持的数据类型:数据类型支持DT_BF16, DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64, DT_INT32, DT_UINT8, DT_UINT16, DT_UINT32, DT_UINT64, DT_INT8, DT_INT16, DT_COMPLEX32, DT_COMPLEX64, DT_COMPLEX128, DT_QINT8, DT_QUINT8, DT_QINT16, DT_QUINT16, DT_QINT32, DT_BOOL, DT_HIFLOAT8, DT_FLOAT8_E5M2, DT_FLOAT8_E4M3FN。
- CPU支持的数据类型:数据类型支持同GPU。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_channel_shuffle | 通过aclnn_channel_shuffle接口方式调用transpose算子。 |
| aclnn接口 | test_aclnn_permute | 通过aclnn_permute接口方式调用transpose算子。 |