21
Googleの機械学習チップはCPUやGPUより最大30倍高速、80倍効率的

Googleは、同社初の機械学習チップであるTensor Processing Unit(TPU)の性能に関する詳細情報を公開しました。GoogleがTPU、HaswellサーバーCPU、Nvidia Tesla K80で実施したベンチマークテストによると、TPUチップは他のチップと比較して15~30倍高速で、最大80倍の効率性を示したとのことです。

TPUの誕生

2006年、Googleのエンジニアたちは、機械学習アプリケーション向けにデータセンターにGPU、フィールドプログラマブルゲートアレイ(FPGA)、カスタムASIC(特定用途向け集積回路)を導入することを検討しました。しかし当時、彼らは機械学習アプリケーションに必要な計算量はASIC開発に見合うものではないと結論付けました。

しかし、2013 年に状況は一変しました。エンジニアたちは、同社のディープ ニューラル ネットワーク (DNN) の使用が爆発的に増加しており、DNN の使用が今後も増加し続けると、すぐにデータ センターを 2 倍にする必要があることに気付いたのです。

Googleのエンジニアたちは、市販のGPUで既に学習済みのニューラルネットワークを実行する推論用カスタムASICの開発を優先することに決定しました。このASICは、Googleのオープンソース機械学習ソフトウェアライブラリTensorFlow向けにカスタマイズされているため、「Tensor Processing Unit(TPU)」と名付けられました。

TPUの構造

GoogleはTPUの導入を急いでいたため、CPUに密に統合せず、PCIe I/Oバスを介してTPUをプロセッサに接続しました。これにより、TPUはGPUと同様にサーバーに接続できるようになりました。ただし、TPUが命令をフェッチするのではなく、ホストサーバーがTPUに命令を送信する必要があるため、TPUはGPUよりも浮動小数点コプロセッサに近いと言えます。これは、設計とデバッグを簡素化するためでもあります。

これはカスタムASIC(通常は限られた命令セットを実行するように設計されたチップの一種)ですが、GoogleによるとFPGAと同等の柔軟性を備えているとのことです。つまり、複数の種類のニューラルネットワークを処理するようにプログラムできるということです。そのため、Googleの将来的なニーズにより異なる種類の機械学習アルゴリズムが必要になったとしても、TPUは柔軟に対応できるはずです。

さらに、TPU は CPU や GPU よりもパフォーマンス面で優れていると思われるため、同社は今後も、その時点で最も先進的な機械学習テクノロジーに適応した新世代の製品を開発し続けると思われます。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

TPUパフォーマンスメトリクス

GoogleのエンジニアはTPUに関する論文の中で、データサーバー向けチップを購入する際に最も重視する指標はチップのピーク性能ではなく、コストパフォーマンス、より具体的には総所有コスト(TCO)であると述べています。TCOは電力消費と相関関係にあり、チップの消費電力が増加するほど、その寿命全体にわたってTCOが増加します。

Googleは、TPUの消費電力をHaswell CPUおよびK80 GPUと比較するために、2つのパフォーマンス/ワット指標を使用しました。1つは合計パフォーマンス/ワット指標で、ホストサーバーのCPUとK80 GPUまたはTPUを組み合わせた場合の消費電力を含みます。もう1つは増分パフォーマンス/ワット指標で、K80 GPUまたはTPUの消費電力のみを参照します。

Haswell サーバー チップと Nvidia K80 GPU を含むシステムでは、Haswell CPU 単独の 1.2 ~ 2.1 倍のワット当たり総パフォーマンスが得られますが、K80 GPU では Haswell CPU と比較してワット当たりの増分パフォーマンスが 1.7 ~ 2.9 倍になります。

同時に、Haswell/TPUサーバーはHaswell CPUと比較してワット当たりの総合性能が17~34倍向上し、TPU単体ではワット当たりの増分性能が41~83倍向上します。これは、TPUのワット当たり性能がK80 GPUの25~29倍であることを意味します。

Googleはまた、同社のTPUはK80 GPUやHaswell CPUと比較して15~30倍の推論性能を達成できると主張した。

将来のTPUチップに期待すること

TPU は 28nm プレーナー プロセスで製造され、2015 年から使用されています。次世代 TPU が 14nm プロセスで製造されれば、AMD と Nvidia の 14/16nm GPU で既に見られるように、その向上だけでワットあたりのパフォーマンスが 2 倍向上する可能性があります。

Googleはまた、より優れたロジックの設計にさらに15ヶ月かかっていたとすれば(最初のTPUの設計にかかった時間と同じ)、クロック速度をさらに50%向上させることができただろうと述べています。これは、Googleが本当に新世代の開発に取り組んでいるのであれば、そのような設計が採用されるであろうことを示唆しているかもしれません。

同社はTPUをデータセンターに迅速に導入するため、利用可能なメモリとインターコネクトを可能な限り活用した。しかし、サーバーのメモリに4倍の帯域幅を使用すれば、TPUのパフォーマンスをさらに3倍向上させることができると同社は述べている。

Googleは新しいTPUチップの開発計画について具体的な言及をしていませんが、第一世代のワット当たりパフォーマンスと改善の余地の大きさを考えると、この機会を逃す可能性は低いでしょう。同社のあらゆるサービスにおける機械学習の利用は今後数年間で増加する一方であり、このようなチップの必要性は今以上に高まるでしょう。