GPU 学习笔记二:GPU单机多卡组网和拓扑结构分析(基于A100的单机多卡拓扑结构分析)

文章目录

  • 一、物理拓扑结构A100讲解
    • 1.1 单机多卡拓扑结构
  • 二、术语和基础技术介绍
    • 2.1 带宽单位
    • 2.2 PCIe及PCIe Switch
    • 2.3 NVLink
    • 2.4 网卡
    • 2.5 带宽瓶颈分析
    • 2.6 HBM
    • 2.7 CPU/GPU
  • 三、其他典型物理拓扑
    • 3.1 H100/H800拓扑分析

防止遗忘和后续翻找的麻烦,记录下平时学到和用到的GPU知识,较为琐碎,不考虑连贯性和严谨性,如有欠妥的地方,欢迎指正。

本章将围绕着单机多卡物理拓扑结构图,详细介绍每个组件的技术特点和相关术语。


GPU 学习笔记一:从A100与910B分析中,学习GPU参数的意义。
GPU 学习笔记二:GPU单机多卡组网和拓扑结构分析(基于A100的单机多卡拓扑结构分析)
GPU 学习笔记三:GPU多机多卡组网和拓扑结构分析(基于数据中心分析)
GPU 学习笔记四:GPU多卡通信(基于nccl和hccl)
GPU 学习笔记五:大模型分布式训练实例(基于PyTorch和Deepspeed)
GPU 学习笔记六:NVIDIA GPU架构分析(基于技术演进时间线,持续更新)
GPU 学习笔记七:华为 NPU架构分析(基于技术演进时间线,持续更新)
GPU 学习笔记八:GPU参数对比统计表(记录GPU参数,持续更新)



一、物理拓扑结构A100讲解

1.1 单机多卡拓扑结构

随着大模型技术的发展,单卡性能已经无法满足大模型的算力需求,集群和分布式的技术得到了广泛的应用,对模型或者数据进行并行处理。下面以典型的8卡full-mesh拓扑为例,介绍各个技术特点。
拓扑结构图:
在这里插入图片描述
如图所示,8个GPU通过6个NVSwitch芯片full-mesh连接,这个full-mesh也叫NVSwitch fabric。full-mesh中的每根线的带宽是: lane个数 * 每个lane的带宽。

组网清单:

  • 存储网卡NIC:2张
  • CPU:2个,以及内存设施。
  • PCIeSwitch:4个,PCIe交换芯片。
  • A100:8张GPU卡,采用Ampere架构。
  • NVSwitch:6个,与NVLink Switch外置的单独交换机设备不同,NVSwitch是集成在基板上的交换芯片,与GPU Model模组一体的。
  • 专用网卡NIC:8张,支持RDMA协议,GPU专用的计算网卡。
  • PCIe连接线、NVLink连接线:若干

更细节的物理拓扑结构如下:
在这里插入图片描述

下面章节,会依次介绍这些组件和技术,请参照该拓扑图进行理解。


二、术语和基础技术介绍

2.1 带宽单位

大规模 GPU 训练的性能与数据传输速度有直接关系。这里面涉及到很多链路,比如 PCIe 带宽、内存带宽、NVLink 带宽、HBM带宽、网络带宽等。

  • 网络习惯用 bits/second (b/s) 表示之外,并且一般说的都是单向(TX/RX);
  • 其他模块带宽基本用 byte/sedond (B/s) 或 transactions/second (T/s) 表示,并且一般都是双向总带宽。
    比较带宽时注意区分和转换。换算单位:1Byte=8bit。

2.2 PCIe及PCIe Switch

PCI-e接口的全名是Peripheral Component Interconnect Express,是一种高速串行计算机拓展总线标准。PCI-e总线链路支持任何两个端点之间的全双工通信,同时跨多个端点的并发访问没有固有的限制。
在传统的台式机中,CPU、内存、存储、网卡、电源等外设备都需要支持该标准进行连接通信。
目前PCIe已经有5代产品了,最新的是PCIe Gen5,支持双向带宽:

  • Gen5:128GB/s。
  • Gen4:64GB/2。

