【シストリックアレイ】
シストリックアレイ(Systolic Array) とは?
最終更新:
💡 データが"波"のように流れる計算工場
演算要素を規則的につなぎ、データや途中結果を隣の要素へリズミカルに渡しながら計算するアーキテクチャ。入力を繰り返し使う計算に向き、Google TPUの行列演算にも使われる。
📌 このページのポイント
何をする仕組みなの?
小さな演算要素を規則的につなぎ、受け取った値を計算に使って隣へ渡す仕組みだよ。同じ入力を複数の演算に使うことで、外部から毎回取り直す回数を減らせる。全てが縦横の格子や積和演算だけに限られるわけではないんだ
普通のCPUと何が違うの?
メモリの待ち時間がなくなるの?
なくなる保証ではないよ。演算要素の間で再利用できても、外部から入力を供給し、結果を取り出す必要がある。演算量と転送量の釣り合い、使えるメモリ、問題を分ける方法などによって性能が変わるんだ
AIとの相性は?
図のデータはどっちへ流れるの?
まとめ:ざっくりこれだけ覚えればOK!
「シストリックアレイ」って出てきたら「演算要素の間にデータを流し、繰り返し使って計算する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Systolic Array」 = 心臓の収縮になぞらえた演算要素の配列
💬 systolicは心臓の収縮に関わる言葉。H. T. Kungの論文は、データが演算要素の間をリズミカルに流れる様子を血液の循環になぞらえて説明しているよ