GTC 2019で、「All you need to know about programming NVIDIA's DGX-2」という発表が行われた。この原題は、これだけ知っていればDGX-2のプログラミングができるという意味であるが、CUDAの基本的なプログラミングの知識などは、この発表の内容を理解するためにも必要であり、この発表の知識だけ知っていれば良いとも言えないので、日本語の題としては少し弱めの題にしている。

  • Lars Nyland

    GTC 2019で発表を行うNVIDIAのシニアアーキテクトのLars Nyland氏

  • Stephen Jones

    GTC 2019で発表を行うNVIDIAのシステムとソフトウェアのアーキテクトのStephen Jones氏

NVIDIAのDGX-2は、10Uの筐体に16個のTesla V100 GPUを詰め込んだサーバで、これらのGPUがNVLink2でキャッシュコヒーレントに接続されている。そして、この接続を実現するため、NVIDIAは、NVSwitchというスイッチチップを開発した。

  • NVIDIAのDGX-2サーバ

    NVIDIAのDGX-2サーバ。左の写真がV100 GPUで、右の写真が18ポートのNVSwitchである。中央の写真が10Uの筐体に入ったDGX-2サーバ。DGX-2の中央の部分の上側に見える箱がベースボードで、8個のV100 GPUと6個のNVSwitchが搭載されている。このベースボードが上下に2枚あり、その下にXeon CPUなどが収容されている (この連載の資料はNVIDIAのLars Nyland氏とStephen Jones氏の発表資料のコピー)

次の図の左の写真は8台のGPUを使う仮想通貨のマイニング用の装置、右はDGX-2の写真である。多数のGPUを搭載するという点では同じであるが、この2つの装置は何が違うのであろうか?

  • 仮想通貨マイニングマシンとDGX-2

    左は8台のGPUを搭載する仮想通貨マイニング用の装置、右はDGX-2サーバである

V100 GPUからのメモリアクセス

1つのGPUの場合、SM(緑の箱)からXBAR(GPUのチップ内のクロスバ)とL2キャッシュを経由してHBMメモリをアクセスする。また、SMはXBAR、HUB、PCIe I/Oを経由してPCIeバスに接続し、CPU側のメモリをアクセスすることもできる。

  • V100の仕組み

    1つのGPUの場合、SMからXBAR、L2キャッシュを経由してHBM2をアクセス。また、XBAR、HUB、PCIeI/O、PCIe BUSを経由してCPUのメモリをアクセスする。どちらに行くかはアクセスするメモリのアドレスによる

2つのGPUがある場合は、PCIe BUSを通って他方のGPUに行き、他方のGPUに接続されているHBM2メモリをアクセスすることもできる。しかし、他のGPUへ行くBUSはPCIeバスのバンド幅で制限され、PCIe Gen3のx16バスで32GB/s(双方向の合計)である。

  • V100の仕組み

    2つのGPUがある場合は、PCIe BUSを経由して隣のGPUに入り、隣のGPUに接続されているHBM2メモリをアクセスできる。ただし、PCIe BUSの帯域でメモリバンド幅が制約される