- Google初のTPU(Tensor Processing Unit)v1は、ディープラーニングを活用した新しいサービスの機会と、必要なハードウェアの規模およびコストを踏まえ、10倍のコスト性能上の優位性を提供するASIC(Application Specific Integrated Circuit)の開発を目標としていた。
- TPUはテンソル演算を高速化するために設計されており、ここでいうテンソルとは、ベクトル、スカラー、他のテンソル間の多次元配列関係をマッピングする演算を指す。
- 行列積はニューラルネットワークの中核演算であり、入力ベクトルと重み行列を掛け合わせた後に活性化関数を適用し、隠れ層と出力層を計算するのに用いられる。
Google初のテンソル処理ユニット:起源
- TPU v1プロジェクトは2013年末に始まり、15か月で開発された。これはニューラルネットワークアクセラレータに関心のある人々にとって興味深い題材である。
- TPU v1の開発背景と目標は以前の投稿で扱われており、今回の投稿ではTPU v1の構造と性能をより詳しく見ていく。
構造と性能
- TPU v1の設計は、1978年のH.T. KungとCharles E. Leisersonの論文 "Systolic Arrays (for VLSI)" で提示されたアーキテクチャに基づいている。
- Systolic arrayはプロセッサネットワークで構成され、周期的にデータを計算しながらシステム内を伝搬させることで、効率的な行列積を実行する。
- TPU v1のsystolic arrayは256x256の乗算/累算ユニットで構成されており、中間結果をメインメモリに保存したり取り出したりする必要なく、自動的に必要な結果を生成する。
Multiply/Accumulate Units (MACs)
- TPU v1は8ビット x 8ビット整数乗算を実行し、浮動小数点計算よりも少ないダイ面積で済む量子化を活用している。
命令セット
- TPU v1は約20個の複雑命令セット(CISC)を使用し、これらの命令はホストコンピュータからPCIeインターフェース経由で送信される。
- 主な命令には、ホストメモリ読み取り、重み読み取り、行列積/畳み込み、活性化、ホストメモリ書き込みなどが含まれる。
ソフトウェア
- TPU v1のハードウェアはTensorFlowのようなソフトウェアスタックをサポートし、CPUやGPUで開発されたアプリケーションをTPUへ迅速に移植できるようにしている。
製造とダイ
- TPU v1はTSMCの28nmプロセスで製造され、ダイ面積はGoogleがデータセンターで使用していたIntel Haswell CPUおよびNvidia K80 GPUチップの半分未満である。
性能
- TPU v1は推論をより効率的にするために設計されており、Nvidia K80 GPUおよびHaswell CPUと比べて、およそ15倍から30倍高い推論速度とエネルギー効率を提供する。
教訓
- TPU v1のカスタムアーキテクチャは、現代のCPUやGPUよりもはるかに優れた性能と電力効率を可能にする。
- TPU v1は推論を高速かつ電力効率よくすることを目的に設計されており、学習向けの設計ではなかった。
GN⁺の意見
- TPU v1の開発は、Googleが大規模データセンターでの推論処理を最適化するため、特定用途向けハードウェアへ移行する重要な転換点を示している。
- Systolic arrayアーキテクチャはデータフローを最適化してメモリアクセスを最小化し、それがエネルギー効率と性能向上に貢献している。
- TPU v1の成功は、その後のさまざまなバージョンのTPU開発へとつながり、AI推論ハードウェアの発展に重要な役割を果たした。
- TPUと類似した機能を提供する他製品として、NvidiaのTensor Core搭載GPU、IntelのNervana NNP、そしてAmazonのInferentiaがある。
- TPU技術を導入する際には、既存インフラとの互換性、ソフトウェアスタック、そして特定アプリケーションに対する最適化の度合いを考慮する必要がある。TPUを選択することで得られる利点は、推論処理の高速化とエネルギー効率だが、特定のモデルやデータ型に対する最適化が必要になる場合がある。
1件のコメント
Hacker Newsの意見