グーグルの深層学習プロセッサ「TPU」が「AIを、全ての人に」を実現するAI基礎解説(2/3 ページ)

» 2018年07月09日 10時00分 公開
[朴尚洙MONOist]

「TPU」はなぜCPUやGPUよりもディープラーニングの性能が高いのか

 最初に開発されたTPUが「TPU v1」である。28nmプロセスで製造され、動作周波数は700MHz、消費電力は40Wである。なお、TPU v1は推論のみが可能で、学習は行えない。

「TPU v1」の概要 「TPU v1」の概要(クリックで拡大) 出典:グーグル

 TPU v1の性能評価は、当時広く利用されていたインテル(Intel)の「Haswell」世代のCPUと比較して、ディープラーニングの処理性能で15〜30倍、消費電力当たりの性能比では30〜80倍に達するというものだった。

「TPU v1」とインテルの「Haswell」世代CPUとの性能比較 「TPU v1」とインテルの「Haswell」世代CPUとの性能比較(クリックで拡大) 出典:グーグル

 TPU v1の高い性能は、汎用プロセッサとは異なる、ディープラーニングに特化した設計によるものだ。ニューラルネットワークの計算では、「ひたすら掛け算と足し算を行う」(佐藤氏)という行列演算を繰り返すことになる。

ニューラルネットワークの計算は行列演算 ニューラルネットワークの計算は行列演算(クリックで拡大) 出典:グーグル

 この行列演算に関わる特徴は2つある。1つは、計算精度を、CPUやGPUで一般的な32ビットではなく、8ビット(推論)や16ビット(学習)に抑えていることだ。佐藤氏は「科学技術分析などの場合は高い計算精度が求められるが、人間のように大まかな判断を行うことが目的であれば、計算精度はそれほど高い必要はない」と説明する。

計算精度を最適化した 計算精度を最適化した(クリックで拡大) 出典:グーグル

 もう1つは、大規模な行列演算を行うためのパイプライン構成である「シストリックアレイ」を採用していることだ。

「シストリックアレイ」のイメージ「シストリックアレイ」のイメージ「シストリックアレイ」のイメージ 行列演算に特化した「シストリックアレイ」のイメージ(クリックで拡大) 出典:グーグル

 CPUやGPUのような汎用プロセッサでは、演算処理を行うたびに演算器からメモリへの読み書きを行う。「GPUは数千個のプロセッサをずらっと並べて演算処理を行っているのでディープラーニングの高い演算能力を実現できているが、いちいちメモリへの読み書きを行う点ではCPUと変わりはない」(佐藤氏)。つまり、大規模な行列演算を何度となく行うと、その分のメモリへの読み書きというリソースも同時に発生することになる。

CPUの動きGPUの動きTPUの動き CPUの動き(左)やGPUの動き(中央)と比べて「TPU」はメモリへの読み書きを大幅に減らした(クリックで拡大) 出典:グーグル

 TPU v1のシストリックアレイでは、行列演算用に設計されているので、メモリの読み書きの回数を大幅に減らすことができる。また、小さい面積と少ない電力で多くの演算器を集積することもできる。実際に、TPU v1は、6万5536個の8ビット演算器を集積している。一方、TPU v1の発表時に販売されていたNVIDIAのHPC向けGPU「Tesla K80」は2496個の32ビット演算器を搭載していた。比較すると演算器の数は約25倍になる。

「TPU v1」と「Tesla K80」の比較 「TPU v1」と「Tesla K80」の比較(クリックで拡大) 出典:グーグル

Copyright © ITmedia, Inc. All Rights Reserved.