| Files | Last commit | Last update |
|---|---|---|
update operators Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !916 merge master into master update operators Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增强以下算子功能 tensor_equal tensor_move tril triu stalessrandomuniform stalessrandomnormal assign dsarandomuniform dsarandomnormal ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #530 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!916 | 9 months ago | |
feat: viewcopy/as_strided/tensor_move 回合ascend960dt平台适配代码 Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !6191 merge v121_10 into master feat: viewcopy/as_strided/tensor_move 回合ascend960dt平台适配代码 Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 viewcopy/as_strided/tensor_move 回合ascend960dt平台适配代码 ## 关联的Issue #3498 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6191 | 25 days ago | |
feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6869 merge f1029 into master feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 面向 ops-math RT1.0 → RT2.0 迁移,为本仓 11 个算子补齐 op_graph 侧 InferDataType 推导,并将 op_host InferShape 的边界语义与 RT1.0 对齐(未知秩、非常量 shape、标量等),避免 C1 日落 rt1.0 后图模式推导回归。 ### 改动原因 1. 部分算子只有 InferShape、缺少 InferDataType 注册,图模式下无法完成输出 dtype 推导。 2. 部分 op_host InferShape 与 RT1.0 语义不一致,例如:AsStrided 在 size 非/未知时误用常量值计算甚至越界;Assign 取 value(输入1)而非 ref(输入0);DynamicPartition 只有 InferShapeRange 无 InferShape;Pack/Unpack 将未知秩当已知维计算;ReciprocalGrad 误用 elewise 推导导致广播场景结果错误。 ### 改动方法 1) 新增 op_graph InferDataType(输出 dtype 透传输入 dtype) - 单输出、透传输入 0:Adds、Asin、Power、Assign、TensorMove、ViewCopy - 多输出、逐个透传:Pack、Unpack、DynamicPartition(输入 0 x)、AsStrided(输入 0 x)、StridedSliceGrad(输入 4 dy) - 均为 IMPL_OP(<Op>).InferDataType(...) 注册;op_graph 源码由 cmake/func.cmake 的 file(GLOB_RECURSE ... op_graph/*.cpp) 自动收集,无需改 CMakeLists。 2) op_host InferShape 对齐 - AsStrided:size 张量缺失、size 描述符含未知维/未知秩、GetValueToShape 取常量失败时,输出置未知秩并返回成功(对齐 rt1.0 SetOutputForRank)。 - Assign:输出 shape 改为取输入 0(ref),修复 value 为标量(numel=1)时输出 shape 错误。 - DynamicPartition:新增 InferShape4DynamicPartition(输入未知秩 → 各输出未知秩;输出秩 = x秩 - partitions秩 + 1,第 0 维为 -1,其余维取 x 对应维;partitions 秩大于 x 秩报错),并注册 InferShape + InferShapeRange + OutputShapeDependOnCompute({0})。 - Pack:未知秩输入按通配处理,取首个已知秩输入作为基准,全未知秩则输出未知秩;保留 N 与实例数一致性校验,失败日志改为同时打印基准索引。 - Unpack:输入未知秩时各输出保持未知秩,不再退化为 0 维。 - StridedSliceGrad:shape 输入形状值为 0(前向为 rank-0 标量)时输出 0 维标量,不再报错。 - ReciprocalGrad:InferShape4Elewise → InferShape4Broadcast。 - Adds/Asin/TensorMove/ViewCopy:仅 namespace 注释与格式修正,逻辑不变。 3) 测试 新增 39 个 host 侧 InferShape UT,覆盖未知秩/非常量/标量/广播/失败分支。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4383 ## 测试 - 新增 UT:as_strided 6 例、assign 2 例、concat 7 例、concat_d 4 例、pack 7 例、unpack 6 例、reciprocal_grad 5 例、strided_slice_grad 2 例(共 39 例,全部位于各算子 tests/ut/op_host)。 - 说明:本次流程未在本环境执行编译与 UT 运行,用例已随 PR 提交,需由 CI/本地环境验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6869 | 8 days ago | |
feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6869 merge f1029 into master feat: 补齐11个算子InferDataType推导并对齐RT2.0 InferShape语义 Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 面向 ops-math RT1.0 → RT2.0 迁移,为本仓 11 个算子补齐 op_graph 侧 InferDataType 推导,并将 op_host InferShape 的边界语义与 RT1.0 对齐(未知秩、非常量 shape、标量等),避免 C1 日落 rt1.0 后图模式推导回归。 ### 改动原因 1. 部分算子只有 InferShape、缺少 InferDataType 注册,图模式下无法完成输出 dtype 推导。 2. 部分 op_host InferShape 与 RT1.0 语义不一致,例如:AsStrided 在 size 非/未知时误用常量值计算甚至越界;Assign 取 value(输入1)而非 ref(输入0);DynamicPartition 只有 InferShapeRange 无 InferShape;Pack/Unpack 将未知秩当已知维计算;ReciprocalGrad 误用 elewise 推导导致广播场景结果错误。 ### 改动方法 1) 新增 op_graph InferDataType(输出 dtype 透传输入 dtype) - 单输出、透传输入 0:Adds、Asin、Power、Assign、TensorMove、ViewCopy - 多输出、逐个透传:Pack、Unpack、DynamicPartition(输入 0 x)、AsStrided(输入 0 x)、StridedSliceGrad(输入 4 dy) - 均为 IMPL_OP(<Op>).InferDataType(...) 注册;op_graph 源码由 cmake/func.cmake 的 file(GLOB_RECURSE ... op_graph/*.cpp) 自动收集,无需改 CMakeLists。 2) op_host InferShape 对齐 - AsStrided:size 张量缺失、size 描述符含未知维/未知秩、GetValueToShape 取常量失败时,输出置未知秩并返回成功(对齐 rt1.0 SetOutputForRank)。 - Assign:输出 shape 改为取输入 0(ref),修复 value 为标量(numel=1)时输出 shape 错误。 - DynamicPartition:新增 InferShape4DynamicPartition(输入未知秩 → 各输出未知秩;输出秩 = x秩 - partitions秩 + 1,第 0 维为 -1,其余维取 x 对应维;partitions 秩大于 x 秩报错),并注册 InferShape + InferShapeRange + OutputShapeDependOnCompute({0})。 - Pack:未知秩输入按通配处理,取首个已知秩输入作为基准,全未知秩则输出未知秩;保留 N 与实例数一致性校验,失败日志改为同时打印基准索引。 - Unpack:输入未知秩时各输出保持未知秩,不再退化为 0 维。 - StridedSliceGrad:shape 输入形状值为 0(前向为 rank-0 标量)时输出 0 维标量,不再报错。 - ReciprocalGrad:InferShape4Elewise → InferShape4Broadcast。 - Adds/Asin/TensorMove/ViewCopy:仅 namespace 注释与格式修正,逻辑不变。 3) 测试 新增 39 个 host 侧 InferShape UT,覆盖未知秩/非常量/标量/广播/失败分支。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4383 ## 测试 - 新增 UT:as_strided 6 例、assign 2 例、concat 7 例、concat_d 4 例、pack 7 例、unpack 6 例、reciprocal_grad 5 例、strided_slice_grad 2 例(共 39 例,全部位于各算子 tests/ut/op_host)。 - 说明:本次流程未在本环境执行编译与 UT 运行,用例已随 PR 提交,需由 CI/本地环境验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6869 | 8 days ago | |
下一代assign和tensormove算子开发 Co-authored-by: 张磊<zhanglei121@huawei.com> # message auto-generated for no-merge-commit merge: !724 merge master into master 下一代assign和tensormove算子开发 Created-by: zl_hw Commit-by: 张磊 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!724 | 9 months ago | |
fix: 整改责任田算子日志质量(修复日志规范问题) Co-authored-by: StoneChan_<chensitong2@huawei.com> # message auto-generated for no-merge-commit merge: !5023 merge log-quality-rectify into master fix: 整改责任田算子日志质量(修复日志规范问题) Created-by: StoneChan_ Commit-by: StoneChan_ Merged-by: cann-robot Description: #### 一、问题描述 (必填) 依据 CANN 日志规范检查规则,对责任田算子的运行时日志进行质量整改,修复以下问题: - 级别错配:GE IR 示例(test_geir_*.cpp)失败信息误标 INFO(应 ERROR),存在故障被忽略风险 - 拼写错误:caculate/negtive/faild/mat 等 - 语法错误:"is failed" 中式结构、"fail to get" 缺时态、缺助动词/介词、must same 等 - 变量越限日志缺正确范围(未给出期望值) - 中文标点(全角顿号)残留 - 示例直接 printf/std::cout 绕过统一日志接口;内部缩写 [XIR] 无法理解 - UT 测试中冗余 std::cout 状态输出 影响算子:cumsum/view_copy/addr/split/split_v/unpack/adds/concat/pack/as_strided/eye/dynamic_partition/assign/masked_fill/strided_slice_grad/triu/tril/tensor_move/asin/power/concat_d/concat_v2 #### 二、环境信息 (可选) 不涉及(纯日志文案整改,无运行时行为变化) #### 三、重现步骤 (可选) 执行算子 UT / 查看 logs/plog 中相关算子日志 #### 四、预期结果 (可选) 日志级别、文案符合日志规范,便于问题定位 💡 备注(选填):排除 experimental 目录,仅整改主仓 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/5023 --- 关联的Issue:#2845 See merge request: cann/ops-math!5023 | 2 months ago | |
feat: 新增 ascend960pr/ascend960dt 平台算子适配(14 个算子) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6157 merge f1008 into master feat: 新增 ascend960pr/ascend960dt 平台算子适配(14 个算子) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 为 ascend960pr / ascend960dt 两个新增芯片形态适配算子,覆盖 conversion 与 math 目录下共 14 个算子;同时修正 addr 的 dtype 支持列表判断逻辑,并对个别文件做版权头/格式整理。 ### 改动原因 ascend960pr / ascend960dt 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 this->AICore().AddConfig("ascend960pr", ...) 与 AddConfig("ascend960dt", ...) - conversion:assign、dynamic_partition、masked_fill、mem_set、tensor_move、tril、triu - math:addr、asin、eye、mod、sinc、truncate_div、truncate_mod 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNIT 中追加 ascend960pr、ascend960dt,并在 SUPPORT_TILING_DIR / TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35) 3. **二进制配置**:为每个算子新增 op_host/config/ascend960pr/ 与 op_host/config/ascend960dt/ 目录,包含 <op>_binary.json 与 <op>_simplified_key.ini 4. **addr dtype 判断修正**(math/addr/op_api/aclnn_addr.cpp):GetDtypeSupportList() 的判断由区间判断 >= ASCEND910B && <= ASCEND910E 改为显式判断 == ASCEND910B || == ASCEND910_93 || IsRegBase(),使 reg-base 平台复用 910B dtype 支持列表 5. **格式整理**:conversion/mem_set_v2/op_host/mem_set_v2_def.cpp、math/adds/op_host/adds_def.cpp、math/adds/CMakeLists.txt 仅做版权头/空行/行尾换行等整理 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3440 ## 测试 本 PR 未包含测试代码改动;适配涉及算子信息库、编译配置与二进制配置,需在 ascend960pr / ascend960dt 平台补充二级冒烟与算子泛化验证。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6157 | 1 month ago | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 month ago | |
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 | 6 days ago |
TensorMove
English | 简体中文
Product Support Status
| Product | Supported |
|---|---|
| Ascend 950PR&950DT products | √ |
| Atlas A3 products | √ |
| Atlas A2 products | √ |
| Atlas 200I/500 A2 inference products | √ |
| Atlas inference products | √ |
| Atlas training products | √ |
Function Description
-
Operator function: moves the value of the input tensor to the output tensor.
-
Computation formula:
y=xy=x y=x
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | Input parameter for the TensorMove computation. | FLOAT, FLOAT16, BFLOAT16, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BOOL, HIFLOAT8, FLOAT8_E5M2, FLOAT8_E4M3FN, COMPLEX32, COMPLEX64 | ND |
| y | Output | Output parameter for the TensorMove computation. | FLOAT, FLOAT16, BFLOAT16, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, BOOL, HIFLOAT8, FLOAT8_E5M2, FLOAT8_E4M3FN, COMPLEX32, COMPLEX64 | ND |
Constraint Description
None
Invocation Description
| Invocation Method | Invocation Sample | Description |
|---|---|---|
| aclnn invocation | test_aclnn_tensor_move | Invokes the TensorMove operator through the aclnnSort API. |