16x16 ビットに対する MAC - 2023.2 日本語

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

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

次に、int16 の X バッファーおよび int16 の Z バッファーを使用した MAC の例を示します。X バッファーの並べ替え粒度は 32 ビットです。start および step パラメーターは、常にデータ型の粒度になります。16 ビットのインデックスを得るには、それらを 2 倍する必要があります。

xoffsets パラメーターは対になっています。最初の 16 進数値は絶対 32 ビット オフセットで、偶数行で 2 x 16 ビット値 (インデックス、インデックス +1) を取得します。2 番目の 16 進数値は、最初の値 +1 (32 ビット オフセット) からオフセットされ、奇数行で 2 x 16 ビット値を取得します。つまり、xoffsets の 16 進数値 0x24 は、xbuff から偶数行のインデックス 8、9 と奇数行のインデックス 14、15 を選択します。

even: 2 * 4 -> get indices [8, 9]
odd: 2 * ( 2 + 4 + 1 ) -> get indices [14, 15]

同様に、xoffsets の 16 進数値 0x00 は、xbuff から偶数行のインデックス 0、1 と奇数行のインデックス 2、3 を選択します。

ほかに、xsquare という主な並べ替え後に 16 ビット粒度の回転を実行するパラメーターもあります。これは、int16 x int16 モードでの MUL8 による 8x4 の行列計算で繰り返される 2 x 2 行列のインデックスにさらに影響します。

たとえば、xsquare の値 0x2103 (小さい 16 進値から大きい 16 進値の順) は、偶数行にインデックス 3、0、奇数行にインデックス 1、2 を入力します。xsquare パラメーターの役割は、次の図の中央に表示されています。

図 1. Iint16 x int16 型に対する MAC8

次の図に、int16 x int16 に対する mac16 組み込み関数の例を示します。

図 2. Iint16 x int16 型に対する MAC16