# Advanced Computer Organization: Circuit and GPU (電力効率とGPU)
[Original Link](https://github.com/shioyadan/advanced-computer-organization/blob/master/aco-shioya-circuit-and-gpu.pdf)
## 概要
東京大学大学院の塩谷亮太准教授による「計算機構成特論」の講義資料。半導体の物理的な消費電力メカニズムから、[[GPU]]やAIアクセラレータが高いエネルギー効率を実現しているアーキテクチャ上の理由を解説している。
## 1. 半導体と消費電力のメカニズム
* **水流システムのアナロジー:**
* CMOS回路を、コンデンサ(タンク)に連動したスイッチと見なして説明。
* **動的消費電力:** スイッチの切り替え(コンデンサの充放電)に伴いエネルギーが消費される。回路量と動作周波数に比例。
* **静的消費電力 (リーク電流):** トランジスタがOFFでも流れてしまう電流。
* **微細化の影響:**
* 微細化(2nm世代など)により電力と速度は向上するが、物理的な限界やクロック供給配線(H-TREE等)による電力消費が課題となる。
## 2. エネルギー効率の再定義
* **効率 $\eta$ の指標:**
* $\eta = \frac{P_{min}}{P_{actual}} = \frac{P_{min}}{P_{min} + P_{overhead}}$
* $P_{min}$ は純粋な演算(行列積等)に必要な最小エネルギー、$P_{overhead}$ は命令デコードやレジスタ読み書き等のオーバーヘッド。
* **戦略:** $P_{overhead}$ を極限まで減らすことが高性能計算機の要。
## 3. GPUのアーキテクチャ:SIMD と SIMT
* **SIMD (Single Instruction Multiple Data):**
* 制御部(命令フェッチ・デコード)を共有し、複数の演算器に同じ指示を出す。
* チップ面積あたりの演算器比率を高めることができる。
* **SIMT (Single Instruction Multiple Thread):**
* [[CUDA]]等で採用。スカラー形式でプログラムを記述し、ハードウェアがスレッドを「Warp/Wavefront」単位で束ねて実行。
* **利点:** 複雑なコンパイラが不要で、マルチスレッドプログラムをそのまま実行可能。
* **課題:**
* **Branch Divergence (分岐発散):** スレッド間で分岐先が異なると、実行が時分割になり効率が落ちる。
* **水平方向演算:** スレッド間での直接データ交換が困難。
## 4. アクセラレータと行列積の最適化
* **専用ハードウェアの構造:**
* **Systolic Array (シストリックアレイ):** 演算器を直接繋ぎ、データを流し込むことでレジスタ・メモリアクセスを削減(Google TPU等)。
* **Tensor Core:** NVIDIA GPUに搭載。行列積を一気に行う専用回路。
* **低精度化のトレンド:**
* **マイクロスケーリング (MX):** 指数部を共有する低精度フォーマット。Blackwell世代等で採用され、演算精度を下げてエネルギー効率を向上させる。
## 5. 総括
* CPUが低レイテンシ(1つのカレーを速く作る)を重視するのに対し、GPUは高スループット(大量の同じカレーを同時に作る)に特化。
* 制御回路を簡素化・共有し、演算器の密度を極限まで高めることで、AIやHPCに不可欠なエネルギー効率を実現している。