AI 引擎 API 提供了矢量比较运算,包括:
-
aie::eq
-
aie::neq
-
aie::le
-
aie::lt
-
aie::ge
-
aie::gt
矢量比较运算会逐一比较两个矢量中的每个元素,或者将一个标量与一个矢量进行比较,然后返回特殊类型 aie::mask
。aie::mask
的每个位都对应于一个基本比较结果。
aie::vector<int32,16> v1,v2;
aie::mask<16> msk_lt=aie::lt(v1,v2);
msk_lt.set(0);//set bit 0 to be true
aie::vector<int32,16> v_s=aie::select(v1,v2,msk_lt);
以下 API 会对两个输入矢量的所有元素进行比较,并返回 bool
值 true
或 false
。
-
aie::equal
- 返回两个输入矢量的所有元素是否相等。这两个矢量的类型和大小必须相同。
-
aie::not_equal
- 返回两个输入矢量中的部分元素是否不相等。这两个矢量的类型和大小必须相同。
以下提供的 API 用于逐一选择两个矢量(或一个标量和一个矢量)中每个元素的最大值或最小值。标量和矢量的类型必须相同。
-
aie::max
-
aie::min
aie::vector<int32,16> vc=aie::max(v1,v2); //compare each element of v1,v2, set it to vc