获取每列最大值对应行索引。同时提供值+索引模式,可同时返回每列的最大值及其行索引。
设 [object Object] 和 [object Object]。对 [object Object]:
同步形式:
[object Object]
IR Level 1(SSA):
[object Object]
IR Level 2(DPS):
[object Object]
同步形式:
[object Object]
IR Level 1(SSA):
[object Object]
IR Level 2(DPS):
[object Object]
声明于 [object Object]:
[object Object]
[object Object]
[object Object]
[object Object]和[object Object]必须为[object Object]。[object Object]可使用ND或DN的非分形布局([object Object])。[object Object]可为[object Object](与[object Object]正交;示例中省略[object Object]时默认为[object Object])。[object Object]必须使用标准ND布局:行主且非分形([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]用作索引跟踪和当前比较值的临时存储。
- 支持的源元素宽度为8位、16位或32位,覆盖
[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]。 - 接口接收
[object Object],但实现实际并不使用它。
除通用约束外:
[object Object]必须为[object Object],使用标准ND布局(行主、非分形)。[object Object]元素类型必须与源元素类型[object Object]一致。- 不支持 8位源类型。
- 运行时检查:
[object Object][object Object][object Object][object Object][object Object]
- 支持的源元素类型:
[object Object]、[object Object]、[object Object]、[object Object]。 - 当源元素大小为2字节(
[object Object]、[object Object])时:[object Object]元素类型必须为[object Object]或[object Object]。 - 当源元素大小为4字节(
[object Object]、[object Object])时:[object Object]元素类型必须为[object Object]或[object Object]。 [object Object]的元素类型必须与[object Object]一致。[object Object]用作临时存储;对half输入类型,内部执行s16->f16->s32转换路径。
- 源元素大小必须为16位或32位(
[object Object])。 - 当源元素大小为2字节(
[object Object]、[object Object]、[object Object])时:[object Object]元素类型必须为[object Object]或[object Object]。 - 当源元素大小为4字节(
[object Object]、[object Object]、[object Object])时:[object Object]元素类型必须为[object Object]或[object Object]。 - 接口接收
[object Object],但实现实际并不使用它。
Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品实现中
[object Object]始终被使用,但使用程度取决于源元素类型和模式:[object Object]undefined
[object Object]Tile的数据类型必须与[object Object]的数据类型一致。[object Object]Tile在单行内被划分为最多三个区域:- 区域0(
[object Object]):当前行索引计数器(每行递增)。始终存储在[object Object]中。 - 区域1(
[object Object]):当前最大值元素,用于比较。[object Object]类型存储在[object Object]中;[object Object]类型存储在[object Object]中。 - 区域2(
[object Object]):argmax索引结果。仅在[object Object]+ 纯索引模式下存储在[object Object]中;其他情况存储在[object Object]中。
- 区域0(
[object Object]的确定方式:- 当
[object Object]时:[object Object]。 - 当
[object Object]时:[object Object]。
- 当
对于
[object Object]+ 纯索引模式([object Object]使用量最大的情况),当[object Object]较小时可直接将[object Object]Tile大小设为与[object Object]相同;也可按以下公式算出[object Object]Tile所需stride:[object Object]对于其他类型/模式组合,
[object Object]中仅需要区域0,因此[object Object]跨度为[object Object]即可。在纯索引模式下,若输入为
[object Object]类型,[object Object]区域2的数据将经过s16->f16->s32转换后才写入[object Object]。
- Ascend 950PR/Ascend 950DT实现中
[object Object]临时Tile 在两种模式下均不使用。Ascend 950PR/Ascend 950DT使用基于向量寄存器的计算方式([object Object]),不需要临时Tile存储。 [object Object]在C++内建接口签名中保留,仅为了与Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品的API兼容。
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]