- 2024-09-25
-
发表了主题帖:
《大模型时代的基础架构》阅读心得——第六章:GPU集群的网络设计与实现
第6章主要探讨了GPU集群的网络设计与实现,该章包含了4个小节,通过阅读可以了解到GPU集群通常包含多个网络平面,包括计算网络、存储网络、业务网络和带外管理网络。
(1)计算网络采用RoCE(RDMA over Converged Ethernet)技术,RoCE技术允许在以太网上实现远程内存直接访问,它通过将RDMA技术应用于以太网,实现了服务器之间的高速数据访问,这种方式在极少占用CPU资源的情况下,提供了大带宽、低时延的远程内存访问能力,特别适用于AI智算、高性能计算(HPC)、高速存储等新型业务场景,这一部分主要在6.1小节RoCE计算网络的设计与实现,详细介绍了RoCE技术的实现原理及其在GPU集群中的应用,包括网络协议、配置方法和性能优化等。
(2)存储网络和业务网络这一部分主要在6.2小节,在这里接触到了数据中心网络设计收敛比的知识,它描述了网络中下行带宽与上行带宽之间的比例关系。这种比例关系直接影响到网络的性能和稳定性。收敛比是指在网络架构中,所有下行(指向用户或设备)接口的总带宽与所有上行(指向核心网络或更高层次的网络)接口的总带宽之间的比值。其计算公式为:收敛比 = 下行带宽 / 上行带宽。理想的收敛比是1:1,但低收敛比的网络架构意味着需要更高上行端口带宽的设备,这会增加成本。因此,需要综合考虑成本和业务需求来确定最合适的收敛比。
(3)带外管理网络在6.3小节部分,介绍了IPMI(Intelligent Platform Management Interface,智能平台管理接口,是一种开放的、标准化的硬件管理接口规范,它定义了一套用于管理和监控服务器、存储设备和其他计算机硬件设备的协议)远程管理技术,以及如何通过带外管理网络实现对GPU服务器的远程监控和管理。IPMI 可以通过多种方式实现,但最常见的是通过集成在服务器主板上的BMC(Baseboard Management Controller,基板管理控制器)来实现。BMC 是一个独立的、低功耗的微控制器,它独立于服务器的操作系统和处理器运行,并通过特定的网络接口(如IPMI v2.0中的KVM-over-IP)与远程管理控制台通信。
第6章深入探讨了GPU集群网络设计,介绍了相关的网络设计方案,使得GPU集群在训练中能够更好的进行数据传输,从而满足大模型时代对算力中心的需求。在该章的最后部分,还介绍了网络边界的设计和实现部分,提到了网络安全的重要性,为构建稳定可靠的GPU集群提供了有力的保障。
- 2024-09-18
-
发表了主题帖:
《大模型时代的基础架构》阅读心得——第五章:机器学习所依托的I/O框架体系
大规模机器学习应用程序所需的硬件基础架构,是一个大型的分布式计算机系统。冯·诺伊曼提出的计算机理论包括ALU、控制器、存储器、输入/输出设备(I/O)四部分,本章主要介绍对于分布式计算机系统的I/O设计部分相关内容。
I/O设计是影响分布式计算机系统处理性能的重要因素,对于AI运算,Nvidia提出的对应I/O设计框架名为:Magnum IO。Magnum本身字面意思就是“巨大的”,Nvidia以该词命名,也可以看出其认为在巨大的数据量面前,计算、存储和网络的基础架构设计也应当做一次重大的革新。
Magnum IO有四大核心组件,分别是:Storage IO、Network IO、InNetwork Compute和IO Management。这些组件其实都是GPU Direct的一部分,GPU Direct是Nvidia开发的一项技术,用于实现GPU与其他设备之间的直接通信和数据传输,从而让数据交换避开CPU,实现彻底的旁路和硬件卸载,解决了传统计算机体系架构中令CPU参与数据交换导致的严重CPU资源浪费和传输延迟增加的问题。
GPU Direct包括了GPU Direct Shared Memory、GPU Direct Storage等技术,GPU Direct Storage技术主要用于实现GPU对存储的访问,让GPU绕过CPU,直接从NVMe SSD中读取数据。GPU Direct Shared Memory是Nvidia从2010年开始推出的,该技术能够让GPU直接把数据显存写到应用程序可以使用的用户态内存地址,传统的方法是需要GPU把数据复制到CPU中,再让CPU把数据复制到用户态,该技术减少了一次数据复制,大大减少了对CPU的内存占用,也提高了访问速度。2011年Nvidia推出了GPU Direct P2P技术,令GPU之间可以通过PCI-E总线来互相访问对方的内存,实现CPU仅对GPU发放复制指令操作,而CPU自身不需要参与内存复制,但该技术因涉及PCI-E总线传输存在带宽和时延的问题,2016年被NVlink技术替代。
NVlink通过NVlink Bridge和NVlink Switch等可以实现多卡桥接,Nvidia DGX A100 GPU卡使用的NVlink Switch 2.0(支持NVlink3.0,支持36个Port),Nvidia DGX A100 GPU卡有12个NVlink3.0 Port,每2个可以连接到一个NVlink Switch 2.0,所以一个Nvidia DGX A100 GPU卡可以连接到6个NVlink Switch 2.0,SXM Board上总共有6个NVlink Switch。此外,一张NVlink Switch上有36个Port,那么理论上应该可以连接18个Nvidia DGX A100 GPU卡,但实际上只占用了16个Port,连接了8张Nvidia DGX A100 GPU卡。那么在NVlink Fabric技术下,可以实现搭载两张Board,从而16张Nvidia DGX A100 GPU卡可以实现无阻塞互通,占用32个Port,剩下4个Port则是用来提供有需求时,GPU和CPU的高速互联。但NVlink没有引入FEC前向纠错机制,是无法实现跨服务器节点的GPU通信的。
早期的跨服务器节点的GPU通信是通过RDMA技术实现的,RDMA目前有两种实现方法,IB和RoCE。它是一种绕过对端CPU,让对端网卡直接访问对端系统内存的技术。经过Nvidia的技术升级,数据可以直接从GPU显存向RDMA网卡发送,对端RDMA网卡接收数据后直接将数据传到GPU显存,极大降低了跨节点通信延迟。
- 2024-08-06
-
发表了主题帖:
《大模型时代的基础架构》阅读心得——第四章:GPU服务器的设计与实现
本帖最后由 HEU-liukai 于 2024-8-6 15:15 编辑
本章主要以Nvidia DGX A100产品为例,介绍了其总体设计及CPU与内存子系统的设计,Nvidia DGX A100整机(包含了2台AMD EPYC Rome 7742处理器(每颗64核心,共128核)、8个Nvidia A100 SXM GPU和8张Mellanox CX6 IB 200G HDR/200G RoCE网卡等)分为了两部分,包括系统主板和SXM子卡(SXM接口是一种高带宽、高功率的Socket解决方案,用于将NVIDIA的GPU连接到服务器或数据中心的主板上),其中包括了CPU与内存子系统、PCI-E子系统、存储子系统和GPU子系统。
根据Rome 7742为代表的Zen2系列处理器的内部架构图可知,每颗Rome 7742包括4个NUMA,每个NUMA包括2个Compute Die,每个Compute Die分为2个LLC(Last Level Cache,最后遗迹缓存)单元,每个LLC包括4个物理核和8个超线程。
Nvidia DGX A100整机包含了2台AMD EPYC Rome 7742处理器,每个处理器可支持128个PCI-E 4.0通道(PCI-E子系统是一种高速串行计算机扩展总线标准),那么Nvidia DGX A100两台处理器互通时,又会占用每台处理器的48个通道,则双路系统最终剩下160个PCI-E 4.0通道。Nvidia DGX A100对PCI-E子系统进行了特殊的设计,引入了PCI-E Switch,其能够将多条PCI-E总线互联互通,使得Nvidia DGX A100包含的2台7742处理器能够连接到Nvidia DGX A100整机中的各类高性能计算存储设备。主要可应用于以下两种场景:
(1)多个能够支持Root Complex(根联合体,RC)功能的PCI-E设备的对等互联。
(2)在Root Complex支持的PCI-E通道数量不足的情况下,对PCI-E通道进行扩展。
关于PCI-E子系统的设计中,为了避免使PCI-E的upstream通道成为性能瓶颈,在调度GPU时通过建立绑定关系,令同一个PCI-E Switch下的一个GPU、一张CX6网卡和一块SSD卡绑定为一组,即每个PCI-E Switch下有两组,Nvidia DGX A100 PCI-E子系统下共可分为8组。那么这种分组应该就是将upstream通道数据流向分成两部分,分别可以通过MLX CX6网卡来实现跨服务器节点GPU之间的互访来减弱“多打一”效应,从而避免SW到RC的带宽成为瓶颈问题。
此外,为了实现同一台服务器的两块GPU之间的互访,NVidia推出了NVLink技术来实现GPU之间的互通,Nvidia为8颗A100提供了一块专用的子卡,即SXM子卡,该子卡上安装了6块NVLink Switch,通过8个SXM接口(实际上就是PCI-E x16接口和NVLink 2.0 x6接口的集合),安装8张A100 GPU卡,能够实现8张A100 GPU卡的全连接的互联互通。
概念补充:
(1)文中提到,在Rome 7742中,各个Compute Die与Memory/IO Die之间互通采用的是Infinity Fabric技术。Infinity Fabric(简称IF)是AMD开发的一种高速互连技术,主要用于连接AMD处理器内部的各个核心、缓存以及其他组件,以实现高效的数据传输和通信。该技术被广泛应用于AMD的Ryzen和EPYC系列处理器中,在EPYC处理器中,Infinity Fabric不仅连接了处理器内部的各个组件,还支持在多个处理器之间建立连接,以实现更高效的数据传输和通信。
在多处理器互通的场景下,AMD的Infinity Fabric技术相当于Intel的QPI/UPI技术。QPI(Intel QuickPath Interconnect)和UPI(Intel Ultra Path Interconnect)是Intel开发的两种高速互联技术,主要用于实现芯片之间的直接互联。UPI在2017年取代了QPI,其拥有更高的通信速率、效率以及更低的功耗。
(2)Root Complex是PCI-E总线架构中的起始点,通常被集成在主板的南桥芯片内,负责将处理器和内存子系统连接到由一个或多个交换设备组成的PCI-E交换结构。它类似于PCI-E系统中的主机桥(北桥),是I/O层次结构的根节点,用于连接CPU/Memory子系统到I/O子系统。
(3)Compute Die(计算晶片)是专门用于执行计算任务的芯片部分,它集成了各种计算核心和相关模块,如CPU核心、GPU核心、缓存等。
(4)NUMA(Non-Uniform Memory Access)是一种计算机内存架构,其中处理器访问内存的时间取决于内存相对于处理器的位置。在NUMA架构中,内存被划分为多个区域,每个区域由一个或多个处理器(或处理器核心)直接访问,这些处理器通常被称为“节点”(node)。每个节点内的内存访问速度较快,而跨节点的内存访问则相对较慢。
-
发表了主题帖:
#聊一聊#NVidia DGX A100 PCI-E子系统 解决SW的upstream通道成为性能瓶颈问题
问题来源:
书籍:《大模型时代的基础架构:大模型算力中心建设指南》
章节:第四章 GPU服务器的设计与实现;4.4 Nvidia DGX A100 PCI-E子系统的设计
讨论问题:为了避免使PCI-E的upstream通道成为性能瓶颈,在调度GPU时通过建立绑定关系,令同一个PCI-E Switch下的一个GPU、一张CX6网卡和一块SSD卡绑定为一组,即每个PCI-E Switch下有两组,Nvidia DGX A100 PCI-E子系统下共可分为8组。那么这种分组就是将upstream通道数据流向分成两部分,分别可以通过MLX CX6网卡来实现跨服务器节点GPU之间的互访来减弱“多打一”效应,从而避免SW到RC的带宽成为瓶颈问题?举个例子的话是否就是A、B两地陆路交通堵塞,可以采用航运缓解交通压力并增大运输量?
-
回复了主题帖:
《大模型时代的基础架构》阅读心得——第一章:AI与大模型时代对基础架构的需求
秦天qintian0303 发表于 2024-8-6 08:50
AI与大模型时代对基础架构,架构可能不同,不过基本原理应该都差不多
哦哦~我第一次接触,正在学习阶段。
-
回复了主题帖:
#没读懂#关于Nvidia DGX A100 内部部件的问题
tagetage 发表于 2024-8-5 19:45
DGX A100拥有8个用于集群的单端口Mellanox ConnectX-6 VPI HDR InfiniBand适配器,以及1个用于存储和网络连 ...
照你这个思路我又查看了一下Nvidia DGX A100的设计图,
我的理解是文中所指的“9+1”应该是没错的,这个“9”表示的就是你说的8+1,而另一个“9+1”中所指的1,其实就是“8+1”中的1,因为Nvidia DGX A100包含两个Rome 7742处理器,所以可以在另一个处理器上再选配一张CX6网卡。
可以当作:8+1+1来看。
- 2024-08-05
-
回复了主题帖:
《大模型时代的基础架构》一文了解GPU云原生虚拟化调度方案
小白前来学习一下
-
发表了主题帖:
#没读懂#关于Nvidia DGX A100 内部部件的问题
问题来源:
书籍:《大模型时代的基础架构:大模型算力中心建设指南》
章节:第四章 GPU服务器的设计与实现;4.2 Nvidia DGX A100的总体设计
问题(1)有关书中内容:Nvidia DGX A100的主要部件包括“9+1张Mellanox ConnectX-6双模式网卡”。
问题(2):文中提到“Nvidia DGX A100整机包含了2台AMD EPYC Rome 7742处理器(每颗64核心,共128核)、8个Nvidia A100 SXM GPU和8张Mellanox CX6 IB 200G HDR/200G RoCE网卡。”那么这里用“9+1”表示数量又是何意?没有懂。
问题(2)有关书中内容:见图
问题(2):这里所说的SXM子卡和图上标注的SMX子卡是一个东西吗?
-
发表了主题帖:
#没读懂#关于Nvidia GH100内部SM架构相关问题
本帖最后由 HEU-liukai 于 2024-8-5 09:50 编辑
问题来源:
书籍:《大模型时代的基础架构:大模型算力中心建设指南》
章节:第三章 GPU硬件架构剖析;3.2 Nvidia GH100芯片架构剖析
问题有关书中内容:SM(Streaming Multiprocessor,流式多处理器)是Nvidia GH100芯片的核心部件,其计算核心部件为Tensor Core和CUDA Core。该章节谈到要充分利用时间局部性和空间局部性提升计算机的性能,就首先要充分理解计算单元和缓存。其中:
(1)在Hopper架构下,访问速度最快的是SM中每个象限的1KB Register File。
(2)访问速度次之的是每个象限的1块L0指令缓存,被32个CUDA Core和1个Tensor Core共用。
问题:上述提到“访问速度次之的是每个象限的1块L0指令缓存,被32个CUDA Core和1个Tensor Core共用”,根据SM架构图,每个象限应该是有16个CUDA Core(CUDA Core由1个INT32单元+2个FP32单元+1个FP64单元组成)吗?这里提到每个象限的1块L0指令缓存,被32个CUDA Core不理解,为何是32个?是算上相邻的象限中的CUDA Core共用还是每个象限就是32个CUDA Core?
-
发表了主题帖:
《大模型时代的基础架构》阅读心得——第一章:AI与大模型时代对基础架构的需求
本帖最后由 HEU-liukai 于 2024-8-5 09:50 编辑
本科刚毕业,非常荣幸参与了该书的测评活动,在此发表一下个人心得。
初读本书,整体感悟是通俗易懂:在本科期间,曾参与了一项智能检测水下机器人的项目,那是第一次接触到“大模型”、“神经网络”等词,对此并不太懂,难以理解,但是在阅读本书1.3节(一元线性回归算法剖析)中,作者用机器学习算法相关术语描述了该算法,个人感觉该例很好的将大模型概念以一种通俗易懂的形式向类似于我这类初学者讲明,所以也让我这样一个小白有了继续阅读下去的兴趣。
通过本书内容简介,可以迅速了解到本书第一章主要讲解了AI与大模型时代对基础架构的需求,本章所谈的AI即是机器学习算法,并以浅显的方式给了一定的推理便于读者理解,那么谈到机器学习算法,又固然离不开计算机硬件的支持,所以第一章简要说明机器学习算法相关概念后便为后续章节引入CPU和GPU等硬件的介绍作了铺垫。
同时,通过第一章的学习,本人也学习或又复习了许多概念,如下:
机器学习算法相关术语:训练样本、模型、模型的权重参数、训练、基于模型的权重的推理等;
计算机领域中的向量卷积(Vector Convolution)表示将乘法运算结果累加的算法,也称为“向量点积”(Vector Scalar Product);
计算机中最通用的运算部件是CPU的ALU(Arithmetic Logic Unit,算术逻辑单元);
图灵完备(Turing Complete):只要一台计算机能够实现图灵机的功能,就能够完成所有的计算任务,也就是图灵完备的;
图灵机在结构上包括以下几个部分:一条足够长的纸带(tape)、一个字符表(alphabet)、一个读写头(head)、一个状态寄存器(state register)、一个有限的指令集(instructions table);
GPGPU(General-Purpose Graphics Processing Unit,通用图形处理单元),GPGPU目前(截止到2024.7)是业界主流的机器学习算法依托的硬件计算单元;
机器学习算法的新引擎:TPU(Tensor Processing Unit,张量处理单元,擅长计算矩阵和向量,精简了其他计算功能)和NPU(Neural Processing Unit,神经网络处理单元)。其中,张量(Tensor)是一个数学名词。
- 2024-07-22
-
回复了主题帖:
读书活动入围名单:《大模型时代的基础架构:大模型算力中心建设指南》
个人信息无误,确认可以完成阅读分享计划