この例では、128 の出力値を計算するために合計 1024 の int16 x int16 の乗算が必要です。1 つの AI エンジンでは、1 サイクルごとに 32 個の 16 ビット乗算を実行できるので、カーネルの計算限界は次のようになります。
Compute bound = 32 cycles / invocation
行列 B は 16*16 ビット = 256 ビットなので、ベクター レジスタに格納できます。各 MAC 演算ごとに AI エンジン データ メモリまたはタイル インターフェイスからフェッチする必要はありません。計算にデータ a が必要だとすると、メモリからフェッチされる合計は 64*8*2=1024 バイトです。AI エンジン では、サイクルごとに 2 つの 256 ビット (32 バイト) のロードができるので、カーネルのメモリ限界は次のようになります。
Memory bound = 1024 / (2*32) = 16 cycles / invocation
計算限界は、メモリ限界よりも大きいことがわかります。このため、ベクター プロセッサでの MAC 演算の理論上の限界に達するようにするためにベクター化を実行できます。