AI エンジンのデータ型 - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語

AI エンジン スカラー ユニットは、8、16、および 32 ビット幅の符号付きおよび符号なし整数と、特定の演算用に単精度浮動小数点をサポートします。

AI エンジン ベクター ユニットは、8、16、および 32 ビット幅の整数および複素整数と、実数および複素単精度浮動小数点値をサポートします。また、48 および 80 ビット幅の要素を持つアキュムレータ ベクター データ型もサポートされます。絶対値、加算、減算、比較、乗算、MAC などの組み込み関数は、これらのベクター データ型を使用して演算を実行します。ベクター データ型の名前は、要素数、実数または複素数、ベクター型またはアキュムレータ型、およびビット幅を含む次の命名規則に基づいています。

aie::vector<[c]([u]int|float)(SizeofElement),NumLanes>
aie::accum<[c](acc|accfloat)(SizeofElements),NumLanes>

オプションの仕様は次のとおりです。

NumLanes
ベクターの要素数を示します。有効な値は、2、4、8、16、32、64、および 128 です。
c
実数部と虚数部を持つ複素データを示します。
int
整数ベクター データ値を示します。
float
単精度浮動小数点値を示します。
acc
アキュムレータ ベクター データ値を示します。
u
符号なしを示します。符号なしは、int8 ベクターにのみ存在します。
SizeofElement
ベクター データ型要素のサイズを示します。
  • 1024 ビット整数ベクター型は、8 ビット、16 ビット、または 32 ビット ベクター要素のベクターです。これらのベクターには、16、32、64、または 128 個のレーンがあります。
  • 512 ビット整数ベクター型は、8 ビット、16 ビット、32 ビット、または 64 ビット ベクター要素のベクターです。これらのベクターには、4、8、16、32、または 64 個のレーンがあります。
  • 256 ビット整数ベクター型は、8 ビット、16 ビット、32 ビット、64 ビット、または 128 ビット ベクター要素のベクターです。これらのベクターには、1、2、4、8、または 32 個のレーンがあります。
  • 128 ビット整数ベクター型は、8 ビット、16 ビット、または 32 ビット ベクター要素のベクターです。これらのベクターには、2、4、8、または 16 個のレーンがあります。
  • アキュムレータ データ型は、80 ビットまたは 48 ビット要素のベクターです。これらのベクターには、2、4、8、または 16 個のレーンがあります。

ベクター データ型の合計データ幅は、128 ビット、256 ビット、512 ビット、または 1024 ビットです。アキュムレータ データ型の合計データ幅は、320/384 ビットまたは 640/768 ビットです。

たとえば v16int32 は、32 ビット整数の 16 要素の整数ベクターです。ベクターの各要素は、レーンと呼ばれます。必要最小限のビット幅を使用すると、レジスタを効率的に使用でき、パフォーマンスを向上できます。

図 1. aie::vector<int32,16>