最近人工智能大火,AI 应用所触及的技能才能包含语音、图像、视频、NLP 等多方面,而这些都需求强大的核算资源支撑。AI 技能对算力的需求是十分庞大的,虽然 GPU 的核算才能在持续进步,可是关于 AI 来说,单卡的核算才能就算再强,也是有极限的,这就需求多 GPU 组合。而 GPU 多卡的组合,主要分为单个服务器多张 GPU 卡和多个服务器,每个服务器多张卡这两种情况,无论是单机多卡仍是多机多卡,GPU 之间需求有超强的通讯支撑。接下来,我们就来聊聊 GPU 通讯技能。

单机多卡GPU通讯

GPU Direct

GPU Direct 是 NVIDIA 开发的一项技能,可完成 GPU 与其他设备(例如网络接口卡 (NIC) 和存储设备)之间的直接通讯和数据传输,而不触及 CPU。

传统上,当数据需求在 GPU 和另一个设备之间传输时,数据有必要经过 CPU,然后导致潜在的瓶颈并添加推迟。运用 GPUDirect,网络适配器和存储驱动器能够直接读写 GPU 内存,削减不必要的内存耗费,削减 CPU 开支并下降推迟,然后明显进步功能。GPU Direct 技能包含 GPUDirect Storage、GPUDirect RDMA、GPUDirect P2P 和 GPUDirect 视频。

GPUDirect Storage

GPUDirect Storage 答应存储设备和 GPU 之间进行直接数据传输,绕过 CPU,削减数据传输的推迟和 CPU 开支。

经过 GPUDirect Storage,GPU 能够直接从存储设备(如固态硬盘(SSD)或非易失性内存扩展(NVMe)驱动器)拜访数据,而无需将数据先仿制到 CPU 的内存中。这种直接拜访能够完成更快的数据传输速度,并更高效地利用 GPU 资源。

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

GPUDirect Storage 的主要特点和优势包含:

  • 削减 CPU 参加:经过绕过 CPU,完成 GPU 和存储设备之间的直接通讯,GPUDirect Storage 削减了 CPU 开支,并释放 CPU 资源用于其他使命,然后改善体系的整体功能。
  • 低推迟数据拜访:GPUDirect Storage 消除了数据经过 CPU 的传输路径,然后最小化了数据传输的推迟。这关于实时分析、机器学习和高功能核算等对推迟敏感的应用十分有利。
  • 进步存储功能:经过答应 GPU 直接拜访存储设备,GPUDirect Storage 完成了高速数据传输,能够明显进步存储功能,加速数据密集型作业负载的处理速度。
  • 增强的可扩展性:GPUDirect Storage 支撑多 GPU 装备,答应多个 GPU 同时拜访存储设备。这种可扩展性关于需求大规模并行处理和数据分析的应用至关重要。
  • 兼容性和生态体系支撑:GPUDirect Storage 设计用于与各种存储协议兼容,包含 NVMe、NVMe over Fabrics和网络附加存储(NAS)。它得到了主要存储供货商的支撑,并集成到流行的软件结构(如NVIDIA CUDA)中,以简化与现有的 GPU 加速应用程序的集成。

GPUDirect P2P

某些作业负载需求位于同一服务器中的两个或多个 GPU 之间进行数据交流,在没有 GPUDirect P2P 技能的情况下,来自 GPU 的数据将首要经过 CPU 和 PCIe 总线仿制到主机固定的同享内存。然后,数据将经过 CPU 和 PCIe 总线从主机固定的同享内存仿制到方针 GPU,数据在到达目的地之前需求被仿制两次。

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

有了 GPUDirect P2P 通讯技能后,将数据从源 GPU 仿制到同一节点中的另一个 GPU 不再需求将数据暂时暂存到主机内存中。如果两个 GPU 衔接到同一 PCIe 总线,GPUDirect P2P 答应拜访其相应的内存,而无需 CPU 参加。前者将履行相同使命所需的仿制操作数量折半。

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

NVLink

在 GPUDirect P2P 技能中,多个 GPU 经过 PCIe 直接与 CPU 相连,而 PCIe3.0*16 的双向带宽不足 32GB/s,当练习数据不断增加时,PCIe 的带宽满足不了需求,会逐步成为体系瓶颈。为进步多 GPU 之间的通讯功能,充分发挥 GPU 的核算功能,NVIDIA 于 2016 年发布了全新架构的 NVLink。NVLink 是一种高速、高带宽的互连技能,用于衔接多个 GPU 之间或衔接 GPU 与其他设备(如CPU、内存等)之间的通讯。NVLink 供给了直接的点对点衔接,具有比传统的 PCIe 总线更高的传输速度和更低的推迟。

  • 高带宽和低推迟:NVLink 供给了高达 300 GB/s 的双向带宽,将近 PCle 3.0 带宽的 10 倍。点对点衔接超低推迟,可完成快速、高效的数据传输和通讯。
  • GPU 间通讯:NVLink 答应多个 GPU 之间直接进行点对点的通讯,无需经过主机内存或 CPU 进行数据传输。
  • 内存同享:NVLink 还支撑 GPU 之间的内存同享,使得多个 GPU 能够直接拜访彼此的内存空间。
  • 弹性衔接:NVLink 支撑多种衔接装备,包含 2、4、6 或 8 个通道,能够根据需求进行灵敏的装备和扩展。这使得 NVLink 适用于不同规模和需求的体系装备。

