随着人工智能和图形处理需求的不断增长,多 GPU 并行计算已成为一种趋势。对于多 GPU 系统而言,一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作。然而,传统的 PCIe 总线由于带宽限制和延迟问题,已无法满足 GPU 之间通信的需求。为了解决这个问题,NVIDIA 于 2018 年推出了 NVLINK,以提高 GPU 之间的通信效率。

了解 NVLINK

NVLINK 是一种专门设计用于连接 NVIDIA GPU 的高速互联技术。它允许 GPU 之间以点对点方式进行通信,绕过传统的PCIe总线,实现了更高的带宽和更低的延迟。NVLINK 可用于连接两个或多个 GPU,以实现高速的数据传输和共享,为多 GPU 系统提供更高的性能和效率。

 

NVLINK 采用串行协议,使用 P2P 连接进行数据传输。它支持双向数据传输,每个方向都有高达 32GB/s 的带宽。这意味着两个 GPU 之间可以实现总共高达 64GB/s 的带宽。

此外,NVLINK 支持多通道通信,允许同时进行多个数据传输会话。它还支持 CUDA 核心直接访问显存,使得 GPU 可以更高效地处理数据。

NVLINK 的架构

NVLINK 的架构包括 NVLINK 桥接器和NVLINK交换机。

NVLINK 桥接器是用于 GPU 与其他设备(如CPU、内存或其他 GPU)之间通信的组件。它提供了一组 NVLINK 接口,可以将 GPU 连接到其他设备上。而 NVLINK 交换机是用于 GPU 之间通信的组件。它提供了一组 NVLINK 连接端口,可以将多个 GPU 相互连接起来。NVLINK 交换机可以位于 GPU 芯片内部或外部,从而形成 NVLINK 通信网络。

NVLINK的工作流程

1. 寻址和初始化

在使用NVLINK 进行通信之前,需要对目标 GPU 进行寻址和初始化。这通常通过设置 GPU 设备的地址和端口号来完成。

2. 数据传输

一旦寻址和初始化完成,就可以开始进行数据传输。NVLINK 支持两种数据传输模式:DMA 和 P2P。

DMA 模式:在 DMA 模式下,CPU 可以通过 NVLink 桥接器直接将数据传输到目标 GPU 的显存中。这个过程不需要目标 GPU 的参与,因此可以有效地提高数据传输效率。

P2P 模式:在 P2P 模式下,两个 GPU 之间可以直接进行数据传输。这种模式通常用于在 GPU 之间共享数据或进行并行计算任务。

3. 数据接收和处理

目标 GPU 在接收到数据后,会对其进行处理或存储。在这个过程中,GPU 可以使用 CUDA 核心直接访问显存,以实现高效的数据处理。

NVLINK VS PCIe

按照总线接口类型,可以分为 NVLINK 接口以及 PCIe 总线两种。

其中 NVLINK 接口类型的 GPU 典型代表是 NVIDIA A100,采用 SXM4 接口。NVLINK 总线接口类型的 GPU 服务器可以分为两类,一类是 NVIDIA 公司设计的 DGX 超级计算机,另一类是合作伙伴设计的 NVLINK 接口的服务器。专门的 HGX 系统板通过 NVLINK 将 8 个 GPU 互连起来,实现了 GPU 之间的高带宽。

接下来,我们看看 NVLINK 与 PCIe 究竟有什么区别?

NVLINK 和 PCIe 都是用于设备间通信的高速接口,但它们在架构、设计和应用方面具有一些关键差异。

NVLINK 主要用于 NVIDIA 的 GPU 之间,以实现高效的并行计算和数据共享。NVLINK 互联设备的物理层包括两个高速数据通道和一个控制通道,提供高达 64GB/s 的带宽。

PCIe 则是一种通用的高速串行计算机扩展总线标准,广泛用于包括 NVIDIA GPU 在内的各种设备之间的通信。PCIe信号线数量和带宽可以根据具体的应用进行配置,例如在 PCIe 5.0 x16 配置中,信号线数量为 32 对,带宽为504GB/s。

