【シストリックアレイ】
シストリックアレイ(Systolic Array) とは?
💡 データが"波"のように流れる計算工場
📌 このページのポイント
シストリックアレイって名前が難しそう…何をする仕組みなの?
多数の小さな演算ユニット(MAC)が縦横に格子状に並んでいて、データが隣から隣へと波のように流れながら計算される仕組みだよ。普通のプロセッサはメモリからデータを取り出して計算するけど、シストリックアレイはデータを「流しながら」計算するから、メモリへのアクセス回数が大幅に減るんだ。
メモリアクセスが少ないと何がいいの?
メモリへのアクセスはとても時間がかかるしエネルギーも使うんだ。演算が速くてもメモリ待ちでボトルネックになることを「メモリウォール」って言うよ。シストリックアレイはデータを流すだけで次々と計算できるので、このメモリウォールを回避して高い演算効率を実現できるんだ。
AIと相性がいいって聞いたけど、なんで?
ニューラルネットワークの計算はほぼ「行列の掛け算」の繰り返しなんだ。シストリックアレイはこの行列積を並列に処理するのが得意で、GoogleがTPUに採用したのもそれが理由だよ。TPU 8tでは何万個ものMACユニットがシストリックアレイ状に並んでいて、Geminiのような大規模モデルの学習を支えてるんだ。
名前の「シストリック」ってどういう意味なの?
「シストリック」は心臓の収縮を表す「systole」から来てるよ。心臓が規則正しく収縮してリズミカルに血液を送り出すように、演算ユニットが規則正しくデータを受け取り・処理して・隣に渡すイメージなんだ。1978年にH.T. KungとCharles Leisersonが提唱した比較的古いアイデアなんだけど、AIブームで再注目されてるんだよ。
まとめ:ざっくりこれだけ覚えればOK!
「シストリックアレイ」って出てきたら「演算ユニットを格子状に並べてデータを流す高効率並列計算の仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Systolic Array」 = 収縮配列
💬 心臓の収縮(systole)のようにリズミカルにデータが流れる様子からこの名が付いたよ。1978年にH.T. KungとCharles Leisersonが提案したんだ。