Pascal GPUは各種の性能指標を大幅に向上

次の図は、Kepler、Maxwell、Pascalの3世代のGPUの性能向上を示すグラフである。Pascal GPUのFP32の単精度浮動小数点演算性能はKeplerアーキテクチャのK40と比較すると3倍の性能。GPU-GPU間の通信バンド幅は160GB/sとK40、M40の5倍、メモリバンド幅は3倍に向上している。

Kepler、Maxwell、Pascalの3世代のGPUの性能向上を示すグラフ。左端はFP32の単精度演算性能、中央はGPU-GPU間の通信バンド幅、右端はGPUとメモリとのバンド幅

ディープラーニングのCaffe/Alexnet、第1原理の量子力学計算を行なうVASP、粒子計算のHOMD-Blueなどの実アプリを使った性能比較で、比較する棒グラフは左からK80 2台、P100 2台、4台、8台のシステムである。そして、破線がHaswell CPU 2台のシステムの性能であり、P100 8台のシステムでは、Haswell 2台と比較すると、HACCでは45倍以上速いという結果となった。

ディープラーニングのCaffe/Alexnet,第1原理の量子力学計算を行なうVASP,粒子計算のHOOMD-Blueなどの実アプリを使った性能比較

Pascal GPUの全体構成

NVIDIAは伝統的に、GF100、GK100のように100番が付いているチップが最上位のチップということになっている。ただし、Maxwellでは前記のような事情があるので、GM200が最上位のチップとなっている。今回発表されたのは「GP100チップ」とそれを使うシステムであり、ネーミングから見て、Pascalアーキテクチャの最上位チップと考えられる。

なお、NVIDIAは、GPUチップを指す場合はGP100と呼び、ボード製品になるとTesla P100と呼んでおり、GP100とP100と両方の記述が出てくるが、このような事情であることを理解いただきたい。

GP100チップの構成。56SMで3584 CUDAコアを集積する。演算性能は倍精度(FP64)で5.3TFlops、単精度(FP32)では2倍の10.6TFlops、半精度(FP16)では21.1TFlops。デバイスメモリはHBM2を使う。容量は16GB(+ECCビット内蔵)、メモリバンド幅は720GB/s

GP100は、56個のStreaming Multiprocessor(SM)を集積し、基本的な単精度の浮動小数点などの演算を行うCUDAコアを合計では3584個搭載している。GM200チップは3072 CUDAコアであったので、約17%の増加である。性能向上という点では、GM200が984MHzであったのに対してGP100は1328MHzと約35%クロックが上がっている効果が大きい。この両者を合わせると、GM200は6.46TFlopsであるのに対して、GP100は9.52TFlopsと約47%ほど演算性能が向上している。なお、GP100の単精度演算性能が10.3TFlopsというのは、ターボでクロックを1480MHzに引き上げた場合の性能である。

このGP100の図を注意深く見ると、60個のSMが描かれており、P100では、4個はスペアとして不良コアの救済に使い、製品として外部に見せるSMは56個という仕様になっている。

P100 GPUの外観。中央のNVIDIAマークのついたチップがGP100で、その上に2個、下に2個のHBM2メモリが搭載されている。プリント板に搭載されている16個の黒いモジュールは電源のDC-DCコンバータ

P100はデバイスメモリとして、HBM2を採用した。AMDがRadeon R9に採用したHBM1の新しい版の3D積層メモリを使っている。HBM2の規格では、最大の信号伝送速度は2Gbit/sで、1024の信号線を持てることになっている。この規格を最大限使う場合は、256GB/sのバンド幅が実現できるが、P100ではメモリバンド幅はHBM2を4個使用した場合で720GB/sとなっている。どうも現在のHBM2はフルスピードでは動いていないようである。