前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nvidia技术壁垒之一--NVLink&NVSwitch

Nvidia技术壁垒之一--NVLink&NVSwitch

原创
作者头像
aaronwjzhao
修改于 2024-09-06 05:47:27
修改于 2024-09-06 05:47:27
3.1K1
举报
文章被收录于专栏:AI工程落地AI工程落地

NVLink

NVLink数据包

单个 NVLink 数据包的范围从 1 到 18 个 flit。每个 flit 为 128 位,允许使用单个 header flit 和 16 个 payload flit 传输 256 字节,峰值效率为 94.12%,使用单个 header flit 和 4 个数据 payload flit 传输 64 字节,单向效率为 80%。在双向流量中,效率分别略微降低至 88.9% 和 66.7%。

数据包至少包含一个标头,以及可选的地址扩展 (AE) 数据块、字节启用 (BE) 数据块和最多 16 个数据有效负载数据块。典型的事务至少包含请求和响应,而发布的操作不需要响应。

数据包构成
数据包构成

链接

NVLink 通道称为 Brick(或NVLink Brick)。单个 NVLink 是双向接口,每个方向包含 8 个差分对,总共 32 条线。这些线是直流耦合的,使用带有嵌入式时钟的 85Ω 差分终端。为了简化路由,NVLink 支持通道反转和通道极性,这意味着两个设备之间的物理通道顺序及其极性可以反转。

NVLink原理图
NVLink原理图

数据传输方式

NVLINK 支持两种数据传输模式:DMA 和 P2P。

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

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

使用记录

查看NVLink状态:NVIDIA-SMI系列命令详解(16)-NVLINK本文为NVIDIA-SMI系列命令详解第十六篇-NVLINK,介绍 - 掘金 (juejin.cn)

安装NVLink:直接插到对应的卡上即可,一般情况下不需要手动安装驱动

拔除NVLink:一般也可以直接拔除

踩坑记录

如果一台机器有多张卡,只有装了NVLink的两卡之间可以通信,没有装的卡只能用单卡(比较坑,也就是说只要机器上有NVLink,通信就都会改成NVLink的方式,导致正常的卡间不能通信了)。针对该问题,在nccl上提了Issues:Not all gpus have nvlinks, the communication data is all incorrect · Issue #1423 · NVIDIA/nccl (github.com)

解决方案一:拔除nvlink,只使用PCIE传输。如果是AMD的CPU,拔出后还需要进BIOS强制关闭IOMMU,禁止程序直接访问物理内存,必须经过CPU。具体可以参考Silent data corruption when moving data between GPUs · Issue #84803 · pytorch/pytorch (github.com)。我再修改上述操作之后,多卡推理可以跑了,但是多卡训练会报CUDA error: unspecified launch failure,后来发现是transformers、torch等安装包的版本较低导致的。使用pip命令更新安装包,pip install --force-reinstall transformers==4.44.2 trl==0.10.1 torchvision==0.19.1。

解决方案二:所有卡都连上nvlink(但有的卡只有一个NVLink插槽,比如A6000,也就是最多能做到两张卡配对使用)

解决方案三:八张卡既有PCIE,又有NVLink,目前来看是有bug的。持续关注Issues:Not all gpus have nvlinks, the communication data is all incorrect · Issue #1423 · NVIDIA/nccl (github.com)

缺点

NVLink虽然是双向接口,两张卡之间只需要一条连接,但也很容易发现,只有插了线的两卡才可以享受其高速通信,而且像A6000等显卡上只有一个NVLink插槽,所以无法将多张卡连接到一起。Nvidia新的产品的NVSwitch就是用来解决这个问题的,具体可以参考Nvidia的官网介绍:NVIDIA NVLink and NVIDIA NVSwitch Supercharge Large Language Model Inference | NVIDIA Technical Blog

NVSwitch

NVSwitch是显卡互联交换机,使用的时候需要配合NVLink,把NVLink一端连到显卡上,另一端连到NVSwitch上。可以让每两张卡间都可以无阻塞全速互联,最新一代的NVSwitch还可以把不同机器间的显卡互联起来,且最高可以连接576张显卡(简直是恐怖,且互联传输速度比InfiniBand还要快)。

