文件最后提交记录最后更新时间
27 天前
1 个月前
27 天前
27 天前
27 天前
1 个月前
1 个月前
README

GatherV2

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:从输入张量 x 的指定维度 axis 上,根据 indices 中的下标取出数据,生成输出张量 y
  • 接口形态:当前实验目录提供 aclnnGatherV2GetWorkspaceSize / aclnnGatherV2 接口,接口中 axisdim 参数传入,并在 Level0 内部转换为 axis Tensor。
  • 执行路径:aclnn 接口将输入和索引转为连续张量后调用 Level0 GatherV2,当前目录按 Ascend C AICore 路径加入 launcher。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式 维度
x 输入 待 gather 的输入张量,对应 aclnn 接口中的 self。 FLOAT、FLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL、DOUBLE ND 1-8
indices 输入 索引张量,用于指定从 axis 维度取数的位置。 INT32、INT64 ND 0-8
axis 输入 gather 维度。aclnn 接口中该值由 int64_t dim 参数传入,Level0 内部转换为标量 Tensor。 INT64;图模式 axis Tensor 支持 INT32、INT64 ND 0
y 输出 根据 indices 从 x 中取出后的输出张量,数据类型需与 x 一致。 FLOAT、FLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL、DOUBLE ND 0-8
batch_dims 属性 图模式和 Level0 属性,默认值为 0;当前 aclnn 接口不暴露该参数。 INT64 - -
negative_index_support 属性 图模式和 Level0 属性,默认值为 false;当前 aclnn 接口不暴露该参数。 BOOL - -

约束说明

  • 仅支持 ND 格式,不支持私有格式输入、索引或输出。
  • xindicesy 的 rank 均不超过 8;当前 Ascend C experimental 路径要求 x 为非标量张量。
  • indices 仅支持 INT32、INT64,y 的数据类型必须与 x 一致。
  • dim 支持负数,合法范围为 [-x rank, x rank)
  • 输出 shape 需与接口推导结果一致:indices 为标量时按长度为 1 的维度处理;其他场景下,将 xdim 维替换为 indices shape。
  • xindices 为空 Tensor 且前置参数校验通过时,aclnnGatherV2GetWorkspaceSize 返回成功且 workspace 为 0。
  • AICore 二进制当前配置覆盖 ascend950。当前 AICore kernel 为实验骨架,Process() 尚未实现实际 gather 计算。

调用说明

调用方式 接口/文件 说明
aclnn 调用 op_api/aclnn_gather_v2_experimental.haclnnGatherV2GetWorkspaceSize / aclnnGatherV2 当前目录未提供 examples/test_aclnn_gather_v2.cpp,可通过 aclnn 接口头文件和 ATK/UT 用例进行验证。
Level0 内部调用 op_api/gather_v2_l0_experimental.hGatherV2 aclnn 接口完成参数校验和连续化处理后,调用 Level0 接口加入 AICore launcher。
图模式调用 op_graph/gather_v2_proto_experimental.h IR 输入为 xindicesaxis,输出为 y,属性为 batch_dimsnegative_index_support