【一文搞懂】GPU硬件拓扑与传输速度

今天查询华为昇腾算力卡的时候发现了一个非常好的博客,讲述了英伟达GPU与华为NPU的一些基础概念,特分享如下。

本文信息均摘录于 ArthurChiao's Blog,感兴趣的读者欢迎直接点击链接

基本概念

PCIe

PCIePeripheral Component Interconnect Express 的缩写,表示"外部设备互联(PCI)高速扩展总线"。它是一种高速串行计算机扩展总线标准,广泛用于计算机系统中连接各种外部设备,例如显卡、存储设备(SSD)、网络适配器等。

其传输带宽如下表所示:

  • 注:Slot Width 表示通道数量,Full Duplex 表示全双工时的带宽,也即单向带宽,双向的话需要乘以2。

NVLink 是一种 GPU 之间的直接互连,双向互连速度达 1.8 TB/s,可扩展服务器内的多 GPU 输入/输出 (IO)。

NVLink 结构与传输速度

  • 图中x86表示CPU,两个方框表示 GPU,方框之间的双向箭头表示一条 NVLink,每条 NVLink 的带宽是 50GB/s *

NVLink Switch 可连接多个 NVLink,实现在单个机架内和多个机架间以 NVLink 能够达到的最高速度进行多对多 GPU 通信。

在一台主机内,NVLink Switch又可以叫做NVSwitch。

RDMA、RoCEv2、InfiBand

**RDMA(RemoteDirect Memory Access)**技术全称远程直接内存访问,是为了解决网络传输中服务器端数据处理的延迟而产生的。
RoCEv2和InfiniBand均为数据中心及高性能计算环境而设计,旨在提供高速、低延迟的通信解决方案。

RoCEv2与InfiBand的对比如下:

简单来说,RoCEv2依托于现有的以太网,兼容性更好,目前绝大多数数据中心均采用此种方式;InfiBand使用专用硬件,速度更快、价格更高。

两者的具体差别可以参考这篇文章------深度解读RoCE v2网络技术

带宽单位

网络带宽习惯用 bits/second (b/s) 表示之外,并且一般说的都是单向(TX/RX);

其他模块带宽基本用 byte/sedond (B/s)transactions/second (T/s) 表示,并且一般都是双向总带宽

常见拓扑与数据传输瓶颈

数据传输路径

一种常见的单机8卡拓扑如下:

单机 8 卡 A100 GPU 主机带宽瓶颈分析

  • 同主机 GPU 之间走 NVLink双向 600GB/s,单向 300GB/s
  • 同主机 GPU 和自己的网卡之间走 PCIe ,常见的是 PCIe Gen4 Switch 芯片,双向 64GB/s,单向 32GB/s
  • 跨主机 GPU 之间需要通过网卡收发数据 ,这个就看网卡带宽了,目前国内 A100/A800 机型配套的主流带宽是(单向) 100Gbps=12.5GB/s 。 所以跨机通信相比主机内通信性能要下降很多

其他说明:

  • 若采用 200Gbps 的网络带宽,折合 25GB/s ,已经接近 PCIe Gen4 的单向带宽
  • 若采用 400Gbps 的网络带宽,折合 50GB/s ,就超过了 PCIe Gen4 的单向带宽
  • 使用PCIe4时采用 400Gbps 网卡作用不大,400Gbps 需要 PCIe Gen5 性能才能发挥出来
相关推荐
ak啊20 小时前
PyTorch框架-Python GPU编程
pytorch·python·gpu
天朝八阿哥3 天前
Debian安装Nvidia驱动
debian·nvidia
扫地的小何尚3 天前
NVIDIA cuOpt:GPU加速优化AI微服务详解
人工智能·算法·微服务·ai·架构·gpu
量子位6 天前
蚂蚁国产 GPU 训练大模型细节曝光!Ling 模型研发负责人回应:关于我们抠 FLOPS 的一些点滴
人工智能·gpu
HyperAI超神经7 天前
【TVM教程】使用 TVMC Micro 执行微模型
人工智能·python·深度学习·学习·教程·gpu·tvm
扫地的小何尚7 天前
NVIDIA TensorRT 深度学习推理加速引擎详解
c++·人工智能·深度学习·gpu·nvidia·cuda
哦豁灬10 天前
CUDA 学习(1)——GPU 架构
学习·架构·gpu
小白跃升坊11 天前
Ubuntu安装GPU驱动+CUDA+cuDNN的安装方法
ai·大语言模型·it运维·gpu
放羊郎12 天前
英伟达消费级RTX显卡配置表
网络·nvidia·英伟达·游戏显卡·rtx
红尘散仙14 天前
三、WebGPU 基础入门——绘制三角型
rust·typescript·gpu