| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
math仓算子添加隔离宏 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !5280 merge proto_reg_op_modify into master math仓算子添加隔离宏 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 CalcBucketsLimitAndOffset、CaseCondition、ConjugateTranspose、CompareAndBitpack、Conj、GetDynamicDims、InplaceTopKDistance、ProdEnvMatACalcRij、TopKPQDistance、TopKPQDistanceV2、TopKV2D、Zeta 算子添加隔离宏,防止原型重复定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 无 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5280 | 26 天前 | |
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(aicpu): const-qualify TransData and GetDynamicDims helpers Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !5801 merge fix/aicpu-const-trans-data-dynamic-dims into master fix(aicpu): const-qualify TransData and GetDynamicDims helpers Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 为以下 6 个不修改对象成员状态的 AICPU 成员函数补充 const 修饰,并同步更新声明与定义: - TransDataCpuKernel::IsOriginSupportFormatTransfer - TransDataCpuKernel::GetPaddingTwoShape - TransDataCpuKernel::Transpose - TransDataCpuKernel::GetCubeSizeByDataType - GetDynamicDimsCpuKernel::DoCompute - GetDynamicDimsCpuKernel::FillOutput 其中 Transpose、GetPaddingTwoShape 和 FillOutput 仅修改参数或输出缓冲区,不修改对象成员变量。其余函数只读取参数、调用已有 const 成员函数或无状态辅助函数。本次变更仅补充成员函数的 const 限定,不改变计算逻辑。 同时将 TransDataCpuKernel::HandleHwcnToFzC04 的 output_tensor 参数改为 const Tensor*。该参数只用于读取 Tensor 的大小、形状、格式及数据地址,函数写入的是数据地址指向的输出缓冲区,不修改 Tensor 对象本身。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3236 ## 测试 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范整改,为不修改成员状态的函数补充 const 修饰。 See merge request: cann/ops-math!5801 | 8 天前 | |
fix(build): 修复UT构建失败问题 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !5145 merge master into master fix(build): 修复UT构建失败问题 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5145 | 1 个月前 | |
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 个月前 | |
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 个月前 |
GetDynamicDims
功能说明
GetDynamicDims算子用于根据shape_info中标记的未知维度,从动态输入张量中提取实际维度值并输出。
参数说明
| 参数名 | 输入/输出 | 参数类型 | 数据类型 | 说明 |
|---|---|---|---|---|
| input | 输入 | Tensor动态输入 | int32、int64 | 输入张量,每个输入表示一个shape向量。 |
| dims | 输出 | Tensor | int32、int64 | 输出未知维度的实际取值。 |
| shape_info | 属性 | ListInt | int64 | 各输入的shape信息,按rank, dim0, dim1, ...编码,-1表示未知维度。 |
| N | 属性 | Int | int64 | 动态输入个数。 |
约束说明
- 输入
input数量必须与属性N一致。 shape_info中描述的输入个数和每个输入rank必须与实际输入一致。- 输出
dims的数据类型支持int32和int64。
调用说明
| 调用方式 | 样例链接 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_get_dynamic_dims | 通过算子IR构图方式调用GetDynamicDims算子。 |