V100のNVLink IIは単にバンド幅が増加しているだけではない。CPUからはフラットな共通メモリアドレスですべてのエージェントにロード/ストア命令でアクセスできると書かれている。この機能の中身については発表ではほとんど触れられず、詳細は分からないが、CPUからはロードストア命令ですべてのGPUチップのデバイスメモリもアクセスできるようである。
なお、ここでCPUというのはNVLink IIをサポートしているCPUのことで、IBMのPOWER9 CPUのことを意味しており、IntelのXeonやAMDのEPYCではこの機能は使えない。
また、Read-Modify-Writeを不可分に実行するAtomic命令はメモリ側で処理するようになったと書かれている。これにより、Atomicアクセスの性能向上が期待できる。しかし、これもCPU側のメモリがその機能をサポートしないと使えない。
そして、CPU側のページテーブルを使ってGPUのメモリアクセスのアドレス変換を行えるというのは共通メモリアドレス空間を実現するうえで重要であるが、これもCPU側のサポートが必須である。
NVLink IIの新機能。CPUからすべてのエージェントにLoad/Storeアクセス可能。Atomicアクセスの処理をメモリ側で実行。GPUからCPUのページテーブルを使用など。ただし、NVLink IIをサポートするPOWER9 CPUでないとこれらの機能は使えないと思われる |
V100のNVLink IIは、先に書いたように25Gbit/sにスピードアップされ、V100チップから6リンクに増加しており、結果として約1.9倍のバンド幅になっている。そして重要なのは、CPUのキャッシュがGPUメモリのデータをキャッシュするという点である。
CPUは、GPUのデバイスメモリを自由にアクセスでき、そのデータがCPUのキャッシュに入ってコヒーレンシが維持できるようになると、CPUとGPUの連携という点では、速度が向上し、かなり便利になる。また、GPUはProbe Filterを持つと書かれており、CPUのキャッシュに入っている可能性のないデータへのGPUからのアクセスは、CPUキャッシュのスヌープを行わないようにしているムダなスヌープ動作を行わないようにしていると考えられる。
一方、逆方向のGPUによるCPUメモリのアクセスについては言及されておらず、GPU側ではCPUのメモリのデータをキャッシュするということは行われないようである。
電力制御に関しては、NVLink IIの負荷の軽い状態では、使用する信号線の本数を減らして、消費エネルギーを減らすとのことである。
NVIDIAのディープラーニングの開発システムである初代のDGX-1は8個のP100 GPUを4本のNVLinkで相互接続しているが、6リンクをもつV100 GPUを使うエンハンス版が発表された。接続されるGPUの数は8個で増えてはいないが、V100 GPU間を接続するNVLinkの本数が増えて、通信バンド幅が拡大している。
また、IBMのS822LCサーバは2個のPOWER8 CPUにそれぞれ2個のP100 GPUを接続しているが、米国の次期フラグシップスパコンであるSummitシステムでは、計算ノードは、2個のPOWRER9 CPUにそれぞれ3個のV100 GPUを接続した構成となることが発表された。
V100 GPUのSM(Streaming Multiprocessor)のブロック図は次の図のようになっており、4つのサブコアからなっている。サブコアそれぞれに命令のスケジューラを持っており、2つの命令スケジューラであったP100に比べて2倍の数のスケジューラとなっている。また、P100ではスケジューラは2個であるが、それぞれのスケジューラが、連続した2命令を発行する命令ディスパッチャを持つという構成になっていた。これが、V100では4つのスケジューラがそれぞれ1命令を発行するというすっきりした構成となった。
また、L1キャッシュは容量が増加し、速度も速くなっている。そして、行列積を効率よく計算できるTensor Coreの新設があり、全体としてP100のSMと比べて50%エネルギー効率が改善されているという。
VoltaのSMは4個のサブコアを持つ構成となった。これにより、スケジューラの数は2倍になり命令発行ロジックも簡単になった。また、L1キャッシュは容量が増え、速度も速くなった。Tensor Coreの追加などでSMのエネルギー効率はP100と比べて50%改善 |
L1命令キャッシュは4つのサブコアに命令を供給しており、クロック当たり4ワープの命令を読み出せる。そして、サブコアはクロック当たり1つのワープの命令を実行するというすっきりした構成となった。
L1 Dキャッシュとシェアードメモリは一体に作られて全体で128KBの容量となっている。そして128B/クロックという高いバンド幅をもっている。テクスチャユニットはクロック当たり4クワッドを処理することができる。