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

MaskedScatter

产品支持情况

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

功能说明

根据掩码(mask)张量中元素为True的位置,复制(source)中的元素到(selfRef)对应的位置上。

函数原型

每个算子分为两段式接口,必须先调用“aclnnInplaceMaskedScatterGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnInplaceMaskedScatter”接口执行计算。

aclnnStatus aclnnInplaceMaskedScatterGetWorkspaceSize(
 aclTensor*         selfRef,
 const aclTensor*   mask,
 const aclTensor*   source,
 uint64_t*          workspaceSize,
 aclOpExecutor**    executor)
aclnnStatus aclnnInplaceMaskedScatter(
 void*          workspace,
 uint64_t       workspaceSize,
 aclOpExecutor* executor,
 aclrtStream    stream)

aclnnInplaceMaskedScatterGetWorkspaceSize

  • 参数说明

    参数名 输入/输出 描述 使用说明 数据类型 数据格式 维度(shape) 非连续Tensor
    selfRef 输入 输入Tensor。 - FLOAT、FLOAT16、DOUBLE、INT8、INT16、INT32、INT64、UINT8、BOOL、BFLOAT16 ND -
    mask 输入 输入Tensor。 shape不能大于selfRef,且需要和selfRef满足broadcast关系 BOOL、UINT8 ND - -
    source 输入 输入Tensor。 元素数量需要大于等于mask中元素为true的数量。 与selfRef相同 ND - -
    workspaceSize 输出 返回需要在Device侧申请的workspace大小。 - - - - -
    executor 输出 返回op执行器,包含了算子计算流程。 - - - - -
  • 返回值

    aclnnStatus:返回状态码,具体参见aclnn返回码

    第一段接口完成入参校验,出现以下场景时报错:

    返回值 错误码 描述
    ACLNN_ERR_PARAM_NULLPTR 161001 传入的selfRef、mask、source是空指针。
    ACLNN_ERR_PARAM_INVALID 161002 selfRef和mask的数据类型不在支持的范围之内。
    selfRef和mask的shape无法做broadcast。
    mask的shape维度大于selfRef。
    source的数据类型和selfRef的数据类型不同。

aclnnInplaceMaskedScatter

  • 参数说明

    参数名 输入/输出 描述
    workspace 输入 在Device侧申请的workspace内存地址。
    workspaceSize 输入 在Device侧申请的workspace大小,由第一段接口aclnnInplaceMaskedScatterGetWorkspaceSize获取。
    executor 输入 op执行器,包含了算子计算流程。
    stream 输入 指定执行任务的Stream。
  • 返回值

    aclnnStatus:返回状态码,具体参见aclnn返回码

约束说明

调用示例

调用方式 样例代码 说明
aclnn接口 test_aclnn_masked_scatter 通过aclnnInplaceMaskedScatter接口方式调用MaskedScatter算子。