# 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に不可欠なエネルギー効率を実現している。