开发者
下载
[object Object][object Object][object Object]undefined
[object Object]
  • 接口功能:将 tensor [object Object] 中的值按指定的轴和 [object Object] 指定的位置关系写入或规约到 tensor [object Object] 中。

  • 支持的规约语义:

    • [object Object]:替换写入
    • [object Object]:累加
    • [object Object]:累乘
    • [object Object]:取最大值
    • [object Object]:取最小值
    • [object Object]:求平均值
  • [object Object] 语义:

    • [object Object]:规约时将 [object Object] 原始值参与计算。
    • [object Object]:规约时不将 [object Object] 原始值作为初始值参与计算;首次命中时以第一个 [object Object] 值作为初值。
  • 接口职责边界:

    • [object Object] 统一承接所有显式需要 [object Object] 的规约场景。
    • [object Object] 是固定 [object Object] 且固定 [object Object] 的快捷接口,不再承接显式 [object Object] 传参场景。
    • 若仅需要传统 [object Object] 语义且不显式暴露 [object Object],使用 [object Object]
  • 示例: 对于一个 3D tensor,[object Object] 会按照如下规则进行更新:

    [object Object]
  • 在计算时需要满足以下要求:

    • [object Object][object Object][object Object] 的维度数量必须相同。
    • 对于每一个维度 [object Object],有 [object Object] 的限制。
    • 对于每一个维度 [object Object],如果 [object Object],有 [object Object] 的限制。
    • [object Object] 的值必须在 [object Object] 之间。
    • [object Object] 的维度数应该小于等于 8。
    • [object Object] 中对应维度 [object Object] 的值必须在 [object Object] 之间。
[object Object]

aclnnScatterReduce 和 aclnnInplaceScatterReduce 实现相同的规约 scatter 功能,使用区别如下,请根据自身实际场景选择合适的算子。

  • [object Object]:需新建一个输出张量对象存储计算结果。
  • [object Object]:无需新建输出张量对象,直接在输入张量的内存中存储计算结果。

每个算子分为,必须先调用“aclnnScatterReduceGetWorkspaceSize”或者“aclnnInplaceScatterReduceGetWorkspaceSize”接口获取计算所需 workspace 大小以及包含了算子计算流程的执行器,再调用“aclnnScatterReduce”或者“aclnnInplaceScatterReduce”接口执行计算。

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

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

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

    [object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

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

[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

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

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

    [object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

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

[object Object]
  • 确定性计算:
    • 是否进入确定性路径取决于底层后端能力与上层 deterministic 配置。
    • [object Object] 上,当 [object Object] 为真,[object Object] 属于 [object Object] 时,会禁用 [object Object][object Object],收敛到 [object Object] legacy kernel 的单核调度路径。
    • [object Object] 上,deterministic 能力由独立的 tiling / kernel 分支承接,但不同 reduction 模式的支持范围与 [object Object] 并不完全一致。
  • 接口边界约束:
    • 本页接口显式透传 [object Object],是规约 scatter 的统一公共入口。
    • 若只需要固定 [object Object] 语义且不想透传 [object Object],可使用 [object Object]
    • [object Object] 仍保留传统 [object Object] 路径,但不显式透传 [object Object]
[object Object]

示例代码如下,仅供参考,具体编译和执行过程请参考

aclnnScatterReduce示例代码:

[object Object]