NVSwitch发展历程
NVSwitch发展历程

八卡互联方案

如果使用NVLink,每张卡都要和其他卡之间有NVLink相连,传输速度取决于单条NVLink速度上限。

使用NVSwitch按如下图方式互联,任意两卡间都可以享受最高速900GB/s,并且0、1两张卡正在通信,其他卡间也可以全速通信,互不影响。

多卡互联方案
多卡互联方案
NVLink vs NVSwitch传输速度
NVLink vs NVSwitch传输速度

集群互联

最新的NVSwitch可以把576张卡连到一起,这些卡分布在几十台机器上,一般来说机器间是通过网络传输的,最高速的网络协议是InfiniBand。但NVSwitch直接跳过这些,直接把多机器间的卡连起来。以下是使用InfiniBand和NVSwitch互联的性能对比:

NVSwitch相比InfiniBand速度
NVSwitch相比InfiniBand速度

可以看到NVSwitch竟然比InfiniBand还要快4.5倍,InfiniBand只有超算中心才能用的起。Nvidia简直是变态。。。。

参考链接:

AI Infra 基础知识 - NVLink 入门 (qq.com)

深入了解 GPU 互联技术——NVLINK (qq.com)

NV Switch 深度解析与性能剖析 (qq.com)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
干货满满
干货满满
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
NCCL(Nvidia Collective multi-GPU Communication Library) Nvidia英伟达的Multi-GPU多卡通信框架NCCL 学习;PCIe 速率调研;
https://ark.intel.com/content/www/cn/zh/ark/products/133293/intel-z390-chipset.html
西湖醋鱼
2020/12/30
2.4K0
NCCL(Nvidia Collective multi-GPU Communication Library) Nvidia英伟达的Multi-GPU多卡通信框架NCCL 学习;PCIe 速率调研;
【AI系统】分布式通信与 NVLink
在进入大模型时代后,大模型的发展已成为 AI 的核心,但训练大模型实际上是一项比较复杂的工作,因为它需要大量的 GPU 资源和较长的训练时间。
用户11307734
2024/11/27
1970
【AI系统】NVLink 原理剖析
随着 AI 技术的飞速发展,大模型的参数量已经从亿级跃升至万亿级,这一变化不仅标志着 AI 的显著提升,也对支持这些庞大模型训练的底层硬件和网络架构提出了前所未有的挑战。为了有效地训练这些复杂的模型,需要依赖于大规模的 GPU 服务器集群,它们通过高速网络相互连接,以便进行快速、高效的数据交换。但是,即便是最先进的 GPU 也可能因为网络瓶颈而无法充分发挥其计算潜力,导致整个算力集群的性能大打折扣。这一现象凸显了在构建大规模 GPU 集群时,仅仅增加 GPU 数量并不能线性增加集群的总体算力。相反,随着集群规模的扩大,网络通信的额外开销也会成倍增加,严重影响计算效率。
用户11307734
2024/11/27
4270
NVLink1.0~5.0: 高速互联的架构演进之路
NVLink 的工作原理类似高速公路网络:每个 GPU 或 CPU 是“城市”,链接是“车道”,NVSwitch 则像“交通枢纽”,确保数据流畅无阻。这种设计特别适合需要大规模并行计算的场景,如 AI 模型训练和科学模拟。
通信行业搬砖工
2025/04/30
2890
NVLink1.0~5.0: 高速互联的架构演进之路
开发 | 如何理解Nvidia英伟达的Multi-GPU多卡通信框架NCCL?
问题详情: 深度学习中常常需要多GPU并行训 练,而Nvidia的NCCL库NVIDIA/nccl(https://github.com/NVIDIA/nccl)在各大深度学习框架(Caffe/Tensorflow/Torch/Theano)的多卡并行中经常被使用,请问如何理解NCCL的原理以及特点? 回答: NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all-
AI科技评论
2018/03/14
3.4K0
开发 | 如何理解Nvidia英伟达的Multi-GPU多卡通信框架NCCL?
【AI系统】NV Switch 深度解析
在当今的高性能计算领域,英伟达的 GPU 技术无疑是一颗璀璨的明星。随着 AI 和机器学习技术的飞速发展,对于计算能力的需求日益增长,GPU 之间的互联互通变得尤为重要。在这样的背景下,英伟达推出了 NVLink 协议,以及基于此技术的多 GPU 互联解决方案——NV Switch。
用户11307734
2024/11/27
5410
NVLink的演进
NVLink是Nvidia开发的一项用于GPU之间点对点高速互联的技术,其旨在突破PCIe互联带宽的限制,实现GPU芯片间低延迟、高带宽的数据互联,使得GPU间更加高效地协同工作。在NVLink技术问世之前(2014年前),GPU之间的互联需要通过PCIe switch来实现,如下图所示。GPU发出的信号需要先传递到PCIe switch, PCIe switch中涉及到数据的处理,CPU会对数据进行分发调度,这些都会引入额外的网络延迟,限制了系统性能。彼时,PCIe协议已经发展到Gen 3, 单通道的速率为8Gb/s, 16通道的总带宽为16GB/s (128Gbps,1 Byte= 8 bits ),随着GPU芯片性能的不断提升,其互联带宽成为瓶颈。
光学小豆芽
2023/09/25
3.7K0
NVLink的演进
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
近期,AIGC领域呈现出一片繁荣景象,其背后离不开强大算力的支持。以ChatGPT为例,其高效的运行依赖于一台由微软投资建造的超级计算机。这台超级计算机配备了数万个NVIDIA A100 GPU,并利用60多个数据中心的数十万个GPU辅助,为ChatGPT提供了强大的算力支持。这种规模的算力部署不仅体现了AIGC技术的先进性,也预示着人工智能技术未来的发展趋势。这种集成了高性能计算、大数据处理和人工智能算法的超级计算机,将成为推动科技进步的重要引擎。
汀丶人工智能
2024/01/29
8.1K0
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
如何在DeepSeek部署中实现集群通信性能的极致优化
近期,DeepSeek 已成为各行业关注的焦点。其卓越的语言理解和生成能力使其能够精准处理各种复杂的自然语言任务,无论是文本生成、语义理解还是智能对话,都能轻松应对。随着 DeepSeek 的迅速走红,众多厂商纷纷加入这一技术浪潮,积极接入这一强大的语言模型。从互联网科技巨头到传统制造业企业,从金融行业到教育领域,DeepSeek 的应用范围不断扩大,成为推动企业数字化转型和智能化升级的重要力量。
星融元Asterfusion
2025/03/05
3130
如何在DeepSeek部署中实现集群通信性能的极致优化
GPU技术_支持nvlink的显卡
上一篇文章《浅析GPU通信技术(上)-GPUDirect P2P》中我们提到通过GPUDirect P2P技术可以大大提升GPU服务器单机的GPU通信性能,但是受限于PCI Expresss总线协议以及拓扑结构的一些限制,无法做到更高的带宽,为了解决这个问题,NVIDIA提出了NVLink总线协议。
全栈程序员站长
2022/11/17
3.3K0
GPU技术_支持nvlink的显卡
RDMA - GDR GPU Direct RDMA快速入门1
NVIDIA GPUDirect 是一系列技术, 用于增强 GPU间(P2P)或GPU与第三方设备(RDMA)间的数据移动和访问, 无论您是在探索海量数据、研究科学问题、训练神经网络还是为金融市场建模,您都需要一个具有最高数据吞吐量的计算平台。GPU 的数据处理速度比 CPU 快得多,随着 GPU 计算能力的提高,对 IO 带宽的需求也随之增加。NVIDIA GPUDirect®是Magnum IO的一部分,可增强 NVIDIA 数据中心 GPU 的数据移动和访问。使用 GPUDirect,网络适配器和存储驱动器可以直接读取和写入 GPU 内存,从而消除不必要的内存复制、减少 CPU 开销和延迟,从而显着提高性能。这些技术(包括 GPUDirect Storage(GDS)、GPUDirect RDMA(GDR)、GPUDirect 点对点 (P2P) 和 GPUDirect Video)通过一套全面的 API 呈现
晓兵
2025/03/30
7560
RDMA - GDR GPU Direct RDMA快速入门1
揭秘 NVIDIA Dynamo:分布式AI推理的高效引擎
随着生成式AI模型规模的爆炸式增长,企业面临推理成本激增、分布式部署复杂度高、资源利用率低等挑战。传统推理框架在跨多节点扩展时,常因KV缓存重复计算、GPU负载不均、通信延迟等问题导致性能瓶颈。NVIDIA Dynamo作为新一代开源推理框架,专为大规模分布式环境设计,通过解耦式服务、智能路由、动态资源调度等创新技术,将推理吞吐量提升30倍以上。本文将深入解析其核心架构、技术优势及实际应用场景,帮助开发者高效部署生成式AI模型,降低推理成本并释放GPU潜能。
数据存储前沿技术
2025/03/29
8970
揭秘 NVIDIA Dynamo:分布式AI推理的高效引擎
AI集群通信中的软硬件介绍
计算机网络通信中最重要两个衡量指标主要是 带宽 和 延迟。分布式训练中需要传输大量的网络模型参数,网络通信至关重要。
JadePeng
2023/02/16
1.9K0
AI集群通信中的软硬件介绍
Milvus 查询任务调度原理
本文主要阐述在单机多卡的场景下,Milvus 是如何调度查询任务的。此外,我们还将讨论在调度实现过程中遇到的问题,解决方案和未来的发展方向。
Zilliz RDS
2020/03/31
8620
英伟达NVLINK技术简介
随着人工智能和图形处理需求的不断增长,多 GPU 并行计算已成为一种趋势。对于多 GPU 系统而言,一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作。然而,传统的 PCIe 总线由于带宽限制和延迟问题,已无法满足 GPU 之间通信的需求。为了解决这个问题,NVIDIA 于 2018 年推出了 NVLINK,以提高 GPU 之间的通信效率。
通信行业搬砖工
2023/11/14
2.1K0
英伟达NVLINK技术简介
PCIe Gen5 互联拓扑设计与经验
机箱中没有额外的高性能CPU,数据控制流从计算节点(Copmute)通过PCIe交换机调取数据到GPU节点处理。
数据存储前沿技术
2025/02/11
3050
PCIe Gen5  互联拓扑设计与经验
揭秘A100、A800、H800、V100在高性能计算与大模型训练中的地位
AGI | NLP | A100 | H100 | Nvidia | Aurora
液冷服务器
2023/06/29
3.9K0
揭秘A100、A800、H800、V100在高性能计算与大模型训练中的地位
Nvidia-NCCL-GPU集合通信接口简介_源码笔记
nccl: NVIDIA Collective Communications Library (NCCL) 集合通信接口
晓兵
2023/11/24
2.2K0
Nvidia-NCCL-GPU集合通信接口简介_源码笔记
UALink加速互联计算竞争
UALink是一种专为AI加速器(如GPU)之间高效通信而设计的互连技术。以下是关键要点:
数据存储前沿技术
2025/02/11
2400
UALink加速互联计算竞争
伯克利与微软联合发布:任意网络结构下的最优GPU通信库Blink
随着机器学习模型,和数据量的不断增长,模型训练逐渐由单机训练,转变为分布式的多机训练。在分布式深度学习中,数据并行是最为常用的模型训练方式。然而数据并行的模型训练过程中,需要频繁的做数据聚合/模型同步。参与运算的 GPU 数量越多,其对应的数据聚合的开销也会越大。当下单个 GPU 的算力不断增加,GPU 间的数据聚合成成了新的分布式机器学习的瓶颈。
机器之心
2019/12/05
5970
推荐阅读
相关推荐
NCCL(Nvidia Collective multi-GPU Communication Library) Nvidia英伟达的Multi-GPU多卡通信框架NCCL 学习;PCIe 速率调研;
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档