PCIeSwitch是集成在主板上的PCIe交换芯片,类似于交换机的功能。

PCIe连接线,如下图所示。
在这里插入图片描述
对于开发来说,了解这些即可。想深入研究PCIe协议和通信原理的另行搜索,本系列不做探讨。

2.3 NVLink

1) 背景

在大模型推理、HPC等高性能要求场景中,原PCIe通信方式已经成为GPU间通信的瓶颈,严重影响了GPU集群的通信性能,为了解决这一瓶颈,NVIDIA研发了NVLink技术,用来替代PCIe接口,在同一主机内的多个GPU间进行高速通信互联。

2) 定义

NVLink是由Nvidia开发一种基于有线的串行多通道近距离通信链路。一个设备(如GPU)可以由多个NVLink和设备使用网状网络进行通信,而不是使用中央网络枢纽。

3) 特点

  • 是一种短距离通信链路,更高性能,替代 PCIe,通常用在GPU连接上。
  • 支持多lane,link带宽随 lane 数量线性增长。
  • 同一node内的GPU通过NVLink互联,组成full-mesh拓扑结构(类似spine-leaf)。

4) NVLink迭代演进:

迭代:1/2/3/4。

NVLink已经发展到了第4代。
主要差别就在于:单条 NVLink 链路的 lane 数量以及每个 lane 的带宽。

NVLink

在上图中,展示了NVLink的演进过程。以NVLink3为例,计算其带宽大小:

  • 在A100组成的full-mesh拓扑中,使用了6条NVLink3,每条NVLink3链路中包含2条lane链路,每条lane都是双向通信的链路,其双向带宽为50GB/s/lane。故:

    双向带宽:6NVLink * 2lane/NVLink * 50GB/s/lane=600GB/s
    单向带宽:300/GB/s。双向带宽的一半。
    需要注意的是,这里说的带宽是指一个GPU到所有NVSwitch的总带宽。

  • A800是A100的阉割版,阉割掉了4条lane。故:

    双向带宽:4NVLink * 2lane/NVLink * 50GB/s/lane=400GB/s
    单向带宽:200/GB/s。双向带宽的一半。

5) NVSwitch

NVSwitch 是 NVIDIA 的一款交换芯片,封装在 GPU module 上,并不是主机外的独立交换机。

NVSwitch 听名字像是交换机,但实际上是 GPU module 上的交换芯片,用来连接同一台主机内的 GPU。
2022年,NVIDIA 把这块芯片拿出来真的做成了交换机,叫 NVLink Switch, 用来跨主机连接 GPU 设备。
这俩名字很容易混淆。

在这里插入图片描述
在这张图中,左侧的8个有NVIDIA logo的盒子就是A100及其散热系统,右边6块超厚散热片就是NVSwitch芯片。

2.4 网卡

无论是计算网络,还是存储网络,都需要支持RDMA协议,才能实现AI所需的高性能。RDMA有三种实现,如InifiBand、RoCEv2、iWrap。常用的是前两种:

  • RoCEv2:公有云卖的 8 卡 GPU 主机基本都是这种网络,比如 CX68*100Gbps 配置;在性能达标的前提下,相对便宜;
  • InfiniBand (IB):同等网卡带宽下,性能比RoCEv2好20%以上,但是价格贵一倍。

官方推荐用 BF3 DPU。但其实只要带宽达标,用什么都行。组网经济点的话用 RoCE,追求最好的性能用 IB。

1)存储网络
通过PCIe直连CPU的2张网卡(存储网卡),连接到另一张网络里,主要作用是读写数据,以及 SSH 管理等等。

用途:

  • 从分布式存储读写数据,例如读训练数据、写 checkpoint 等;
  • 正常的 node 管理,ssh,监控采集等等。

查看节点内GPU拓扑结构:
以8*100组成的full-mesh拓扑结构为例,执行命令如下:

nvidia-smi topo --matrix

在这里插入图片描述

GPU区域:

  • NV8:表示8条 NVLink 连接,GPU之间的连接都是NV8。
  • X:表示自己与自己连接。

