| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
Add SparseSegmentSum op migration Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !7621 merge migrate-sparse-segment-sum into master Add SparseSegmentSum op migration Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 将 SparseSegmentSum AICPU 算子迁移至 ops-nn 仓库,共新增 16 个文件,并同步更新 docs/zh/op_list.md。算子沿 segment_ids 指定的稀疏分段对 x 的切片求和,计算公式 y[segment_ids[i]] += x[indices[i]],兼容 TensorFlow SparseSegmentSum。 实现要点: 1. op_graph/sparse_segment_sum_proto.h:REG_OP(SparseSegmentSum) 注册 3 输入(x/indices/segment_ids)、1 输出(y),声明支持的数据类型集合(x/y 11 种 dtype,indices/segment_ids 为 INT32/INT64)。 2. op_host/sparse_segment_sum_infershape.cpp:校验 x rank≥1、indices/segment_ids 为 1D 且 shape 一致;输出 dim0 在 segment_ids 为 const 时取 max(segment_ids)+1,否则置 UNKNOWN_DIM;输出 dim[1:] 取 x[1:];输出 dtype 与 x 一致。 3. op_kernel_aicpu/sparse_segment_sum_aicpu.cpp:校验 segment_ids 非负且单调非递减、indices 元素 < x.dim(0);使用 Eigen TensorMap 按段累加 input_flat.chip<0>(indices[r]),段间 gap 与末尾 gap 用 setConstant(0) 填零;x 支持 11 种 dtype,indices/segment_ids 各支持 INT32/INT64(4 种组合)。 4. 配套 examples(图模式调用样例)、tests/ut(Host InferShape + kernel UT)、各级 CMakeLists.txt 与 README.md。 ## 关联的Issue #4294 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行各级 CMakeLists.txt 配置与编译,验证 SparseSegmentSum 算子(op_graph / op_host / op_kernel_aicpu / tests)可正常构建。 2. **算子注册/加载验证** - 验证 REG_OP(SparseSegmentSum) 与 REGISTER_CPU_KERNEL(SparseSegmentSum, ...) 注册成功,算子可被框架正确识别并加载。 3. **InferShape 验证** - 运行 tests/ut/op_host/test_sparse_segment_sum_infershape.cpp,验证:x rank≥1 校验、indices/segment_ids 1D 且 shape 一致校验、const segment_ids 时输出 dim0 = max+1、非 const 时输出 dim0 = UNKNOWN_DIM、输出 dtype 与 x 一致。 4. **kernel 单元测试** - 运行 tests/ut/op_kernel_aicpu/test_sparse_segment_sum.cpp,覆盖 x 的 11 种数据类型(INT8/16/32/64、UINT8/16/32/64、FLOAT16/FLOAT/DOUBLE)与 indices/segment_ids 的 4 种 INT32/INT64 组合,验证累加结果与 gap 填零正确。 5. **参数校验测试** - 覆盖 SparseSegmentCheck / SparseSegmentDataCheck 中的边界场景:x rank<1、indices/segment_ids 元素数不一致、x/y dtype 不一致、segment_ids 存在负值、segment_ids 非单调递减、indices 元素 ≥ x.dim(0) 等,均应返回 KERNEL_STATUS_PARAM_INVALID。 6. **图模式接口调用验证** - 运行 examples/test_geir_sparse_segment_sum.cpp,通过 GE IR 构图方式调用 SparseSegmentSum 算子,验证端到端功能与输出正确性,并与 TensorFlow SparseSegmentSum 结果对齐。 7. **算子清单登记验证** - 确认 docs/zh/op_list.md 中 SparseSegmentSum 条目正确显示,分类为 index,README 链接可达。 ## 文档更新 - 新增 index/sparse_segment_sum/README.md:产品支持情况(Ascend 950PR/950DT 支持)、功能说明、参数说明(含完整数据类型表格)、约束说明与调用说明。 - 更新 docs/zh/op_list.md:登记 SparseSegmentSum 算子条目。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7621 | 2 个月前 | |
docs(index): fix SparseSegmentSum README Co-authored-by: jialimin1<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !8950 merge fix/sparse-segment-sum-readme into master docs(index): fix SparseSegmentSum README Created-by: jialimin1 Commit-by: jialimin1 Merged-by: cann-robot Description: ## 描述 修正 SparseSegmentSum 算子 README 中的产品支持范围和数据类型名称,使文档与实际支持能力及算子文档规范保持一致: 1. 将 Atlas A3、Atlas A2、Atlas 推理系列和 Atlas 训练系列产品的支持状态由“不支持”更正为“支持”。 2. 移除参数数据类型名称中的 DT_ 前缀,统一使用 INT8、INT32、FLOAT16 等标准文档格式。 ## 关联的Issue 关联Issue #4935 ## 测试 本次为纯文档变更,建议执行以下静态检查: 1. 检查产品支持表在 Markdown 渲染后列对齐、支持标记及产品名称显示正常。 2. 核对 x、indices、segment_ids 和 y 的数据类型名称均已移除 DT_ 前缀。 3. 对照算子实现或产品支持清单,确认更新后的支持范围准确。 4. 运行仓库已有的 Markdown 或文档格式检查(如有)。 > 未执行算子功能测试;本次修改不涉及算子实现代码。 ## 文档更新 更新 index/sparse_segment_sum/README.md: - 修正 4 类 Atlas 产品的支持状态。 - 规范 4 个输入/输出参数的数据类型名称。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8950 | 1 个月前 |
SparseSegmentSum
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能:沿
segment_ids指定的稀疏分段对x的切片求和。 - 计算公式:
y[segment_ids[i]] += x[indices[i]]。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量,rank 至少为 1。 | INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、DOUBLE、FLOAT、FLOAT16 | ND |
| indices | 输入 | 一维索引张量,用于选择 `x` 第 0 维上的切片。 | INT32、INT64 | ND |
| segment_ids | 输入 | 一维分段 ID 张量,shape 需要与 `indices` 一致,取值需要非负且单调非递减。 | INT32、INT64 | ND |
| y | 输出 | 输出张量,数据类型与 `x` 相同。 | INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、DOUBLE、FLOAT、FLOAT16 | ND |
约束说明
x的 rank 需要大于等于 1。indices与segment_ids必须为一维张量,且元素数量一致。segment_ids必须按非递减顺序排列。indices中的元素必须小于x第 0 维大小。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式 | test_geir_sparse_segment_sum | 通过 GE IR 构图方式调用 SparseSegmentSum 算子。 |