- AIチップ企業Maddoxのレイナー・ポープが、ロジックゲートという最小単位から始めて、実際のプロダクションチップがどのように構成されるかを、ボードを使った講義形式で解説する回。
- 行列乗算とそれを支える乗算蓄積演算(MAC)という基本演算、クロックサイクルの役割、そしてGPUとTPU(Tensor Processing Unit)の設計思想の違いが具体的に説明される。
- チップ設計には精密さと効率のトレードオフがあり、大規模な行列演算ユニットと小粒度な構造のバランスが、パフォーマンスとエネルギー効率を左右することが明らかになる。
論点をもう少し詳しく読む
ロジックゲートから乗算蓄積演算(MAC)へ:AI チップの基本単位
チップ設計の最小単位はAND、OR、NOTなどのロジックゲートであり、これらが金属配線で接続される。AIチップが計算する中心は行列乗算であり、その最小単位となるのが乗算蓄積演算(MAC)——2つの数値を掛け算し、その結果を累積する操作だ。4ビット同士の乗算で8ビット加算を行う理由は、乗算では低精度でも足りるが、複数回の蓄積時には丸め誤差が累積するため、より高い精度が必要になるからである。この設計は行列乗算の内部ループで繰り返し発生するMACという構造的必然性から生まれている。
クロックサイクルと同期:100 億トランジスタの秩序をどう保つか
チップには100億個のトランジスタが搭載され、膨大な並列処理が行われている。このような大規模並列性を管理するために、ハードウェアはナノ秒単位でクロック信号を使い、全回路を同期させる。レジスタ(記憶素子)とロジック層の間で、クロック信号が一定時刻に現在の入力値をキャプチャして次の段階に進める。高速化には限界があり、クロック速度を上げるほどロジック層での計算遅延に敏感になる。計算が次のサイクルまでに完了する必要があるため、ロジック遅延の最小化が重要な最適化ポイントになる。標準的なチップ設計では、実装上確実に信頼性を保つため、マージンを持たせて多くの標準偏差の安全性を確保する。
TPU(Tensor Processing Unit)の設計思想:システムレイアウトの粗粒度化
TPUはGPUとは異なる設計哲学を採用している。GPUは細粒度で同一の実行ユニット(SM)をグリッド状に規則正しく配置し、中央にL2メモリを置く構成が多い。対してTPUは粗粒度の大規模ユニット——複数の大型システムアレイ(行列演算ユニット)、ベクトル処理ユニット、メモリで構成される。GPUの各SMに搭載されるテンソルコアは、スケールダウンされたTPUと考えることができ、GPUは事実上『小さなTPUを大量に並べたもの』という見方ができる。大規模な行列乗算タスクに対しては、小粒度構造より粗粒度の大規模ユニットのほうが、レジスタファイルのコストを効率よく償却でき、より大きなシステムアレイを実現できる。
GPU と TPU のデータ移動効率のトレードオフ
粗粒度設計のTPUは単位あたりのコストが良い反面、ベクトルユニットと行列ユニット間のデータ移動が限定された経路(数本の配線)を通る必要があり、データスループットの制約が生まれる。一方GPUは小粒度設計により、ベクトル・行列ユニットが分散しており、データは多数の経路(例えば16本以上の配線)を通じて移動でき、全体的なデータ移動幅が大きい。ただしGPUでは、単一のSM内で完結した処理なら小さなデータ移動で済むが、複数SM間での処理では複雑になり費用がかかる。Maddoxが公表している「スプリッタブル・システムアレイ」は、この両方のアプローチの利点を組み合わせ、大規模システムアレイを必要に応じて小型化できる設計を目指している。