39
Tensor、Tensorflow、そしてNvidiaの最新の「Tensor Core」について

NVIDIAは、同社の最新Volta GPUアーキテクチャをベースにした全く新しいアクセラレータ「Tesla V100」を発表しました。このチップの最新の画期的な機能は、NVIDIAが「Tensor Core」と呼ぶものです。NVIDIAによると、 Tensor Coreにより、Tesla V100はディープラーニングアプリケーションにおいて、同社の従来型Tesla P100アクセラレータと比較して最大12倍の速度向上を実現します。(GV100とTesla V100に関する記事はこちらをご覧ください。)

テンソルとTensorflow

テンソルとは、空間の座標の関数である要素の配列で表される数学的オブジェクトです。テンソルは高度にスケーラブルなニューラルネットワークを実現するため、Googleはテンソルを使用する独自の機械学習フレームワークを開発しました。

GoogleがTensorflow機械学習ソフトウェアライブラリをオープンソース化したことは、業界アナリストを驚かせました。しかし、これは天才的なひらめきだったのかもしれません。なぜなら、Tensorflowは瞬く間に開発者に最も多く利用される機械学習フレームワークの一つとなったからです。Googleは社内でもTensorflowを使用しており、より多くの開発者がTensorflowの使い方を習得すれば、採用対象となる潜在的な人材プールが拡大するため、Googleにとってもメリットがあります。一方、チップメーカーは、Tensorflowに直接対応させるか、テンソル演算向けに最適化しているようです(NvidiaがV100で行っているように)。つまり、チップメーカーはGoogleのオープンソース機械学習フレームワークの改良をめぐって競い合っているのです。これはGoogleにとってメリットしかない状況です。

最後に、Google は独自の特殊な Tensor Processing Unit も構築しており、同社が TPU を搭載したクラウド サービスを提供することを決定した場合、その恩恵を受ける (およびアクセスを購入する) ことができる開発者の市場が広く存在することになります。

Nvidia Tensorコア

Volta ベースの Tesla V100 の Tensor コアは、基本的には混合精度の FP16/FP32 コアであり、Nvidia がディープラーニング アプリケーション向けに最適化したものです。

新しい混合精度コアは、トレーニングと推論アプリケーションの両方で最大120 TFLOPSのTensor演算性能を発揮します。NVIDIAによると、V100のTensorコアは、従来のP100アクセラレータのFP32演算の12倍、FP16演算の6倍の性能を発揮します。Tesla V100には、640個のTensorコア(SMごとに8個)が搭載されています。

下の画像では、Nvidia は、ニューラル ネットワークのトレーニングで一般的に使用される行列間の乗算において、V100 が Pascal ベースの P100 GPU と比較して 9 倍以上高速化できることを示しています。

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

Tesla V100 Tensor コアと CUDA 9 は、GEMM 演算で最大 9 倍のパフォーマンスを実現します。

Tesla V100 Tensor コアと CUDA 9 は、GEMM 演算で最大 9 倍のパフォーマンスを実現します。

同社によれば、この結果は、消費電力の増加を最小限に抑えながら浮動小数点パフォーマンスを最大化するために Tensor コアとそのデータ パスをカスタム設計したことによるものだという。

各Tensorコアは、1クロックあたり64回の浮動小数点FMA混合精度演算(FP16乗算とFP32累算)を実行します。SM内の8個のTensorコアのグループは、1クロックあたり合計1024回の浮動小数点演算を実行します。

GPUメーカーによると、VoltaではPascalアーキテクチャと比較して、SMあたりのスループットが8倍向上します。Voltaのその他のパフォーマンス向上と合わせると、V100 GPUはP100 GPUと比較してディープラーニングにおいて最大12倍高速化します。

開発者は Tensor Core を直接プログラムしたり、Tensorflow、Caffe2、MXNet などの一般的な機械学習フレームワークに対する V100 のサポートを利用したりすることができます。

専用機械学習チップの台頭

Googleは最近の論文で、同社のTPUは推論処理においてGPUの最大30倍の速度を実現できると発表しました(TPUはニューラルネットワークの学習には対応していません)。機械学習アプリケーション向けチップの主要プロバイダーであるNvidiaは、この発表に異議を唱え、既存の推論チップの一部は既にTPUと非常に競争力があると主張しました。

しかし、NVIDIAの主張はそれほど強力ではありませんでした。なぜなら、同社は自社のチップを10ミリ秒未満のレイテンシ(データセンターにおけるGoogleにとってそれほど重要ではない指標)のみで比較していたからです。また、NVIDIAは比較を行う際に、消費電力とコストの指標も考慮していませんでした。

それでも、Google の TPU は、少なくとも現時点ではそれを販売するつもりはなく、社内で TPU をますます使用するようになる可能性があることを考えると、Nvidia の機械学習ビジネスにとって最大の脅威ではなかった可能性があります。

NVIDIAにとってより大きな脅威となるのは、一般的なGPUが他の顧客に提供できるよりも優れたワット当たり性能とコストを備えた、機械学習に特化したチップを開発・販売する他の企業かもしれない。NVIDIAにとってさらに懸念されるのは、Intelがより魅力的なチップを次々と買収しているという事実だ。

そのため、これまでNVIDIAはGPUに注力しているため、この競争で後れを取り始める可能性があるように見えました。しかし、「Tensorコア」の発表により、NVIDIAはこの市場で他社がNVIDIAに勝つことをより困難にした可能性があります(少なくとも今のところは)。

ルシアン・アルマスは、Tom's Hardware USの寄稿ライターです。ソフトウェア関連のニュースやプライバシーとセキュリティに関する問題を取り上げています。