イベントレポート

次世代GPUアーキテクチャ「Pascal」が明らかに

~HBM2による720GB/secの超広帯域など

Pascalを載せた「Tesla P100」

 NVIDIAはGTC(Gpu Technology Conference)をカリフォルニア州サンノゼ市にあるSan Jose Convention Centerにおいて4月4日~4月7日(現地時間)の期間で開催している。

 NVIDIA CEOのジェンセン・フアン氏の基調講演で、「Tesla P100」と呼ばれる新しいGPUが発表された。Tesla P100はNVIDIAが開発してきた「Pascal」(パスカル、開発コードネーム)で知られる次世代GPUアーキテクチャに基づく製品で、HPC(High Performance Computing)などの高い処理能力が必要な用途向けに販売されることになる。

 現時点ではHPC向けのTeslaシリーズのみに留まっているが、今後NVIDIAはPascalをコンシューマ向けにも展開していくと見られ、そのアーキテクチャに注目が集まっていたが、5日に「Inside Pascal」と呼ばれる技術説明会を開催し、NVIDIAのLars Nyland氏、Mark Harris氏の2人によってPascalの技術的な概要の説明が行なわれた。

60SM/3,840CUDAコアとなるGP100、Tesla P100は56SM/3,584CUDAコア

 Pascalの最初のダイバリエーションとなるGP100は、アーキテクチャ的にはSM(Streaming Multiprocessor)の数が60個で、1SMあたり64CUDAコアとなっており、合計で3,840個のCUDAコアを内蔵する計算となる。

 ただし、Tesla P100は全てのSMが有効になっているわけではなく、4つのSMが無効となる56SMとなり、CUDAコアは3,584コアだ。対応するメモリはHBM(High Bandwidth Memory)2で容量は16GB、512bitのメモリコントローラを8つ搭載しており、4,096bitで720GB/secの帯域幅を実現している。

Tesla P100の紹介
Tesla P100と現行世代(Tesla K40、Tesla K100)との比較
Tesla P100の性能、NVLinkにより複数のGPUでスケーリングした時に性能の落ち込みが少ない

 Pascalの内部のブロックダイアグラムは以下のようになっている。

Pascalのブロックダイアグラム
世代間でのGPU性能の比較

 これにより、演算性能は倍精度(FP64)時が5.3TFLOPS、単精度(FP32)時が10.6TFLOPS、半精度(FP16)時が21.1TFLOPSになるという。この性能は、MaxwellベースのTesla M40に比べて3倍だという。

GP100のSM
GP100のSMと従来の世代の比較

 GP100のそれぞれのSMには64個のCUDAコア、256KBのレジスタファイル、64KBの共有メモリなどが配置されており、Maxwell世代と比較して2倍のレジスタファイル、1.33倍の共有メモリ容量、2倍の共有メモリ帯域幅、2倍のワープスなどになっており、命令実行時のスループットが向上していることが特徴だ。

FPの演算方法
半精度の浮動小数点演算

 また、従来世代ではサポートされていなかった(正しくは、1クロックサイクルで1つは演算可能だった)半精度の浮動小数点演算を、1クロックサイクルで2つをペアで処理できるようになっている。これにより、半精度の浮動小数点演算時の性能が倍になった。ディープラーニングのトレーニングやイメージ処理などで効果が大きいという。

4つのNVLinkを内蔵しており、GPUクラスタ構成では160GB/secの帯域幅を実現

 GP100ではNVLink(エヌブイリンク)と呼ばれるGPU間、ないしはGPUとCPUを接続する専用のインターコネクトがサポートされる。GP100は4つのNVLinkを持っており、1つがそれぞれ40GB/secの双方向通信をサポートしている。

NVLinkの概要

 NVLinkはGPU同士を繋ぎ、クラスター化して利用でき、その場合には双方向で最大160GB/secのインターコネクトになる。IntelのCPUなど、NVLinkに対応していないCPUを利用する場合には、CPUからはPCI Expressのスイッチを介して、それぞれのGPUにPCI Expressで接続されるという形になる。

4つのGPUがそれぞれクラスター化される場合

 なお、IBMの「POWER8」のように、将来のCPUでNVLinkをサポートする場合には、CPUとの接続にNVLinkを利用できる。この場合には、4つのNVLinkのうち3つをGPUクラスターに利用し、最大120GB/secでCPU-GPU間を1つのNVLinkで繋いで、40GB/secの帯域幅で接続することになる。

NVLinkに対応したIBM POWER8の例

 なお、NVLinkを利用して基板に接続するコネクタの写真も公開され、それは以下のようになっている。

NVLinkのコネクタ

CUDA8との組み合わせでは共有メモリでGPUのメモリ以上の容量を扱うことが可能に

 GP100のもう1つの特徴は、メモリ周りの仕組みが大幅に強化されていることだ。GP100では、HBM2と呼ばれるCPUと基板上でダイレクトに接続される形の次世代メモリに対応する。HBMはAMDのGPUで初めてサポートされた技術だが、Pascal世代ではNVIDIAのGPUにも採用される。

GP100におけるHBM2の実装

 HBMメリットは従来の方式に比べて広帯域幅を実現できることだ。これにより、GP100では720GB/secの帯域幅を実現している。

 また、GP100には、NVIDIAが「Page Migration Engine」(ページマイグレーションエンジン)と呼ぶ機能が搭載されており、仮想メモリのページング要求をサポートできるようになっている。具体的には49bitの仮想アドレスが利用可能で、48bitのCPUによるアドレスと全てのGPUメモリをカバー可能だ。

Page Migration Engineの説明

 ユニファイドメモリと呼ばれるCPUとGPUが共通のメモリアドレススペースを利用する場合、従来世代のGPU(Keplerなど)とCUDA6のプログラミングモデルでは、GPUのメモリサイズまでしかメモリを割り当てられなかったのに対して、Pascalと6月に導入される予定のCUDA8を利用することで、GPUのメモリサイズを超えて割り当て可能になったことが最大のメリットと言える。

Maxwell世代とPascal世代でのユニファイドメモリの違い

 このほかにも、新しい命令セット、より多くのL2キャッシュなどに関しては、別途ホワイトペーパーに書かれていることが説明された。

詳細はNVIDIAのWebサイトで解説されている

(笠原 一輝)