NVIDIA 从 1993 年开始涉足芯片领域,早期主要在图像处理。在芯片互联技术上的突破和广泛应用主要集中在 2014 年之后的 NVLink 和 NVSwitch 技术。这些技术不仅提升了 NVIDIA 自身产品的性能,也为整个高性能计算和人工智能领域提供了重要的基础设施支持。
NVIDIA 芯片互联的产品主要包括 NVLink , NVLink-C2C 和NVSwitch。这篇文章主要聊下NVLink产生的背景,五代技术的特点,以及展望。
一、NVLink 时代的呼唤
NVLink 的诞生背景可以追溯到上世纪 80-90 年代,当时计算机技术迅速发展,尤其是 x86 CPU 和图形处理器(GPU)的性能不断提升,而 PCIe 总线逐渐成为数据传输的瓶颈(2010年前,Pcie 还处于gen3以下的速率,8Gb/s )。
英伟达在不断提升显卡性能的同时,发现PCIe协议严重限制了显卡的对外数据传输。于是,他们开始考虑自创一套体系,用于取代PCIe协议。
随着高性能计算和 AI 训练需求的迫切性,单个GPU的算力和内存已无法满足。GPU互联成为行业发展趋势,以提高系统的计算能力。在这个背景下2014年英伟达首次发布于 NVIDIA P100 GPU,每个 GPU 集成 4 条 NVLink 链路,即NVLink 1.0。
NVLink 是由强大的软件协议形成的 GPU 和 CPU 的高速连接,是基于差分信号线的串行通讯技术。
IBM 在其 POWER 系列处理器中引入了 NVLink 技术,以支持其高性能计算服务器。IBM 的 Power System S822LC 服务器搭载了 NVIDIA Tesla P100 GPU 和 NVLink 技术,实现了 CPU 与 GPU 之间的高速数据交换。IBM 还推出了 Power System AC922 服务器,支持 NVLink 2.0,进一步提升了带宽和性能。
Intel 并未参与 NVLink 的早期开发,但其在后续的硬件设计中并未完全放弃与 NVIDIA 的竞争。例如,Intel 推出了自己的高速互连技术,如 Omni-Path 和 QPI(QuickPath Interconnect),以应对 NVIDIA 的 NVLink 技术。目前,Intel 的 CPU 仍不支持 NVLink,只能通过 PCIe 与 GPU 通信。
二、NVLink 技术概念-link/packet/rate
2.1 link
一个NVlink channel 称为brick,每条nvlink1.0链路由8对差分信号组成,即8个channel(TX、RX一共32条数据线),同pcie channel的概念。
这些差分电路是直流耦合的,并使用带有 85Ω 差分端接。为了简化路由,NVLink 支持通道反转和通道极性,这意味着两个设备之间的物理通道顺序及其极性可以反转。
nvlink1.0 单通道双向5GB/s,一个nvlink 链路是40GB/s.每个 P100 GPU 集成了 4 条 NVLink 通道。总带宽为160GB/s .
2.2 packet
一个nvlink 的packet 是由1~18个flit组成。每个flit 固长128bit(后面的协议可能升级)。一个packet 最少有个header,并可以address extension 和 byte enable.
2.3 data rate
NVLink 的五代技术所对应的lane 的速率、每个NVLink链路的lane数、支持的NVLink数量、支持最大的总带宽,调制方式等:
三、NVLink的技术演进
迄今nvlink 已经经历了5代。每一代都带来了显著的性能提升。以下是主要版本的演进历程:
3.1 NVLink 1.0(2014-2016,Pascal架构)
3.1.1 NVLink1.0 特点
核心参数:
- 带宽