前乘运算 - 2022.1 简体中文

AI 引擎内核编码 最佳实践指南 (UG1079)

Document ID
UG1079
Release Date
2022-05-25
Version
2022.1 简体中文

AI 引擎架构提供了乘法指令,可对输入实参执行额外运算。AI 引擎 API 提供了多种类型的变体,包括可封装现有矢量的变体、可封装元素引用的累加器的变体,以及可传递到乘法函数中的变体,而无需为每一种可能的组合添加一种变体。随后,此 API 将根据硬件支持把各项运算合并为单一指令,或者先对矢量应用运算然后再执行乘法。

前乘运算是一种特殊的空运算,仅返回其封装的原始对象。其中包括:

  • op_abs
  • op_add
  • op_conj
  • op_max
  • op_min
  • op_none
  • op_sub
注释: 前乘运算应配合算术运算一起使用,例如,aie::mulaie::mac。这些运算并非旨在独立使用。

以下示例旨在演示如何对矢量 a 的绝对值执行逐元素乘法以及如何对矢量 b 执行共轭。

aie::accum<cacc48,16> foo(aie::vector<int16,16> a, aie::vector<cint16,16> b){ 
  aie::accum<cacc48,16> ret; 
  ret = aie::mul(aie::op_abs(a), aie::op_conj(b)); 
  return ret;
}