ディープラーニングの学習(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)。
メーカー | NVIDIA | NVIDIA | AMD |
---|---|---|---|
製品名称 | Tesla P100 | Tesla V100 | Radeon Vega *1 |
FP16、FP32混合*2 | 120T/秒 | ||
FP16 | 21T/秒 | 26T/秒 | |
FP32 | 10T/秒 | 15T/秒 | 13T/秒 |
FP64 | 5T/秒 | 7.5T/秒 | |
HBM2帯域 | 720GB/秒 | 900GB/秒 | 484GB/秒 |
HBM容量 | 16GB | 16GB | 16GB |
L2キャッシュ | 4MB | 6MB | 4MB |
トランジスタ数 | 153億 | 210億 | 125億 |
ダイ面積 | 610平方mm | 815平方mm | 486平方mm |
NVIDIAは2016年に発表したTesla P100と1年後に発表したTesla V100との間で、アーキテクチャを大きく刷新している。先に発表したTesla P100では従来の行列演算ユニットである「CUDAコア」をディープラーニングに使用し、単精度(FP32、32ビット)の行列演算をディープラーニングの学習に、半精度(FP16、16ビット)の行列演算をディープラーニングの推論に使用すると説明していた。
それに対して2017年のTesla P100では、ディープラーニングの学習と推論の両方に対応した「Tensorコア」という新しい行列演算ユニットを搭載した。Tensorコアは、ディープラーニングで多用する行列のかけ算(乗算)の結果を足し算(加算)する「積和演算」を実行するが、行列の乗算はFP16で、加算はFP32で実行する(写真1)。
Tesla V100は640個のTensorコアを搭載する。このTensorコアは、行列演算を64並列で実行できる。低精度の行列演算に特化したTensorコアを追加することで、毎秒120T回という膨大な回数の行列演算を実現した。なおTesla V100は、既存の行列演算ユニットであるCUDAコアも5120個搭載している(前バージョンのTesla P100は3584個)。