教科書 › 第I部 半導体の理論
CHAPTER 15
アクセラレータの設計様式
第I部の締めくくりとして、実際のAIアクセラレータがどんな形をしているかを整理する。ここまでの章がすべて効いてくる。
- SIMD ── 1つの命令で複数のデータを処理
- 同じ演算を並べたデータに一斉に適用する。CPUの拡張命令やGPUの基本。汎用性が高く、プログラムしやすい。
- シストリックアレイ ── 格子状に並べて受け渡す
- 演算器を2次元に並べ、データを隣へ隣へと流しながら計算する。一度読んだ値を何度も使い回せるので、メモリアクセスが激減する。行列積に極めて強い。GoogleのTPUがこの方式で知られる。
- データフロー ── データが揃った順に動く
- 命令の順番ではなく、必要な入力が揃った演算から実行する。制御回路を減らせる。
- インメモリ演算 ── メモリの中で計算する
- メモリセルの物理的な性質を使って、読み出しと同時に積和を済ませてしまう。データ移動そのものをなくす究極形だが、精度や設計の難度に課題がある。
どの方式でも共通しているのは、演算器の周りに専用のバッファ(SRAM)を配置し、外部メモリへのアクセスを最小化する構造である。データシートで「内蔵SRAM 4MB」といった数字が強調されるのは、そこがモデルの動きやすさを左右するからだ。使いたいモデルの1層分の重みと中間データが内部に収まるかどうかで、性能が段違いになる。
第I部のまとめ
バンドギャップという物質の性質から始まって、スイッチができ、論理ができ、演算器ができた。微細化が電力の壁に当たり、汎用回路では効率が上がらなくなった。データ移動のコストが演算を上回るようになり、専用回路がそれを避ける形で設計された。
AIアクセラレータは、これらの制約がすべて重なった結果として、今の形になっている。TOPSという1つの数字がその全体を表せないのは当然のことだった。
コメント
コメントにはログインが必要です