在通信带宽方面,NVLINK 具有更高的单向和双向带宽。NVLINK 3.0 的 x18 配置下,每个方向的数据速率可达 25 Gbit/s,总带宽达到 7200 Gbit/s。而 PCIe 5.0 x16 的单向带宽为504 Gbit/s。但如果考虑到双向带宽,PCIe 5.0 x16的理论双向带宽可达 126 GB/s,这要高于 NVLINK 的7200 Gbit/s。

此外,NVLINK 的特点在于其 8 对差分线组成的一根 sub-link,一对 sub-link 负责一个方向的传输,组成一个完整的 link。这种设计使得 NVLINK 在进行大量数据传输时能保持较低的延迟。而 PCIe 作为行业标准,具有很好的通用性,可以灵活地与其他设备进行互联,并且支持更高的通道数和更低的延迟。

总的来说,NVLINK 和 PCIe 都是高速互联技术,具有各自的优势和应用领域。在需要高带宽、低延迟的并行计算和数据共享场景中,NVLINK 可能会更有优势。而在需要灵活通用、可扩展性强的应用中,PCIe 可能会更合适。

常见的应用场景

NVLINK 的应用场景非常广泛。以下是一些主要的应用领域:

  1. 高性能计算:在高性能计算领域,多 GPU 和多处理器系统的需求日益增长。NVLINK 通过提供高速互联和高带宽通信,可以显著提高这类系统的计算性能。例如,在气象预测、物理模拟、生物计算等应用中,使用 NVLINK 连接的多 GPU 系统可以处理更大规模的数据集,并更快地得出结果。
  2. 人工智能和深度学习:随着人工智能和深度学习技术的发展,大规模数据处理和并行计算的需求也在不断增加。NVLINK 可以用于构建高效的人工智能和深度学习训练平台,通过并行计算和高速数据传输来提高训练速度和效率。
  3. 数据中心:在数据中心环境中,NVLINK 可以用于实现 GPU 和 CPU 之间的高速数据传输,从而提高数据处理和应用性能。例如,使用 NVLINK 连接的 GPU 可以加速数据库查询、视频转码等任务的速度。
  4. 图形渲染:在图形渲染领域,NVLINK 可以提高 GPU 之间的协作和通信效率。例如,在复杂的 3D 渲染场景中,多个 GPU 可以通过 NVLINK 进行高效的并行计算,以实现更快的渲染速度和更高的图像质量。
  5. 游戏开发:在游戏开发领域,NVLINK 可以提高 GPU 之间的数据传输速度和渲染效率。这可以使游戏开发者实现更流畅的帧率和更高质量的图像渲染,从而提供更好的游戏体验。

最后我们来简单总结下,NVLINK 是一种高速互联技术,用于在多 GPU 之间提供高效的通信和协作。它通过在 GPU 的 PCIe 插槽上添加额外的物理层来实现高速通信,支持高达 64GB/s 的带宽和低延迟通信。NVLINK 的并行计算支持大幅提高了多 GPU 系统的计算能力和性能,使其在高性能计算、人工智能、深度学习等领域具有广泛的应用前景。看完这些,相信你对 NVLINK 已经有了一定的了解。

深入了解 GPU 互联技术——NVLINK的更多相关文章

  1. 第一篇:GPU 编程技术的发展历程及现状

    前言 本文通过介绍 GPU 编程技术的发展历程,让大家初步地了解 GPU 编程,走进 GPU 编程的世界. 冯诺依曼计算机架构的瓶颈 曾经,几乎所有的处理器都是以冯诺依曼计算机架构为基础的.该系统架构 ...

  2. GPU虚拟化技术详解

    GPU虚拟化技术详解 GPU英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,1999年由NVIDIA公司提出. 一.GPU概述 GPU这一概念也是相对于计算 ...

  3. 网络互联技术(2)——前篇—【转载】电脑结构和CPU、内存、硬盘三者之间的关系

    原文链接:传送门 详细内容: 电脑结构和CPU.内存.硬盘三者之间的关系 前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑 ...

  4. 让AI简单且强大:深度学习引擎OneFlow技术实践

    本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...

  5. [转帖]nvidia nvlink互联与nvswitch介绍

    nvidia nvlink互联与nvswitch介绍 https://www.chiphell.com/thread-1851449-1-1.html 差不多在一个月前在年度gtc会议上,老黄公开了d ...

  6. qGPU on TKE - 腾讯云发布下一代 GPU 容器共享技术

    背景 qGPU 是腾讯云推出的 GPU 共享技术,支持在多个容器间共享 GPU卡,并提供容器间显存.算力强隔离的能力,从而在更小粒度的使用 GPU 卡的基础上,保证业务安全,达到提高 GPU 使用率. ...

  7. 【转载】 NVIDIA Tesla/Quadro和GeForce GPU比较

    原文地址: https://blog.csdn.net/m0_37462765/article/details/74394932 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议 ...

  8. AI解决方案:边缘计算和GPU加速平台

    AI解决方案:边缘计算和GPU加速平台 一.适用于边缘 AI 的解决方案 AI 在边缘蓬勃发展.AI 和云原生应用程序.物联网及其数十亿的传感器以及 5G 网络现已使得在边缘大规模部署 AI 成为可能 ...

  9. 深度学习“引擎”之争:GPU加速还是专属神经网络芯片?

    深度学习“引擎”之争:GPU加速还是专属神经网络芯片? 深度学习(Deep Learning)在这两年风靡全球,大数据和高性能计算平台的推动作用功不可没,可谓深度学习的“燃料”和“引擎”,GPU则是引 ...

  10. 国内云计算的缺失环节: GPU并行计算(转)

    [IT时代周刊编者按]云计算特有的优点和巨大的商业前景,让其成为了近年来的IT界最热门词汇之一.当然,这也与中国移动互联网的繁荣紧密相关,它们需要有相应的云计算服务作为支撑.但本文作者祁海江结合自身的 ...

随机推荐

  1. Redis6 的安装

    安装网址 ‍ Redis 官方网站 Redis 中文官方网站 http://redis.io http://redis.cn/ ‍ 安装版本 ‍ 6.2.1 for Linux(redis-6.2.1 ...

  2. https 原理分析进阶-模拟https通信过程

    大家好,我是蓝胖子,之前出过一篇https的原理分析 ,完整的介绍了https概念以及通信过程,今天我们就来比较完整的模拟实现https通信的过程,通过这篇文章,你能了解到https核心的概念以及原理 ...

  3. 本地python调试 问题笔记

    ImportError: cannot import name 'int_classes' from 'torch._six' 把  "from torch._six import stri ...

  4. PHP生成随机中文姓名

    <?phpfunction &xingming(){ for ($i = 0; $i < 1; $i++) { $xing = "赵,钱,孙,李,周,吴,郑,王,冯,陈, ...

  5. 什么是 CSR、SSR、SSG、ISR - 渲染模式详解

    本文以 React.Vue 为例,介绍下主流的渲染模式以及在主流框架中如何实现上述的渲染模式. 前置知识介绍 看渲染模式之前我们先看下几个主流框架所提供的相关能力,了解的可跳到下个章节. 挂载组件到 ...

  6. 数据结构课后题答案 - XDU_953

    参考书: 数据结构与算法分析(第二版) 作者:荣政 编 出版社:西安电子科技大学出版社 出版日期:2021年01月01日 答案解析:

  7. LeetCode 周赛 352(2023/07/02)一场关于子数组的专题周赛

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问. 往期回顾:LeetCode 单周赛第 350 场 · 滑动窗口与离 ...

  8. GGTalk 开源即时通讯系统源码剖析之:服务端全局缓存

    继上篇<GGTalk 开源即时通讯系统源码剖析之:数据库设计>介绍了 GGTalk 数据库中所有表的结构后,接下来我们将进入GGTalk服务端的核心部分. GGTalk 对需要频繁查询数据 ...

  9. 手把手教你自定义自己SpringBoot Starter组件源码剖析

    我们知道SpringBoot Starter也就是启动器.是SpringBoot组件化的一大优点.基于这个思想,基于这个思想SpringBoot 才变得非常强大,官方给我们提供很多开箱即用的启动器. ...

  10. 详解nvim内建LSP体系与基于nvim-cmp的代码补全体系

    2023年,nvim以及其生态已经发展的愈来愈完善了.nvim内置的LSP(以及具体的语言服务)加上众多插件,可以搭建出支持各种类型语法检查.代码补全.代码格式化等功能的IDE.网络上关于如何配置的文 ...