Vengineerの妄想

人生を妄想しています。

NVIDIA の NVLINK を調べなおしました

はじめに

NVIDIAのNVLINK、P100で初めて導入され、V100、A100、H100の転送レートを上げてきています。

そこで、NVLINKとは、何か?を振り返りたいと思います。

NVLINKとは?

NVLINKは、P100の時に導入されました。

NVIDIA Tesla P100 White PaperのNVLink High Speed Interconnect によると、

NVLink uses NVIDIA’s new High-Speed Signaling interconnect (NVHS). NVHS transmits data over a differential pair running at up to 20 Gb/sec. Eight of these differential connections form a Sub-Link that sends data in one direction, and two sub-links—one for each direction—form a Link that connects two processors (GPU-to-GPU or GPU-to-CPU). A single Link supports up to 40 GB/sec of bidirectional bandwidth between the endpoints.Multiple Links can be combined to form Gangs for even higherbandwidth connectivity between processors. The NVLink implementation in Tesla P100 supports up to four Links, enabling ganged configurations with aggregate maximum bidirectional bandwidth of 160GB/sec,

とあります。

  • 片方向 : 20Gbps x 8 = 20GB/s で、4組 = 2 x 20GB/s x 4 = 160GB/s

NVIDIA V100 Tensor コア GPUアーキテクチャr では、

  • 片方向 : 25Gbps x 8 = 25GB/s で、6組 = 2 x 25GB/s x 6 = 300GB/s

NVIDIA A100 Tensor コア GPUアーキテクチャ では、

  • 片方向 : 50Gbps x 4 = 25GB/s で、12組 = 2 x 25GB/s x 12 = 600GB/s

NVIDIA H100 Tensor Core GPU Architecture では、

  • 片方向 : 100Gbps x 2 = 25GB/s で、18組 = 2 x 25GB/s x 18 = 900GB/s

まとめると、

  • P100 : 160GB/s : 2 x 20GB/s x 4
  • V100 : 300GB/s : 2 x 25GB/s x 6
  • A100 : 600GB/s : 2 x 25GB/s x 12
  • H100 : 900GB/s : 2 x 25GB/s x 18

です。V100からは、1組の転送レートは25GB/sで同じですが、6 => 12 => 18 と増やすことで性能を上げています。また、SERDESの動作周波数も、25Gbps => 50Gbps => 100Gbps を倍々に上げています。

OAM では、x16 が 7組(8組あるが、1組はホストとの接続のため、PCIe として使用)なので、16 x 7 までSERDESを出せます。H100では、100Gbps x 2 x 2 x 18 = 72本出ています。16 x7 = 112 本まで出せます。2 x 25GB/s x 24 にすると、2 x 2 x 24 = 96本になり、OKです。これだと、100Gbps のSERDESを使って、1200GB/s になります。2 x 2 x 30 だと、120 本になり、112本を超えてしまいますね。。

そうなると、200Gbps の SERDES を使うことになるのでしょうね。

NVLINK の構成

NVLink Interface to the Tesla P100 に下記のようなブロック図が載っています。説明のために引用します。

HSHUB (High-Speed Hub) なるものがあり、その HSHUB に、XBAR、SYS (PCIE I/Oと接続)、HIGH SPEED COPY ENGINES、NVLINK (NVLINK I/O) が接続しています。

また、Appendix A: NVLink Signaling and Protocol Technology によると、

On die, data is sent from the PHY (physical level circuit) to the NVLink controller using a 128-bit Flit (Flow control digit) at 1.25GHz data rate.

The protocol uses a variable length packet with packet sizes ranging from 1 (simple read request command for example) to 18 (write request with data for 256B data transfer with address extension) flits.

参考サイト

news.mynavi.jp

おわりに

NVIDIAのNVLINKを調べなおしました。

P100では、20Gbps の SERDES でしたが、H100 では 100Gbps の SERDES を使っています。。。

次の Blackwell では、200Gbps の SERDES を使うのか? 100Gbps の SERDES の本数を多くするのか? わかるのは、2年後ですね。。。

参考、

PC Watchの後藤さんの記事の図(PDF版)

L2 Cache は、各メモリコントローラの手前に各 512KB。12 x 512KB = 6MB