GPU互联
报错来了
有一台GPU服务器重装系统和NVIDIA显卡驱动后跑训练任务提示下面的错误,显卡是NVIDIA A800型号的。Google一下解决方法也比较简单,安装与驱动版本对应的 nvidia-fabricmanager 服务就可以了,NVIDIA-Fabric Manager服务可以使多A100/A800显卡间通过NVSwitch互联(安装NVIDIA-Fabric Manager软件包)。

GPU互联方式
目前GPU卡间互联的主要协议是PCIe(GPU通过PCIe链路进行通信,受限于PCIe的带宽上限,卡与卡双向互联带宽低,不满足大模型训练需求)和NVlink(SXM机型,在服务器内部GPU卡之间通过Nvlink链路互联,相比PCIE带宽更高,更适合于大模型训练场景。)
参考文章列表:
PCI-Express
PCIe一种高速串行计算机扩展总线标准,采用点对点连接方式,每一条PCIe链路两端只能各连接一个设备。

在需要高速数据传输和大量设备连接的场景中连接数量和速度受限。因此需要PCIe Switch提供扩展或聚合能力,从而允许更多的设备连接到一个 PCle 端口,以解决 PCIe 通道数量不够的问题。

GPU发出的信号需要先传递到PCIe Switch, PCIe Switch中涉及到数据的处理,CPU会对数据进行分发调度,这些都会引入额外的网络延迟,限制了系统性能。

NVLink
NVLink 和 NVSwitch官网宣传语 ”NVIDIA® NVLink™ 是世界首项高速 GPU 互连技术,与传统的 PCIe 系统解决方案相比,能为多 GPU 系统提供更快速的替代方案。NVLink 技术通过连接两块 NVIDIA® 显卡,能够实现显存和性能扩展1,从而满足最大视觉计算工作负载的需求。“


NVLink技术使GPU无需通过PCIe总线即可访问远程GPU内存,如下图所示。XBAR的采用让GPU / SM内核能够在L2高速缓存和高带宽GPU内存(HBM2)上交换数据,而NVLink实现了XBAR之间的有效桥接,使得跨GPU内存数据交换有一条高速的信息通道。

NVSwitch
NVSwitch芯片是一种类似交换机ASIC的物理芯片,通过NVLink接口可以将多个GPU高速互联到一起,从而提升服务器内部多个GPU之间的通讯效率和带宽.在P100的NVLink1时代还没有NVSwitch芯片,各个GPU之间相当于一个环形连接,造成跨NUMA时候GPU之间不能完全做到点对点。



N x GPU
HDR InfiniBand Network

NVLink Network

写在最后
现在的ChatGPT、各种模型都需要显卡,NVIDIA官网写着人工智能计算领域的领导者,为了满足多GPU高速、低延迟、点到点和点到多点通讯的需求而产生的NVlink和NVSwitch技术,在技术不断地发展进化下有可能在未来创造出一个同时适用于AI计算、CPU计算、存储等多个网络融合的超算集群。