NIC区域:

  • 在同一片 CPU 上:NODE,表示不需要跨 NUMA,但需要跨 PCIe 交换芯片。
  • 不在同一片 CPU 上:SYS,表示需要跨 NUMA。
  • 网卡两两做了bond,NIC 0~3 都是 bond。

GPU和NIC关联区域:

  • 在同一片 CPU 上,且在同一个 PCIe Switch 芯片下面:PXB,表示只需要跨 PCIe 交换芯片;
  • 在同一片 CPU 上,且不在同一个 PCIe Switch 芯片下面:NODE,表示需要跨 PCIe 交换芯片和 PCIe Host Bridge;
  • 不在同一片 CPU 上:SYS,表示需要跨 NUMA、PCIe 交换芯片,距离最远;

2)计算网络
GPU网卡直连到置顶交换机(leaf),leaf 通过 full-mesh 连接到 spine,形成跨主机 GPU 计算网络。

多机间通信使用该网卡。

  • 这个网络的目的是GPU与其他node 的GPU交换数据;
  • 每个GPU和自己的网卡之间通过PCIe交换芯片连接:GPU <–> PCIe Switch<–> NIC。

GPU node互联架构:
在这里插入图片描述
后面将单独写一篇文章研究节点间通信,此处不在详细描述。

2.5 带宽瓶颈分析

单机 8 卡 A100 GPU带宽瓶颈分析图:
在这里插入图片描述
关键链路带宽都标在图上了

  • 同主机GPU之间:走NVLink,双向600GB/s,单向300GB/s。
  • 同主机GPU和自己的网卡之间:走 PICe Gen4 Switch 芯片,双向 64GB/s,单向 32GB/s。
  • 跨主机GPU之间:需要通过网卡收发数据,这个就要看网卡带宽了。
    不同带宽网卡(单向):
    • 100Gbps=12.5GB/s:国内 A100/A800配套的主流带宽。 所以跨机通信相比主机内通信性能要下降很多。
    • 200Gbps==25GB/s:已经接近 PCIe Gen4的单向带宽。
    • 400Gbps==50GB/s:已经超过 PCIe Gen4的单向带宽,需要 PCIe Gen5性能才能发挥出来。所以在PCIe Gen4这种组网中用 400Gbps 网卡作用不大。

2.6 HBM

传统上,GPU 显存和普通内存(DDR)一样插在主板上,通过 PCIe 连接到处理器(CPU、GPU), 因此速度瓶颈在 PCIe,Gen4 是 64GB/s,Gen5 是 128GB/s。

因此,一些 GPU 厂商(不是只有 NVIDIA 一家这么做)将将多个 DDR 芯片堆叠之后与 GPU 芯片封装到一起 (后文讲到 H100 时有图),这样每片 GPU 和它自己的显存交互时,就不用再去 PCIe 交换芯片绕一圈,速度最高可以提升一个量级。 这种“高带宽内存”(High Bandwidth Memory)缩写就是 HBM。

现在 CPU 也有用 HBM 的了,比如 Intel Xeon CPU Max Series 就自带了 64GB HBM2e。

HBM演进:
迭代:HBM 1/2/2e/3/3e。
在这里插入图片描述
AMD MI300X 采用 192GB HBM3 方案,带宽 5.2TB/s;
HBM3e 是 HBM3 的增强版,速度从 6.4GT/s 到 8GT/s。
在这里插入图片描述

2.7 CPU/GPU

后面会单独写一篇文章,详细介绍NVIDIA GPU技术,如架构演变过程,详细技术细节等。


三、其他典型物理拓扑

3.1 H100/H800拓扑分析

GPU Board Form Factor 分为两种类型:

  • PCIe Gen5
  • SXM5:性能更高一些

1)H100芯片 Layout
在这里插入图片描述

  • 4nm 工艺。
  • 最下面一排是18根Gen4 NVLink;双向总带宽18lanes * 50GB/s/lane = 900GB/s。
  • 中间蓝色的是 L2 cache;
  • 左右两侧是 HBM 芯片,即显存;

