# Google TPU
[[Google]] が2015年にデータセンターへ投入した初のカスタムASIC DSAであり、深層ニューラルネットワーク(DNN)の推論(inference)専用に設計された。[[TensorFlow]] フレームワークでプログラムされる。2013年、音声検索を3分/日利用するユーザーが増えるとデータセンターの計算需要が倍増するという試算を契機に、GPU比10倍のコスト性能改善を目標として高優先度プロジェクトが立ち上がり、設計・検証・製造・データセンター配備までを15か月で完了させた(Source: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.4)。
## アーキテクチャ
- **Matrix Multiply Unit**: 256×256(65,536個)の8ビット整数積和演算器からなる Systolic Array。1サイクルあたり256値を読み書きし、行列積または畳み込みを実行する。
- **Unified Buffer**: 24 MiB のオンチップ SRAM。活性化値の中間結果を保持し、DRAM へのスピルを避けるよう設計された。
- **Weight Memory**: 8 GiB のオフチップ DRAM。重みは読み出し専用で Weight FIFO を介して供給される。
- **Accumulators**: 4 MiB(4096×256×32ビット)。Matrix Multiply Unit の出力を蓄積し Activation Unit へ渡す。
- **命令セット**: PCIe Gen3 x16 経由でホスト CPU から送られる CISC 命令。プログラムカウンタや分岐命令を持たず、ホストが命令を逐次送出する点で GPU よりも FPU コプロセッサに近い。主要命令は5つ(Read_Host_Memory・Read_Weights・MatrixMultiply/Convolve・Activate・Write_Host_Memory)。
- 28 nm プロセス、700 MHz、ダイサイズは Intel Haswell サーバー CPU(662 mm²)の半分未満。
## 性能
Google データセンターの6種の代表的推論ワークロード(MLP・LSTM・CNN各2種)の加重平均で、Haswell CPU比29.2倍、NVIDIA K80 GPU比15.3倍のスループットを達成した。電力あたり性能では総電力ベースでCPU比34倍・GPU比16倍、増分電力ベース(ホストCPU電力を除く)ではCPU比83倍・GPU比29倍に達する。ルーフラインモデル上ではridge pointが演算強度1350と非常に右寄りに位置し、MLP・LSTMはメモリバウンド、CNNは演算バウンドとして概ね性能上限に張り付く(CNN1のみ重みロード待ちのため例外)(Source: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.9)。
TPU設計者が性能モデルで感度分析した結果、メモリ帯域幅の4倍化が平均性能を3倍改善する一方、クロック周波数の引き上げやMatrix Multiply Unitの512×512への拡大はほとんど効果がない、または悪化させることが判明した(Source: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.4)。
## 関連
- ソース: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]]
- エンティティ: [[Google]] / [[TPUv4]](後継世代) / [[Microsoft Catapult]] / [[Intel Crest]] / [[Pixel Visual Core]]
- 概念: [[ドメイン固有アーキテクチャ]] / [[Rooflineモデル]] / [[AIアクセラレータ]] / [[メモリバウンド]]
## 出典
- [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.4, §7.9