深入了解 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 的应用场景非常广泛。以下是一些主要的应用领域:
- 高性能计算:在高性能计算领域,多 GPU 和多处理器系统的需求日益增长。NVLINK 通过提供高速互联和高带宽通信,可以显著提高这类系统的计算性能。例如,在气象预测、物理模拟、生物计算等应用中,使用 NVLINK 连接的多 GPU 系统可以处理更大规模的数据集,并更快地得出结果。
- 人工智能和深度学习:随着人工智能和深度学习技术的发展,大规模数据处理和并行计算的需求也在不断增加。NVLINK 可以用于构建高效的人工智能和深度学习训练平台,通过并行计算和高速数据传输来提高训练速度和效率。
- 数据中心:在数据中心环境中,NVLINK 可以用于实现 GPU 和 CPU 之间的高速数据传输,从而提高数据处理和应用性能。例如,使用 NVLINK 连接的 GPU 可以加速数据库查询、视频转码等任务的速度。
- 图形渲染:在图形渲染领域,NVLINK 可以提高 GPU 之间的协作和通信效率。例如,在复杂的 3D 渲染场景中,多个 GPU 可以通过 NVLINK 进行高效的并行计算,以实现更快的渲染速度和更高的图像质量。
- 游戏开发:在游戏开发领域,NVLINK 可以提高 GPU 之间的数据传输速度和渲染效率。这可以使游戏开发者实现更流畅的帧率和更高质量的图像渲染,从而提供更好的游戏体验。
最后我们来简单总结下,NVLINK 是一种高速互联技术,用于在多 GPU 之间提供高效的通信和协作。它通过在 GPU 的 PCIe 插槽上添加额外的物理层来实现高速通信,支持高达 64GB/s 的带宽和低延迟通信。NVLINK 的并行计算支持大幅提高了多 GPU 系统的计算能力和性能,使其在高性能计算、人工智能、深度学习等领域具有广泛的应用前景。看完这些,相信你对 NVLINK 已经有了一定的了解。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
搞流式计算,大厂也没有什么神话
抖音、今日头条,是字节跳动旗下最受用户欢迎的两款产品,也是字节跳动的门面。而在这背后,是众多技术团队在支撑,流式计算就是其中一支。 不过,即使是在字节跳动,搞流式计算也没有神话。只有一群年轻人,花了六年时间,一步一个脚印,从一开始的“不懂技术不懂业务”,最后承载起了字节内部流式计算平台以及应用场景的构建,支撑了机器学习平台、推荐、数仓、搜索、广告、流媒体、安全和风控等众多核心业务。2022 年,该团队完成了对 Flink 计算引擎的云原生化改造,并通过火山引擎正式对外提供云上能力。 这不是一个挽狂澜于既倒的英雄故事,没有什么跌宕起伏的情节,也没有耀眼的鲜花与掌声。而是千千万万个普通开发者中的一小群人,一边在业务中被动接受成长,一边在开源中主动寻求突破的一段记录。 01 代码要写,业务也要拉 2019 年,随着抖音的爆发,字节跳动站在了高速增长的起点,直播、短视频,广告等业务也都乘势而起。这些业务,都需要流式计算来支撑。 字节流式计算团队负责人张光辉,正面临诸多棘手的问题。 先把时间线往前推两年,彼时张光辉刚加入字节跳动,计算引擎用的还是 Apache Storm——诞生于 2011 年...
- 下一篇
使用 Databend Kafka Connect 构建实时数据同步
作者:韩山杰 Databend Cloud 研发工程师 https://github.com/hantmac KafkaConnect 介绍 Kafka Connect 是一个用于在 Apache Kafka® 和其他数据系统之间可扩展且可靠地流式传输数据的工具。通过将数据移入和移出 Kafka 进行标准化,使得快速定义连接器以在 Kafka 中传输大型数据集变得简单,可以更轻松地构建大规模的实时数据管道。 我们使用 Kafka Connector 读取或写入外部系统、管理数据流以及扩展系统,所有这些都无需开发新代码。Kafka Connect 管理与其他系统连接时的所有常见问题( Schema 管理、容错、并行性、延迟、投递语义等),每个 Connector 只关注如何在目标系统和 Kafka 之间复制数据。 Kafka 连接器通常用来构建 data pipeline,一般有两种使用场景: 开始和结束的端点: 例如,将 Kafka 中的数据导出到 Databend 数据库,或者把 Mysql 数据库中的数据导入 Kafka 中。 数据传输的中间媒介: 例如,为了把海量的日志数据存储到...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程