NVLink和NVSwitch


NVLink

NVLink主要加速CPU和NVIDIA GPU之間的互聯速度,需要CPU的支持,例如IBM的Power的某些CPU支持,intel的CPU不支持;
也用於加速NVIDIA GPU和NVIDIA GPU之間的互聯速度;
是一種點對點結構的串行通信協議;
版本 速度 Lans
Per Link
單向速度
Per Link
Link數 In BW Out BW
Total BW
2014年
NVLink 1.0
20GT/s 8+8
In + Out
8bit*20GT/s=20GB/s P100 With
4 Links
80GB/s 80GB/s 160GB/s
2018年
NVLink 2.0
25GT/s 8+8
In + Out
8bit*25GT/s=25GB/s V100 With
6 Links
150GB/s 150GB/s 300GB/s
2020年
NVLink 3.0
50GT/s 4+4
In + Out
4bit*50GT/s
=25GB/s
A100 With
12 Links
300GB/s 300GB/s 600GB/s
X16 PCIe Gen3 的帶寬是16bit*8GT/s=16GB/s
X16 PCIe Gen4 的帶寬是16bit*16GT/s=32GB/s


eg1: GPU與GPU通過NVLink1.0互聯
eg2: GPU與GPU通過NVLink1.0互聯
eg3: 8*P100 Cube Mesh Topo
eg4: 8*V100 Cube Mesh Topo


NVSwitch

NVSwitch是交換芯片
6對(12個Switch)使用在1個DGX-2的Server中支持16個P100 GPU
從GPU的角度看:8對GPU之間的帶寬都是300GB/s,那么合計的帶寬就是300GB/s*8=2.4TB/s
從Switch的角度看:一個Switch是8個Link,6個Switch就是48Link,單向進入的速度也可以這樣計算48Link*25GB/s=1.2TB/s
Switch存在的作用是避免GPU和GPU之間的通信會存在多跳;
關於NVSwitch能找到的資料只有hp30上的膠片,可以看到switch上其實有18個NVLink2.0的Port,理論的吞吐是18*50GB/s=900GB/s
可以猜測NVSwitch2.0可能實現了36個NVLink3.0的Port,理論的吞吐是1800GB/s,但是實際上使用了32個,吞吐是1600GB/s;

EX01: 12個NVSwitch 1.0連接16個V100實現0跳互聯: 
參考Wikichip的透視可能更加清晰:

EX02: 12個NVSwitch 2.0連接16個A100實現0跳互聯:

Change List
V0.1 2019年11月9日 NVLink1.0/2.0 NVSwitch1.0
V0.2 2020年5月23日 添加NVLink3.0  NVSwitch2.0

參考文獻:




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM