深入了解 GPU 互联技术——NVLINK

随着人工智能和图形处理需求的不断增长,多 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 已经有了一定的了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/128884.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:增量备份和恢复(5)

介绍 增量备份的特点 MySQL数据库二进制日志对备份的意义 增量备份的优点是没有重复数据,备份量不大,时间短。缺点也很明显,需要上次完全备份及完全备份之后所有的增量备份才能恢复,反推恢复,操作较为繁琐。 Mysql没有…

STC89C51基础及项目第13天:小车go、软件调速

1. 小车散件组装_推荐相同接线(259.104) 2. L9110s电机控制器接线(260.105) L9110s电机模块开发 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,但是不对,根据下节课实际调试 …

Nginx的安全控制

安全控制 关于web服务器的安全是比较大的一个话题,里面所涉及的内容很多,Nginx反向代理是安全隔离来提升web服务器的安全,通过代理分开了客户端到应用程序服务器端的连接,实现了安全措施。在反向代理之前设置防火墙,…

Android原生实现控件outline方案(API28及以上)

Android控件的Outline效果的实现方式有很多种,这里介绍一下另一种使用Canvas.drawPath()方法来绘制控件轮廓Path路径的实现方案(API28及以上)。 实现效果: 属性 添加Outline相关属性,主要包括颜色和Stroke宽度&…

RunnerGo亮相QECon大会上海站,来看看这款全栈测试平台

QECon(Quality Efficiency Conference)质量效能大会在上海正式开幕!本次大会以"数生智慧:高质量发展新引擎"为主题,深入探讨如何借助数字化和智能化技术推动软件质量的发展,为高质量经济发展提供…

ctfshow web入门 php特性 web126-web130

1.web126 和前面一样的 payload: get: a1fl0gflag_give_me post: CTF_SHOW&CTF[SHOW.COM&funparse_str($a[1]) 或 get: ?$fl0gflag_give_me post:CTF_SHOW&CTF[SHOW.COM&funassert($a[0]) assert($a[0]) 是把fl0g赋值为flag_give_me $a[0]是当前…

运营商大数据,三网融合大数据,联通大数据,移动大数据

有许多公司和企业依靠电话营销和短信营销。对于他们来说,客户资源就是维生素和维生素,客户资源的及时性和准确性是这些公司和企业最关心的问题。长期使用低质量、大量无效的客户资源,是对时间的浪费,是对人力物力财力的浪费&#…

opengauss数据备份(docker中备份)

首先如果想直接在宿主机上进行使用gs_dump备份需要glibc的版本到2.34及以上,查看版本命令为 ldd --version 如图所示,本宿主机并不满足要求,所以转向在docker容器中进行备份, 然后进入opengauss容器中,命令为 docker…

华为数通方向HCIP-DataCom H12-831题库(单选题:221-240)

第221题 以下哪些项能被正则表达式^30.成功匹配? A、200 100 300 B、100 200 300 C、300 200 100 D、300 100 200 答案:CD 解析: 30.其中的“点”表示的是任何的一个数字,表示的是as-path的开头;所以以300开头的都是满足题目需求的。 第222题 以下哪些项的Community属性能…

使用kubectl连接远程Kubernetes(k8s)集群

使用kubectl连接远程Kubernetes集群 环境准备下载kubectl下载地址 安装kubectl并处理配置文件Windows的安装配置安装kubectl拉取配置文件安装kubectl拉取配置文件kubectl命令自动补全 Linux的安装配置安装kubectl拉取配置文件kubectl命令自动补全 环境准备 你需要准备一个Kube…

ElasticSearch 学习7 集成ik分词器

网上找了一大堆,很多都介绍的不详细,开始安装完一直报错找不到plugin-descriptor.properties,有些懵这个东西不应该带在里面吗,参考了一篇博客说新建一个这个,新建完可以启动,但是插入索引数据会报错找不到…

Linux虚拟机搭建RabbitMQ集群

普通集群模式,意思就是在多台机器上启动多个 RabbitMQ 实例,每台机器启动一个。创建的 queue,只会放在一个 RabbitMQ 实例上,但是每个实例都同步 queue 的元数据(元数据可以认为是 queue 的一些配置信息,通…