| Files | Last commit | Last update |
|---|---|---|
修改stack资料与实际功能一致 Co-authored-by: zhanglei842<zhanglei842@huawei.com> # message auto-generated for no-merge-commit merge: !7325 merge master into master 修改stack资料与实际功能一致 Created-by: zhanglei842 Commit-by: zhanglei842 Merged-by: cann-robot Description: ## 描述 修改aclnnstack资料与实际支持的维度功能一致 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4686 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7325 | 3 days ago | |
aclnnstack support Fp8 Co-authored-by: zhanglei842<zhanglei842@huawei.com> # message auto-generated for no-merge-commit merge: !5379 merge aclnnStack into master aclnnstack support Fp8 Created-by: zhanglei842 Commit-by: zhanglei842 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3285 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5379 | 1 month ago | |
迁移开源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 months ago | |
aclnnDiag和aclnnStack空输入时拦截错形out Co-authored-by: IceBearPolar<xuxuepeng4@huawei.com> # message auto-generated for no-merge-commit merge: !6376 merge issue3555 into master aclnnDiag和aclnnStack空输入时拦截错形out Created-by: IceBearPolar Commit-by: IceBearPolar Merged-by: cann-robot Description: ## 描述 aclnnDiag 和 aclnnStack 在空输入或空对角线的零退路径上,先于出参形状校验返回 ACLNN_SUCCESS,错形 out 被静默放行。空分支此时还没有 diagOpOut / castIn,不能把原来依赖中间 Tensor 的检查直接前移,因此按输入和 diagonal / dim 推导预期形状,再用 OP_CHECK_SHAPE_NOT_EQUAL_WITH_EXPECTED_SIZE 核对 out。形状不符返回 ACLNN_ERR_PARAM_INVALID,形状正确的空结果才保留空执行图。 - **aclnnDiag**:新增 InferDiagOutShape,与 DiagV2 infershape 一致。秩小于 2 时输出边长为 numel + |diagonal| 的方阵;秩为 2 时按 diagonal 抽取对角线,越界长度为 0。推导结果为空时,形状匹配后零退;输入为空且推导结果非空(一维空 tensor、非零 diagonal 得到的非空零矩阵)时,形状匹配后仍 FillScalar 填 0。非空路径仍走原有 CheckReduceOutShape。 - **aclnnStack**:新增 InferStackOutShape,在已归一化的 realDim 处插入 tensor 个数。单个空 tensor,以及全部为空导致 castIn == nullptr 的两条零退,都先核对 out。非空路径仍走原有 CheckShapeAndScalarSame。 ## 关联的Issue [#3555](https://gitcode.com/cann/ops-math/issues/3555) ## 测试 在容器 xxp_9.2 上编译并执行 pack、diag_v2 的 host / op_api 单测,全部通过: - op_host:DiagV2.*、PackInfer*,8 个用例通过 - op_api:l2_diag_test.* 4 个用例通过,l2_stack_test.* 49 个用例通过 覆盖空输入且 out 形状正确时返回成功、形状错误时返回 ACLNN_ERR_PARAM_INVALID,以及一维空输入、非零 diagonal 时仍填零的路径。     ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6376 | 26 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 | 11 days ago | |
feat: vector算子批量适配ascend960pr(DV122)平台 Co-authored-by: biabu111<hebaojing1@huawei.com> # message auto-generated for no-merge-commit merge: !6663 merge feat/dv122-ascend960pr-adaptation into master feat: vector算子批量适配ascend960pr(DV122)平台 Created-by: biabu111 Commit-by: biabu111 Merged-by: cann-robot Description: ## 描述 DV122(Ascend960PR / dav_9202 / Ascend960PR_969A1)vector 算子批量适配。参照 ascend960dt(DAV_9201) 既有适配模式,为 vector 算子清单内 66 个算子补齐 ascend960pr 支持,适配原则:9201 支持的能力 9202 均支持。 **注册级适配(66 算子):** - CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 "ascend960pr",SUPPORT_TILING_DIR 按位插入对应 arch35 - op_host/*_def.cpp:AICore().AddConfig("ascend960pr", <960dt 同款配置>) - op_host/config/ascend960pr/:二进制配置(*_binary.json / *_simplified_key.ini,复制自 ascend960dt,与 960dt 内容一致) - op_kernel*/CMakeLists.txt:COMPUTE_UNITS 追加 ascend960pr(arch92 kernel 入口同步生效) - scripts/kernel/binary_config/ascendc_config.json:compute_units 与 compile_options 补齐 **代码级补齐(9201 → 9201||9202):** - tiling/aclnn/infershape/fusion_pass/kernel 中 NpuArch::DAV_9201、__NPU_ARCH__ == 9201、"Ascend960DT" 等 960 平台门禁补齐 DAV_9202 / 9202 / "Ascend960PR" - 覆盖 concat/tanh_grad/slice/strided_slice/expand/tensor_equal/lin_space/range 等的 tiling/aclnn/graph_infer/fusion_pass 平台门禁(家族特性判定依据:gather_v2 适配提交中 isAscend96_ = DAV_9201||DAV_9202、unsorted_segment_sum 注释"ascend960dt/ascend960pr(DAV_9201/DAV_9202) 平台判定,用于 960 专属特性(ScatterDataCopy 等)的运行时开关") ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4682 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 冒烟、ut、st已通过 <!--描述进行了哪些测试来验证你的改动。--> - CANN 9.3.0 工具链 --soc=ascend960pr 构建 19 个抽样算子(覆盖全部修改类型):宿主侧(def/tiling/infershape/aclnn)100% 编译通过,0 错误 - 构建日志确认正确消费新增的 config/ascend960pr/*_binary.json - --soc=ascend960dt 同算子集构建行为一致,无回归 - 一致性审计:范围内 960dt-without-960pr 注册缺口 0;修改过的 CMakeLists SUPPORT_COMPUTE_UNIT/TILING_DIR 位置对齐 0 问题;ascendc_config.json 语法有效 - 注:opc 二进制生成阶段因当前工具链缺 Ascend960PR_969A1 平台数据无法本地执行,需在 CI(含 960PR 平台数据的工具链)完成二进制编译与上板验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!6663 | 3 days ago | |
concat算子tilingdata压缩,降低头开销 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> # message auto-generated for no-merge-commit merge: !4196 merge master into master concat算子tilingdata压缩,降低头开销 Created-by: hw-zhangpanpan Commit-by: hw-zhangpanpan Merged-by: cann-robot Description: ## 描述 目前concat算子tilingdata达到1300+B,为了降低小case场景头开销,提升性能,先压缩减小tilingdata。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2849 ## 测试 泛化用例验证 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4196 | 2 months ago | |
修改aclnnstack golden Co-authored-by: zhanglei842<zhanglei842@huawei.com> # message auto-generated for no-merge-commit merge: !6240 merge master into master 修改aclnnstack golden Created-by: zhanglei842 Commit-by: zhanglei842 Merged-by: cann-robot Description: ## 描述 pack 是纯数据搬运算子(kernel Pack 语义等价 torch.stack),输出为输入按 axis 拼接的逐 bit 拷贝。现有测试 golden(conversion/pack/tests/assets/golden.py)存在以下不足: 1. 旧 aclnn_stack_golden 仅执行 torch.stack(tensors, dim),未建模 aclnnStack(op_api/aclnn_stack.cpp)的实际执行链——输入 cast 到 promoteType 后打包、输出侧再 cast 到输出 dtype,混合 dtype 用例的 golden 与设备行为不一致; 2. float8_e5m2 / float8_e4m3fn / hifloat8 / bfloat16 等以 ml_dtypes/en_dtypes 扩展 numpy dtype 到达 golden 的输入,torch.from_numpy 不识别,旧 golden 无处理路径; 3. complex32 以 float16 + 尾维 [2](real/imag 交错)存储,负 axis 须归一化到尾维之前,旧 golden 未处理; 4. 无精度标准(tolerance)声明,无 e2e(framework-api torch.stack)通路 golden。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3687 ## 测试 通过ttk验证了直调、geir、ete模式的调用验证,golden结果和npu,竞品相同 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6240 | 18 days ago | |
[ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !5778 merge dev-v121 into master [ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 描述 conversion 类 7 个算子(batch_to_space_nd、concat、concat_d、concat_v2、depth_to_space、pack、space_to_depth)与 math 类 2 个算子(erfc、rint)新增 ascend960dt / ascend960pr 平台支持,复用 arch35 tiling 框架,主要改动: - 平台注册:9 个算子 CMakeLists.txt 的 COMPUTE_UNIT/SUPPORT_COMPUTE_UNIT 新增 ascend960dt、ascend960pr(TILING_DIR 复用 arch35),op_host/*_def.cpp 新增对应 this->AICore().AddConfig(...) 注册; - 预编译 binary 接入:batch_to_space_nd、concat_d、depth_to_space、pack、space_to_depth、rint 新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/ 下的 *_binary.json 与 *_simplified_key.ini;concat_v2 为 HOSTCPU 算子(依赖 concat),无独立 binary;erfc 的 kernel 源码(arch35/erfc.cpp)通过 add_kernel_sources 的 COMPUTE_UNITS 纳入新平台编译; - concat 的 arch35 tiling/kernel 适配 DAV_9201 架构(仅 9201 生效,不影响既有平台路径): - tiling 侧:DAV_9201 平台 ubFactorDim0 按两倍 BLOCK(64B)对齐修正;新增 dtypeSize 提升优化(末轴字节满足 128/64/32/16B 对齐时提升 dtypeSize,减少搬运次数),并注册 bitwidth=16 系列 tilingKey(12116/12126/21116/21216/30016 等); - kernel 侧:__NPU_ARCH__ == 9201 下 DataCopyPad 使用带 enAtomicSync 参数的接口分支。 ## 关联的Issue #3222 https://gitcode.com/cann/ops-math/issues/3222 ## 测试 平台注册与预编译 binary 接入部分不涉及既有 kernel 逻辑修改;concat 为 DAV_9201 架构适配新增专属分支,既有平台路径不变;可通过 PR 评论 compile 触发 CI 编译流水线验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5778 | 29 days ago | |
aclnnstack support Fp8 Co-authored-by: zhanglei842<zhanglei842@huawei.com> # message auto-generated for no-merge-commit merge: !5379 merge aclnnStack into master aclnnstack support Fp8 Created-by: zhanglei842 Commit-by: zhanglei842 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3285 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5379 | 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 | 9 days ago |
Pack
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: packs a list of tensors in values into a tensor that is one dimension higher than each tensor in values, by packing along the axis dimension. Given a list of length N of tensors with shape (A, B, C); if axis == 0, the output tensor will have shape (N, A, B, C).
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | List of tensors to be concatenated. | COMPLEX128, COMPLEX64, BOOL, DOUBLE, FLOAT32, FLOAT16, BFLOAT16, INT16, INT32, INT64, INT8, UINT8, UINT16, UINT32, UINT64, HIFLOAT8, FLOAT8_E5M2, FLOAT8_E4M3FN | ND |
| axis | Optional attribute | Specifies the dimension along which tensors are packed. | INT | - |
| N | Optional attribute | Specifies the number of tensors to be packed. | INT | - |
| y | Output | Output result. | COMPLEX128, COMPLEX64, BOOL, DOUBLE, FLOAT32, FLOAT16, BFLOAT16, INT16, INT32, INT64, INT8, UINT8, UINT16, UINT32, UINT64, HIFLOAT8, FLOAT8_E5M2, FLOAT8_E4M3FN | ND |
- Atlas training products, Atlas inference products, and Atlas 200I/500 A2 inference products: BFLOAT16, HIFLOAT8, FLOAT8_E5M2, and FLOAT8_E4M3FN are not supported.
- Atlas A2 products and Atlas A3 products: HIFLOAT8, FLOAT8_E5M2, and FLOAT8_E4M3FN are not supported.
Constraint Description
None.
Invocation Description
| Invocation Method | Sample Code | Description |
|---|---|---|
| aclnn API | test_aclnn_stack | Invokes the Pack operator through the aclnnStack API. |