ADOP带您了解高性能GPU服务器基础知识(下篇)

2024-04-23 11:12

本文主要是介绍ADOP带您了解高性能GPU服务器基础知识(下篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

众所周知,在大型模型训练中,通常采用每台服务器配备多个GPU的集群架构。在上一篇文章《    》中,我们对GPU网络中的核心术语与概念进行了详尽介绍。本文将进一步深入探讨常见的GPU系统架构。

📈8台配备NVIDIA A100 GPU的节点/8台配备NVIDIA A800 GPU的节点

Typical 8-card A100 host hardware topology

如上图所示的A100 GPU拓扑结构中,8块A100 GPU所组成的拓扑包含以下组件:

  • 两颗CPU芯片(及其两侧相关的内存,NUMA架构):中央处理器负责执行通用计算任务。

  • 两块存储网络适配卡(用于访问分布式存储,具备带内管理等功能):这些网卡用于访问分布式存储资源。

  • 四颗PCIe Gen4交换芯片:PCIe Gen4是PCIe接口的第四代,提供了更高的数据传输速率。

  • 六颗NVSwitch芯片:NVSwitch使得GPU与GPU之间能够以极高的速度直接通信,这对于大规模深度学习节点和并行计算任务的有效运行至关重要。

  • 八块GPU:A100 GPU作为主要处理单元,负责执行并行计算,尤其适合人工智能和深度学习工作负载。

  • 八块GPU专用网络适配卡:每块GPU配备一块专用的网络适配卡,旨在优化GPU之间的通信,并提升并行处理任务的整体性能。

接下来的部分我们将对这些组件进行详细解读。

下一张图片将提供更详尽的拓扑结构信息供参考。

NVIDIA DGX A100 host (official 8-card machine) hardware topology

🔗存储网络卡

在GPU架构中,存储网络卡的定位主要涉及其通过PCIe总线与中央处理器(CPU)的连接,以及负责促进与分布式存储系统的通信。以下是存储网络卡在GPU架构中的主要作用:

  • 读写分布式存储数据:存储网络卡的主要功能之一是高效地从分布式存储系统读取和写入数据。这对于深度学习模型训练过程至关重要,在此过程中频繁访问分布在各处的训练数据以及将训练结果写入检查点文件极为重要。

  • 节点管理任务:存储网络卡的功能不仅限于数据传输,还包括节点管理任务。这包括但不限于通过SSH(安全外壳协议)进行远程登录、监控系统性能以及收集相关数据等任务。这些任务有助于对GPU集群的运行状态进行监控和维护。

虽然官方推荐使用BF3 DPU,但在实践中,只要满足带宽需求,可以选用其他替代解决方案。例如,为了成本效益考虑,可以考虑使用RoCE;而为了最大限度提升性能,则优先选择InfiniBand。

🔧NVSwitch 网络结构

在完全互联网络拓扑中,每个节点都直接与所有其他节点相连。通常情况下,8块GPU通过六个NVSwitch芯片以全互联配置相连接,这一整体也被称为NVSwitch架构。

在全互联结构中,每条线路的带宽取决于单个NVLink通道的带宽,表示为n * bw-per-nvlink-lane。对于采用NVLink3技术、每条通道带宽为50GB/s的A100 GPU,在全互联结构中,每条线路的总带宽为12 * 50GB/s = 600GB/s。需要注意的是,此带宽是双向的,既支持数据发送也支持接收,因此单向带宽为300GB/s。

相比之下,A800 GPU将NVLink通道的数量从12减少到了8。因此,在全互联结构中,每条线路的总带宽变为8 * 50GB/s = 400GB/s,单向带宽为200GB/s。

以下是一个由8*A800组成的设备的nvidia-smi拓扑结构图示。

nvidia-smi topology for an 8*A800 machine

    • GPU与GPU之间的连接(左上区域):

所有连接均标记为NV8,表示有8条NVLink连接。

    • 网络接口卡(NIC)连接:

在同一CPU芯片内:标记为NODE,表示无需跨越NUMA结构,但需要穿越PCIe交换芯片。

在不同CPU芯片之间:标记为SYS,表示必须跨越NUMA结构。

    • GPU至NIC的连接:

在同一CPU芯片内且处于同一PCIe交换芯片下:标识为NODE,表示仅需穿越PCIe交换芯片。

在同一CPU芯片内但不在同一PCIe交换芯片下:指定为NNODE,表示需要同时穿越PCIe交换芯片和PCIe主机桥接芯片。

在不同CPU芯片之间:标记为SYS,表示需要跨越NUMA结构、PCIe交换芯片,并覆盖最长距离。

🌵GPU节点互联架构

以下图表展示了GPU节点间的互联架构:

GPU node interconnection architecture

🛫计算网络

计算网络主要用于连接GPU节点,支持并行计算任务之间的协同工作。这包括在多块GPU之间传输数据、共享计算结果以及协调大规模并行计算任务的执行。

🛫存储网络

存储网络用于连接GPU节点和存储系统,支持大规模数据的读写操作。这包括将数据从存储系统加载到GPU内存中,以及将计算结果写回存储系统。

为了满足AI应用对高性能的需求,在计算网络和存储网络上,RDMA(远程直接内存访问)技术至关重要。在两种RDMA技术——RoCEv2和InfiniBand之间进行选择时,需要权衡成本效益与卓越性能,每种选项都针对特定应用场景和预算考虑进行了优化。

公共云服务提供商通常在其配置中采用RoCEv2网络,例如CX配置,其中包含8个GPU实例,每个实例配备8 * 100Gbps。与其他选项相比,只要能满足性能要求,RoCEv2相对较为经济实惠。

🛫数据链路连接中的带宽瓶颈

Single-machine 8-card A100 GPU host bandwidth bottleneck analysis

该图表突出了关键连接的带宽规格:

  • 同一主机内GPU之间的通信:通过NVLink技术,双向带宽达到600GB/s,单向带宽达到300GB/s。

  • 同一主机内GPU与其各自网络接口卡(NIC)之间的通信:采用PCIe Gen4交换芯片,双向带宽为64GB/s,单向带宽为32GB/s。

  • 不同主机间GPU之间的通信:数据传输依赖于NIC,带宽取决于所使用的具体NIC。当前在中国,对于A100/A800型号常用的NIC提供主流的单向带宽为100Gbps(12.5GB/s)。因此,相较于同一主机内的通信,不同主机间的GPU通信性能显著下降。

200Gbps(25GB/s)接近PCIe Gen4的单向带宽。

400Gbps(50GB/s)超越了PCIe Gen4的单向带宽。

因此,在此类配置中使用400Gbps的网卡并不能带来显著优势,因为要充分利用400Gbps带宽需要PCIe Gen5级别的性能支持。

🎯8x NVIDIA H100/8x NVIDIA H800 主机

📚H100主机内部的硬件拓扑结构

H100主机的整体硬件架构与A100八卡系统的架构非常相似,但也存在一些差异,主要体现在NVSwitch芯片的数量和带宽升级上。

Hardware Topology Within H100 Host

  • 在每个H100主机内部,配置了4颗芯片,比A100配置减少了两颗。

  • H100芯片采用4纳米工艺制造,底部一行配备了18条Gen4 NVLink连接,从而提供了900GB/s的双向总带宽。

📚H100 GPU 芯片

Single-chip H100 GPU internal logical layout

  • 该芯片采用尖端的4纳米工艺制造,表明其采用了先进的制造技术。

  • 芯片底部一排包含18个Gen4 NVLink连接,提供双向总带宽为18条通道 * 每通道25GB/s = 900GB/s。

  • 芯片中央蓝色区域代表L2高速缓存,用于存储临时数据的高速缓冲区。

  • 芯片左右两侧则集成了HBM(高带宽内存)芯片,这些芯片作为图形内存使用,存储图形处理所需的数据。

📚网络连接方面

H100在联网方面与A100相似,唯一的不同之处在于其标准配置包含了​  400Gbps的CX7网卡。

这篇关于ADOP带您了解高性能GPU服务器基础知识(下篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928629

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel