ディープラーニングの学習(training)で圧倒的な存在感を示す米NVIDIAを、米AMD(Advanced Micro Devices)と米Intelが必死に追いかけている。しかしAMDとIntelにとっては、なかなか厳しい戦いになりそうだ。課題はハードウエアだけでなく、ソフトウエアにもある。

 2017年8月末に開催された「Hot Chips 29」では、NVIDIAやAMD、Intelの大手半導体メーカーに加えて、米Googleやスタートアップの米Wave Computingがディープラーニングの学習に特化したサーバー用プロセッサの詳細を発表した。

 各社が主張する「1秒当たりの演算回数」についての争いは、ここに来てヒートアップしている。NVIDIAは2017年5月に発表した「Tesla V100」が毎秒120T回の演算が実行可能だと訴え、AMDの最新GPUである「Radeon Vega」は毎秒26T回、Googleがディープラーニングの学習用に開発したAI専用チップ「Cloud TPU」は毎秒45T回の演算ができると主張している。

 しかし各社のプロセッサの仕様や、各社がディープラーニングの学習のために採用した演算の内容は、それぞれ大きく異なる。演算回数だけを比較してもあまり意味が無い。比較可能な部分とそうではない部分とを区別しながら、各社の戦略を見ていこう。

専用コアでディープラーニング性能を上げたNVIDIA

 戦略が最も分かりやすいのは、GPUのメーカーであるNVIDIAとAMDだ。NVIDIAは2016年4月に、ディープラーニング用途を強く打ち出したGPUとして「Tesla P100」を発表し、2017年5月に次世代の「Tesla V100」を発表している。AMDもNVIDIAを追いかけ、2016年12月にディープラーニング向けの改良を盛り込んだGPUアーキテクチャである「Vega10」を発表し、2017年6月に製品版である「Radeon Vega Frontier Edition」などを発売している(表1)。

表1●ディープラーニングに特化したGPUの仕様
*1 数値は「Frontier Edition」のもの *2 乗算はFP16、加算はFP32
メーカーNVIDIANVIDIAAMD
製品名称Tesla P100Tesla V100Radeon Vega *1
FP16、FP32混合*2120T/秒
FP1621T/秒26T/秒
FP3210T/秒15T/秒13T/秒
FP645T/秒7.5T/秒
HBM2帯域720GB/秒900GB/秒484GB/秒
HBM容量16GB16GB16GB
L2キャッシュ4MB6MB4MB
トランジスタ数153億210億125億
ダイ面積610平方mm815平方mm486平方mm

 NVIDIAは2016年に発表したTesla P100と1年後に発表したTesla V100との間で、アーキテクチャを大きく刷新している。先に発表したTesla P100では従来の行列演算ユニットである「CUDAコア」をディープラーニングに使用し、単精度(FP32、32ビット)の行列演算をディープラーニングの学習に、半精度(FP16、16ビット)の行列演算をディープラーニングの推論に使用すると説明していた。

 それに対して2017年のTesla P100では、ディープラーニングの学習と推論の両方に対応した「Tensorコア」という新しい行列演算ユニットを搭載した。Tensorコアは、ディープラーニングで多用する行列のかけ算(乗算)の結果を足し算(加算)する「積和演算」を実行するが、行列の乗算はFP16で、加算はFP32で実行する(写真1)。

写真1●乗算をFP16で、加算をFP32で実行するNvidiaのTensorコア
写真1●乗算をFP16で、加算をFP32で実行するNvidiaのTensorコア
[画像のクリックで拡大表示]

 Tesla V100は640個のTensorコアを搭載する。このTensorコアは、行列演算を64並列で実行できる。低精度の行列演算に特化したTensorコアを追加することで、毎秒120T回という膨大な回数の行列演算を実現した。なおTesla V100は、既存の行列演算ユニットであるCUDAコアも5120個搭載している(前バージョンのTesla P100は3584個)。