Skip to content

概述

Compare、Compares称之为比较接口,用于逐元素比较Tensor或Scalar的大小,并根据比较结果生成掩码。Select、GatherMask称之为选择接口,用于根据掩码条件从源操作数中选取元素输出到目的操作数。推荐使用场景如下:

表1 比较与选择接口推荐使用场景

API核心功能Mask类型应用场景
Compare逐元素比较两个tensor大小,如果比较后的结果为真,则输出结果的对应比特位为1,否则为0。支持多种比较模式(等于、小于、大于...)。
不支持Vector计算的Mask设置。结果存入UB。
未使用逐元素比较,结果写入内存。
Compare(结果存入寄存器)逐元素比较两个tensor大小,如果比较后的结果为真,则输出结果的对应比特位为1,否则为0。支持多种比较模式。
支持Vector计算的Mask设置。结果暂存CmpMask寄存器。详情参考表2 CmpMask与VectorMask
src传参mask用于Vector计算;
输出结果为CmpMask(比较掩码)。
逐元素比较,结果写寄存器。
Compares逐元素比较一个tensor中的元素和另一个scalar的大小,如果比较后的结果为真,则输出结果的对应比特位为1,否则为0。
支持多种比较模式。
未使用张量和标量逐元素比较,结果写入内存。
Select给定两个源操作数src0和src1,根据selMask(用于选择的Mask掩码)的比特位值选取元素。
支持CmpMask设置,支持用于Vector计算的Mask的设置。详情参考表2 CmpMask与VectorMask
src传参mask用于Vector计算;
src传参selMask为CmpMask(比较掩码)。
掩码条件选择输出。
GetCmpMask(ISASI)此接口用于获取Compare(结果存入寄存器)指令的比较结果。CmpMask(比较掩码)读取寄存器比较掩码。
SetCmpMask(ISASI)Select不传入mask参数的接口设置比较寄存器。CmpMask(比较掩码)设置寄存器比较掩码。
GatherMask基于掩码(用于Vector计算)从输入张量中提取有效元素。src1传参GatherMask(数据收集掩码)。按掩码提取有效元素。

表2 CmpMask与VectorMask

名称描述数据来源作用范围
CmpMaskCompare比较指令的“结果寄存器”。•由Compare(结果存入寄存器)接口的结果写入。
• Select接口selMask参数传入。
•通过SetCmpMask接口设置。
用于记录元素比较的布尔结果,主要为后续Select指令使用。
VectorMask控制数据元素是否参与计算的标识位序列的Mask寄存器。详情参考掩码接口内设置mask
接口外设置mask
用于逐元素控制向量计算,决定哪些数据元素参与计算。

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区