2)硬件拓扑
在这里插入图片描述
跟 A100 8 卡机结构大致类似,区别:

  1. NVSwitch 芯片从 6 个减少到了 4 个。
  2. 与CPU的互联PCIe Gen4 x16升级到PCIe Gen5 x16,双向带宽128GB/s。
  3. 与 A100 也类似,只是标配改成了 400Gbps 的 CX7 网卡, 否则网络带宽与 PCIe Switch 和 NVLink/NVSwitch 之间的差距更大了。

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

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

相关文章

Webserver(2.6)有名管道

目录 有名管道有名管道使用有名管道的注意事项读写特性有名管道实现简单版聊天功能拓展&#xff1a;如何解决聊天过程的阻塞 有名管道 可以用在没有关系的进程之间&#xff0c;进行通信 有名管道使用 通过命令创建有名管道 mkfifo 名字 通过函数创建有名管道 int mkfifo …

超分子水凝胶与细胞的互动:现状、难题与未来蓝图

大家好&#xff01;今天来了解超分子水凝胶文章——《Using Chemistry To Recreate the Complexity of the Extracellular Matrix: Guidelines for Supramolecular Hydrogel–Cell Interactions》发表于《Journal of the American Chemical Society》。在再生医学的舞台上&…

逗号运算符应用举例

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <iomanip> //使能setbase(),setfill(),setw(),setprecision(),setiosflags()和resetiosflags(); //setbase( char x )是设置输出数字的基数,如输出进制数则用set…

分类算法——决策树 详解

决策树的底层原理 决策树是一种常用的分类和回归算法&#xff0c;其基本原理是通过一系列的简单决策&#xff0c;将数据集划分为多个子集&#xff0c;从而实现分类。决策树的核心思想是通过树形结构表示决策过程&#xff0c;节点代表特征&#xff0c;边代表决策&#xff0c;叶子…

openGauss开源数据库实战十二

文章目录 任务十二 openGauss逻辑结构:表管理任务目标实施步骤一、准备工作二、创建表1.新建表默认保存在public模式中2.在一个数据库的不同模式下创建表3.创建表的时候定义约束4.创建表时使用自增数据类型5.使用现有的表创建新表 三、查看表的信息1.在gsql中查看表的定义2.查看…

一文详解精细化工行业持续增长的策略与路径解析

随着全球经济的快速发展和科技的不断进步&#xff0c;精细化工行业正面临着前所未有的挑战和机遇。在这个过程中&#xff0c;数字化转型已成为推动行业持续增长的关键因素。精细化工行业&#xff0c;作为化学工业的一个重要分支&#xff0c;其产品广泛应用于医药、农药、涂料、…

医疗器械设备语音ic芯片方案-选型大全

在医疗设备领域&#xff0c;深圳唯创知音提供了多款适用的语音IC产品&#xff0c;以下是其中几款较为常见的推荐&#xff1a; 一、WT588F02X-8S 特点&#xff1a; 1&#xff1a;低成本人机交互语音方案&#xff0c;仅需嵌入在产品中&#xff0c;提升医疗设备智能化水平。 2&…

微服务实战系列之玩转Docker(十七)

导览 前言Q&#xff1a;如何实现etcd数据的可视化管理一、创建etcd集群1. 节点定义2. 集群成员2.1 docker ps2.2 docker exec2.3 etcdctl member list 二、发布数据1. 添加数据2. 数据共享 三、可视化管理1. ETCD Keeper入门1.1 简介1.2 安装1.2.1 定义compose.yml1.2.2 启动ke…

Spring Cloud +UniApp智慧工地源码,智慧工地综合解决方案,建筑工程云平台源码

Spring Cloud UniApp智慧工地源码&#xff0c;智慧工地全套源代码包含&#xff1a;PC端大屏端移动端 智慧工地解决方案以工程建设现场管理需求为主线&#xff0c;以AI、物联网、BIM技术为手段&#xff0c;对施工现场进行立体化、全方位、全时段管理&#xff0c;实现规范施工管…

Python 从入门到实战43(Pandas数据结构)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pa…

