| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(math): add GetDynamicDims AICPU op Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4142 merge migrate-get-dynamic-dims into master feat(math): add GetDynamicDims AICPU op Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 为 math/get_dynamic_dims 新增 GetDynamicDims AICPU 算子迁移实现,补齐图模式构图、AICPU kernel 注册、UT、GEIR example 和文档入口。 主要改动: - 新增 math/get_dynamic_dims 算子目录,包含 CMake 接入、op_graph 定义、AICPU kernel 和 AICPU OpDef。 - 新增 GEIR graph example,用于验证图模式调用链路。 - 新增 AICPU UT,覆盖 GetDynamicDims AICPU kernel 的基础功能和异常路径。 - 新增 README,并更新 docs/zh/op_list.md。 本次迁移保持 op_host/infershape 和 aclnn/op_api 不支持,不额外新增对应实现。 ## 关联的Issue 暂无。 ## 测试 已执行并通过: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims --gtest_filter=GetDynamicDimsAicpuTest* 已执行并通过自定义包构建: bash bash build.sh --pkg --ops=get_dynamic_dims --vendor_name=custom 已执行并通过 GEIR graph example: bash bash build.sh --run_example get_dynamic_dims graph 日志已确认自定义 AICPU 路径:aicpu_custom_scheduler RunCpuKernel[GetDynamicDims]。 已执行并通过 pre-commit: bash pre-commit run --files docs/zh/op_list.md math/get_dynamic_dims/CMakeLists.txt math/get_dynamic_dims/README.md math/get_dynamic_dims/examples/test_geir_get_dynamic_dims.cpp math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.h math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu_def.cpp math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 - 新增 math/get_dynamic_dims/README.md。 - 更新 docs/zh/op_list.md。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4142 | 2 个月前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 20 天前 | |
GetDynamicDims RT2 infershape 迁移 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4272 merge migrate-get-dynamic-dims into master GetDynamicDims RT2 infershape 迁移 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ### 修改内容 - 新增 GetDynamicDims RT2 InferShape/InferDataType。 - 按 canndev 旧 GetDynamicDimsInfer 语义等价迁移:校验 N、统计 shape_info 中 -1 数量、输出 dims shape 为 [unknownDimsNum]、dtype 跟随 input0。 - 修复 AICPU UT 中 output_tensor 空指针断言由 EXPECT_NE 改为 ASSERT_NE。 ### 依据 - canndev: ops/built-in/op_proto/math_ops.cc GetDynamicDimsInfer - canndev: ops/built-in/op_proto/inc/math_ops.h REG_OP(GetDynamicDims) ### 验证 - git diff --check - bash build.sh -u --ophost --ops=get_dynamic_dims --noexec -j8 - ./build/tests/ut/op_host/math_op_host_ut --gtest_filter=GetDynamicDimsInfershapeTest.* - pre-commit run --files 相关 3 个文件 See merge request: cann/ops-math!4272 | 1 个月前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 20 天前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 20 天前 | |
feat: enable GetDynamicDims AICPU constant folding Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5007 merge enable-get-dynamic-dims-const-folding into master feat: enable GetDynamicDims AICPU constant folding Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims 的 AICPU OpDef 已配置 OPS_FLAG_OPEN,GE 会尝试在图编译期进行常量折叠,但此前 kernel 未以 x86 host 版本编入 libopconstant_folding_math.so,导致常量折叠标志已开启却缺少可执行的 host kernel。 本次修改: 1. 在 GetDynamicDims 的 add_all_modules_sources 中增加 HOSTCPU TRUE,生成 get_dynamic_dims_host_const_obj 并链接到 libopconstant_folding_math.so。 2. 引入公共 aicpu/math_aicpu_register.h,将注册宏切换为 OPS_MATH_REGISTER_CPU_KERNELV2,支持 host 侧 V2 注册及 V1 weak fallback。 3. 不修改 get_dynamic_dims_aicpu_def.cpp,因为 opsFlag 已为 OPEN;不修改 kernel 计算逻辑,非 host 构建下注册宏退化为原 REGISTER_CPU_KERNEL。 ## 关联的Issue Fixes #2836 ## 测试 1. pre-commit run:全部通过,包括 clang-format、codespell 和 OAT。 2. built-in CMake 配置:成功生成 get_dynamic_dims_host_const_obj,并确认其进入 libopconstant_folding_math.so object 列表。 3. cmake --build build --target opconstant_folding_math_builtin -j8:构建通过。 4. so 内容正反对照: - GetDynamicDims:HIT。 - 原有基线 Tile、TransData:HIT。 - 未使能的 AbsGrad、Bincount、BesselI0e:MISS。 5. object 符号检查:存在 Creator_kGetDynamicDims_Kernel,并引用 weak RegistCpuKernelV2。 6. bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims -j16:7 个测试全部通过。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5007 | 1 个月前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 20 天前 |
GetDynamicDims
功能说明
GetDynamicDims算子用于根据shape_info中标记的未知维度,从动态输入张量中提取实际维度值并输出。
参数说明
| 参数名 | 输入/输出 | 参数类型 | 数据类型 | 说明 |
|---|---|---|---|---|
| input | 输入 | Tensor动态输入 | int32、int64 | 输入张量,每个输入表示一个shape向量。 |
| dims | 输出 | Tensor | int32、int64 | 输出未知维度的实际取值,数据类型与input一致。 |
| shape_info | 属性 | ListInt | int64 | 各输入的shape信息,按rank, dim0, dim1, ...编码,-1表示未知维度。 |
| N | 属性 | Int | int64 | 动态输入个数。 |
约束说明
- 输入
input数量必须与属性N一致。 - 所有输入
input的数据类型必须一致。 shape_info中描述的输入个数和每个输入rank必须与实际输入一致。
调用说明
| 调用方式 | 样例链接 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_get_dynamic_dims | 通过算子IR构图方式调用GetDynamicDims算子。 |