NVSwitch

NVLink 技能无法使单服务器中 8 个 GPU 到达全衔接,为处理该问题,NVIDIA 在 2018 年发布了 NVSwitch,完成了 NVLink 的全衔接。NVIDIA NVSwitch 是首款节点交流架构,可支撑单个服务器节点中 16 个全互联的 GPU,并可使全部 8 个 GPU 对分别到达 300GB/s 的速度同时进行通讯。

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

△ NVSwitch 全衔接拓扑

多机多卡GPU通讯

RDMA

AI 核算对算力需求巨大,多机多卡的核算是一个常态,多机间的通讯是影响分布式练习的一个重要目标。在传统的 TCP/IP 网络通讯中,数据发送方需求将数据进行屡次内存仿制,并经过一系列的网络协议的数据包处理作业;数据接收方在应用程序中处理数据前,也需求经过屡次内存仿制和一系列的网络协议的数据包处理作业。经过这一系列的内存仿制、数据包处理以及网络传输延时等,服务器间的通讯时延往往在毫秒级别,不能够满足多机多卡场景关于网络通讯的需求。

RDMA(Remote Direct Memory Access)是一种绕过长途主机而拜访其内存中数据的技能,处理网络传输中数据处理推迟而发生的一种远端内存直接拜访技能。

目前 RDMA 有三种不同的技能完成方法:

  1. InfiniBand(IB):IB 是一种高功能互连技能,它供给了原生的 RDMA 支撑。IB 网络运用专用的 IB 适配器和交流机,经过 RDMA 操作完成节点之间的高速直接内存拜访和数据传输。
  2. RoCE(RDMA over Converged Ethernet):RoCE是在以太网上完成 RDMA 的技能。它运用规范的以太网作为底层传输介质,并经过运用 RoCE 适配器和适当的协议栈来完成 RDMA 功能。
  3. iWARP:iWARP 是根据 TCP/IP 协议栈的 RDMA 完成。它运用一般的以太网适配器和规范的网络交流机,并经过在 TCP/IP 协议栈中完成 RDMA 功能来供给高功能的长途内存拜访和数据传输。

GPUDirect RDMA

GPUDirect RDMA 结合了 GPU 加速核算和 RDMA(Remote Direct Memory Access)技能,完成了在 GPU 和 RDMA 网络设备之间直接进行数据传输和通讯的才能。它答应 GPU 直接拜访 RDMA 网络设备中的数据,无需经过主机内存或 CPU 的中介。

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

GPUDirect RDMA 经过绕过主机内存和 CPU,直接在 GPU 和 RDMA 网络设备之间进行数据传输,明显下降传输推迟,加快数据交流速度,并能够减轻 CPU 负载,释放 CPU 的核算才能。另外,GPUDirect RDMA 技能答应 GPU 直接拜访 RDMA 网络设备中的数据,避免了数据在主机内存中的仿制,进步了数据传输的带宽利用率

IPOIB

IPOIB(IP over InfiniBand)是一种在 InfiniBand 网络上运行 IP 协议的技能。它将规范的 IP 协议栈与 IB 互连技能相结合,使得在 IB 网络上的节点能够运用 IP 协议进行通讯和数据传输。

IPOIB 供给了根据 RDMA 之上的 IP 网络模仿层,答应应用无修正的运行在 IB 网络上。可是,IPoIB 仍然经过内核层(IP Stack),会发生很多体系调用,而且触及 CPU 中断,因而 IPoIB 功能比 RDMA 通讯方法功能要低,大多数应用都会选用 RDMA 方法获取高带宽低延时的收益,少数的关键应用会选用 IPoIB 方法通讯。

在大规模核算中,单机多卡场景下运用 GPUDiect、NVLink 技能,分布式场景下运用 GPUDirect RDMA 技能,能够大大缩短通讯时间,进步整体功能。

如果你对 GPU 相关技能感兴趣,你能够用它尝试建立 AI 绘画渠道或者做一些推理的作业。AI 绘画建立的教程我先放在这儿啦:《从 0 到 1,带你玩转 AI 绘画》