数字信号处理Python示例(1)使用Python生成正弦信号

文章目录 前言一、连续时间周期信号二、正弦波三、使用Python生成正弦信号的步骤内置库说明 四、完整的python代码与运行结果1.完整的python代码2、运行结果 五、总结 前言 介绍如何使用python生成正弦信号&#xff0c;给出详细步骤和完整的python代码和运行结果。 一、连续时…

树叶分类竞赛(Baseline)以及kaggle的GPU使用

树叶分类竞赛(Baseline)-kaggle的GPU使用 文章目录 树叶分类竞赛(Baseline)-kaggle的GPU使用竞赛的步骤代码实现创建自定义dataset定义data_loader模型定义超参数训练模型预测和保存结果 kaggle使用 竞赛的步骤 本文来自于Neko Kiku提供的Baseline&#xff0c;感谢大佬提供代码…

四足机器人实战篇之二十二:四足机器人支撑腿反作用力规划之反馈控制及线性约束条件优化方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、先使用反馈+前馈的控制方式,根据躯干期望的位置速度,计算出当前身体姿态的虚拟反作用力(实现躯体平衡控制器)二、再建立线性约束的凸优化问…

企业物流管理数据仓库建设的全面指南

文章目录 一、物流管理目标二、总体要求三、数据分层和数据构成&#xff08;1&#xff09;数据分层&#xff08;2&#xff09;数据构成 四、数据存储五、数据建模和数据模型&#xff08;1&#xff09;数据建模&#xff08;2&#xff09;数据模型 六、总结 在企业物流管理中&…

设计模式基础概念(行为模式):责任链模式(Chain Of Responsibility)

概述 责任链模式是一种行为设计模式&#xff0c; 允许你将请求沿着处理者链进行发送。 收到请求后&#xff0c; 每个处理者均可对请求进行处理&#xff0c; 或将其传递给链上的下个处理者。 该模式建议你将这些处理者连成一条链。 链上的每个处理者都有一个成员变量来保存对于…

centos7 安装python3.9.4,解决import ssl异常

本篇文章介绍如何在centos7中安装python3.9.4(下文简称python3)&#xff0c;解决python3安装后import ssl模块失败问题&#xff0c;为什么我要在centos7中安装python呢&#xff0c;因为我需要在服务器中跑python数据处理脚本。 安装python3同时解决import ssl模块失败问题总共包…

【分布式技术】分布式序列算法Snowflake深入解读

文章目录 概述Snowflake算法的构成&#xff1a;Snowflake算法的特点&#xff1a;Snowflake算法存在的问题&#xff1a; &#x1f50d; 雪片算法在分布式系统中是如何保证ID的唯一性和有序性的&#xff1f;唯一性&#xff08;Uniqueness&#xff09;有序性&#xff08;Orderline…

纯CSS实现UI设计中常见的丝带效果(5)

原文传送门&#xff1a;纯CSS实现UI设计中常见的丝带效果 网页中的丝带效果在设计中扮演着多重角色&#xff0c;其作用可以归纳为以下几个方面&#xff1a; 视觉吸引与装饰 增强视觉吸引力&#xff1a;丝带效果以其独特的形态和色彩&#xff0c;能够迅速吸引用户的注意力&…

TP41Y阀套式排污阀

在现代工业领域中&#xff0c;阀门作为一种关键的控制元件&#xff0c;广泛应用于各种流体系统中。其中&#xff0c;TP41Y阀套式排污阀以其独特的设计和优异的性能&#xff0c;在石油、天然气、化工等行业中占据了重要的地位。本文将对TP41Y阀套式排污阀进行详细的专业解析&…

Python | Leetcode Python题解之第522题最长特殊序列II

题目&#xff1a; 题解&#xff1a; class Solution:def findLUSlength(self, strs: List[str]) -> int:def is_subseq(s: str, t: str) -> bool:pt_s pt_t 0while pt_s < len(s) and pt_t < len(t):if s[pt_s] t[pt_t]:pt_s 1pt_t 1return pt_s len(s)ans …