11月17日(米国時間)からコロラド州デンバーで開催されているスーパーコンピュータ(スパコン)最大の学会「SC13」において、NVIDIAは科学技術計算用の「Tesla K40アクセラレータ」を発表した。
NVIDIAの「Tesla K20/K20X」は多くのスパコンで計算アクセラレータとして採用されており、Intersect360の調査では、NVIDIA GPUのアクセラレータ市場でのシェアは85%に上っている。今回発表のK40は、このK20の上位製品となる。
K40はK20に比べて、AMBERのベンチマークでは3割程度性能が上がり、メモリも12GBと倍増している。また、チップ温度の余裕を使ってクロックを上げるGPUブーストを装備している。
この図に見られるようにアプリによって差があるが、GPUブーストを使うと、11%から25%の性能向上が得られるという。
次の図はK20XとK40の諸元を比較したものである。
K40は、コア数が2688から2880に増加している。K20Xに使用されているGK110 GPUチップは、192個のコアを持つSMXというユニットを15個集積している。しかし、K20ではそのうちの13個を使用し2個はスペアで、K20Xでは14個を使用し1個はスペアとなっている。これは一部のSMXに製造不良があっても、チップとしては良品にできるようにする歩留まり向上策で、NVIDIAに限らず、業界では一般的に行われている手法である。
これに対して、K40の2880コアは、15個すべてのSMXが使用可能な製造不良の無い完全なチップであることを意味している。
一般に、製造経験を積むにしたがって、製造不良の原因を見つけて対策をとり、不良を減らすという努力が行われる。K40の製品化は、GK110チップも完全良品のチップがかなりの比率で得られるレベルに達したという証である。
K20Xと比べるとK40は、コア数の増加に加えて、コアクロックも732MHzから745MHzと若干向上し、単精度浮動小数点のピーク演算性能は、3.93TFlopsから4.29TFlopsと9.2%向上している。また、GPUブーストでは、コアクロックは810MHz、あるいは、875MHzにアップする。
そして、メモリクロックは2.6GHzから3GHzに上がり、メモリバンド幅は250GB/sから288GB/sと15.4%向上している。見逃せないのはCPUとの接続がPCI Express(PCIe)2.0からPCIe3.0に変更された点で、バンド幅が4GB/s×2から8GB/s×2と倍増している。なお、NVIDIAはこのチップをGK110Bと称している。
また、同時にGPUアクセラレータのプログラミング言語であるCUDA 6.0での統一メモリのサポートが発表された。
CPUからGPUに仕事をオフロードする場合、CPUのメモリからGPUのメモリに明示的にデータを転送し、計算結果を逆にGPUメモリからCPUメモリにデータを転送するという操作が必要になる。これが、GPUプログラミングが難しいといわれる原因の1つとなっている。CUDA 6では、この問題を解決し、CPUとGPUのメモリの統一的なアクセスが可能になるという。
次の図は、ファイルからデータを読んできて、それをソートするというコードのCPU版(左)とCUDA 6でのコード(右)を比較したものである。
右のCUDA 6のコードでは、qsortを行うGPUカーネルの実行終了後にcudaDeviceSynchronize( )を呼び出す必要があるが、その他は、CPUコードと同じ複雑度で、データの転送を明示的に記述する必要はなくなっている。
このCUDA 6は、K40だけでなく、K20、K20Xでも使えるとのことである。