PR

 SMは、Tesla P100に56個搭載されているため、合計では、64スレッド×56SMで、3584スレッドを同時に実行できる。単純に言うと、3584個の処理を同時に行えるわけで、これから見ても汎用CPUよりも演算の並列度が高い。

 なお、実際のTesla P100は、60個のSMを搭載したチップになっている(図2)。

図2●Tesla P100の全体ブロック図。2次キャッシュを中心に上下に30個、合計60個のSMを持つ。ただし、製品では歩留まりを上げるため、このうち56個のSMのみを使う
図2●Tesla P100の全体ブロック図。2次キャッシュを中心に上下に30個、合計60個のSMを持つ。ただし、製品では歩留まりを上げるため、このうち56個のSMのみを使う
(出所:NVIDIA社配布資料Tesla P100 White Paper)
[画像のクリックで拡大表示]

 Pascalアーキテクチャーでは、SMに含まれるCUDAコアの数を減らし、SM当たりのWARPスケジューラーの数を2としたが、SMの数を増やした。前世代アーキテクチャーであるMaxwellでは128個(4WARP/SM、SMは24個)、さらに前のKeplerアーキテクチャーでは192個(4WARP/SM、SMは15個)あった(表1)。

表1●NVIDIA製GPUのアーキテクチャー比較
表1●NVIDIA製GPUのアーキテクチャー比較
(出所:NVIDIA社配布資料Tesla P100 White Paper)
[画像のクリックで拡大表示]

 Pascalでは、32ビットの単精度浮動小数点(FP32)演算用のCUDAコアを使って16ビットの半精度浮動小数点(FP16)を2個同時に演算できる。このため、半精度浮動小数点だけの演算性能は、ピークでFP32の演算性能である1万600GFLOPSの2倍となる2万1200GFLOPSとなる。ディープラーニングでは、浮動小数点演算を必要とするものの精度が高い必要はなく,半精度浮動小数点演算で十分だとされている。このため、Tesla P100ではディープラーニング処理の性能を大幅に高められる。

 MaxwellでもFP16演算は可能だったが、FP16をFP32に変換して演算し、終了後にまたFP16に変換する方式だったためにピーク演算性能はFP32と同じだった。ただし、メモリーのアクセス時にデータ量が半分になるため、メモリー転送量を削減できるメリットがあった。

メモリーやGPU間のデータ転送を改善したTesla P100

 Tesla P100は、次世代の「Volta」と呼ばれるGPUで採用する予定だった2つの技術である積層メモリーとNVLinkを取り入れた。積層メモリーは、メモリーチップを重ねて、デバイスパッケージ上に直接メモリーデバイスを配置する方法で、基板上で接続するよりもより多い信号線での接続が可能になる(図3)。コネクターや基板上の配線とは異なり、デバイスパッケージ内での接続になるため、高速なアクセスが可能になる。

図3●Tesla P100の積層メモリー。サブスレート(パッケージ内の基板)の上にGPUと縦に4層(4-High)積んだHBM2メモリーが搭載されている。パッケージ内接続なので、多数の信号線を使うことが可能で、メモリー転送速度は720Gバイト/秒
図3●Tesla P100の積層メモリー。サブスレート(パッケージ内の基板)の上にGPUと縦に4層(4-High)積んだHBM2メモリーが搭載されている。パッケージ内接続なので、多数の信号線を使うことが可能で、メモリー転送速度は720Gバイト/秒
(出所:NVIDIA配付資料INSIDE PASCAL)
[画像のクリックで拡大表示]