type
status
date
slug
summary
tags
category
icon
password

一、背景




AI集群很规整的, 服务器架构: 参数服务器模式 - 同步与异步并行

网络有延迟,随着节点变大边际效益递减。


AI集群训练关键指标





二、AI算力集群服务器架构
- 硬件组成概览
硬件主要四部分:
计算节点:负责实际计算的节点,使用CPU和GPU/NPU协同计算,计算节点通过RDMA网络连接存储节点来完成计算数据的读取和存储;
存储节点:存储和读写数据,以提供具体SSD/SATA硬盘为主,分为对象存储多级存储;
管理节点:负责管理和运维,主要以一台终端机带键盘和鼠标提供,能连接外网管控权限;
集群辅件:网络(交换机、线材等)、机柜、机架式配电单元PDU、冷却系统等。

计算节点中除了GPU还有CPU(8卡就是有8个gpu组成一个计算节点)。计算节点内通信通过共享内存、PCIe、NVlink(直连),计算节点与节点之间通过TCP/IP网络或者 Remote Direct Memory Access RDMA(IB或RoCE)网络交换机互联;RDMA再和存储节点互联把存储的数据传输给计算节点;计算节点再通过以太网客户端,集群管理交换机,对整体计算/存储做运维。

- 通过英伟达DGX H100深入服务器(硬件)

DGX H100(八卡)服务器规格
ㅤ | ㅤ | Note(仅供参考) |
GPUs | 8x NVIDIA H100 | 60%左右成本 |
GPU memory | 640GB | HBM, 三星海力士卡脖子技术。贵 |
Performance | 32 PetaFlops FP8 | ㅤ |
NVSwitch | 4x | 英伟达大杀器。第四代NVLink卡间带宽900GB/s;第三代NVSwitch含64个NVLink接口,最多连8个GPU,总带宽7.2TB/s。贵 |
System power usage | ~10.2kW max | 散热未来会是大问题,之后有机会单独说。以前IDC厂商普遍用风冷,以后随着瓦数暴增(下一代单卡1000W+?)大概率液冷会主流。 |
CPU | Dual x86 | ㅤ |
System memory | 2TB | DDR5 System RAM,内存这块之后再研究。 |
Networking | 4x OSFP ports serving 8x single-port ConnectX-7 (400 Gb/s InfiniBand or 200 Gb/s Ethernet)
2x dual-port ConnectX-7
(1x 400 Gb/s InfiniBand, 1x 200 Gb/s Ethernet) | 网卡公司Mellanox大杀器。ConnectX是一种SmartNIC(智能网卡),可以选配很贵的IB,国内一直说的光模块在网卡的port上。贵,单个IB OSFP port差不多就要$1500。 |
Management
network | 10 Gb/s onboard NIC with RJ45
50 Gb/s Ethernet optional NIC
Host baseboard management
controller (BMC) with RJ45 | 这个NIC和上面的NIC不一样,这里用作in-band管理和out-of-band管理,后面细说。 |
存储 | OS: 2x 1.9TB NVMe M.2
Internal storage: 8x 3.84TB NVMe U.2 | NVMe(非易失性快速存储器) |
软件 | NVIDIA AI Enterprise (优化AI软件)
NVIDIA Base Command (Orchestration, scheduling, 集群管理)
Ubuntu / Red Hat Enterprise Linux / CentOS(操作系统) | 英伟达最强的除了芯片设计就是软件生态。其软件工作量可能是 x万顶级工程师 * x年,很难被超越。 |
质保 | 3年 business- standard 软硬件支持 | 风冷普遍有质保,液冷方案在迭代跟进。 |
运行温度 | 5–30°C (41–86°F) | ㅤ |
DGX H100(八卡)价格估算

上表配置仅供参考,没有带上IB等Networking价格(这一块价格昂贵,所以很多大厂都选择自己配?),散热系统这里等价格是风冷,实际液冷会贵一些。
Motherboard Tray Components
很少被讨论,母板/PCB(印刷电路板)是CPU主板托盘,其中包含CPU主板、系统内存、网卡、PCIE交换机和其他AI服务器特定组件。GPU通过NVSwitch和这块母板相连。


Networking 通信网络
机器内通信:下图是8卡A100的(H100带宽更高但大致结构一样)。GPU和GPU走NVLink;GPU和CPU走PCI-E (Peripheral Component Interconnect Express);CPU和CPU可以走AMD的Infinity Fabric(GPU RDMA无法直连 CPU?);CPU和存储器走其他通道。

机器间通信:除了英伟达会用IB,其他厂商一般都用RoCE。

一个简单对比:
性能 | 最好 | 稍差(受TCP影响) | 与InfiniBand相当 |
成本 | 高 | 中 | 低 |
InfiniBand | iWARP | RoCE | |
稳定性 | 好 | 差 | 较好 |
交换机 | IB交换机 | 以太网交换机 | 以太网交换机 |
分布式存储中常用的网络协议:
- IB:常用于DPC场景中的存储前端网络。
- RoCE:常用于存储后端网络。
- TCP/IP:常用于业务网络。
Management network 通信网络管理

带内管理:网络的管理控制信息与用户网络的承载业务信息通过同一个逻辑通道传送;
带外管理:网络的管理控制信息与用户网络的承载业务信息在不同逻辑通道传送。
带内in band交换机:连接管理群集的所有计算节点;允许访问主文件系统、存储节点。

带外out of band交换机:

光交换机与光模块:

- 分布式架构
回顾一下模型训练过程 → 计算网络损失,求梯度,更新权重参数。以前这三步都在单卡上完成,训练从单卡→单节点(8卡)→AI集群,设备数提高了很考验集群承载训练的能力,这里就要用软件做分布式架构。

两种分布式训练方法
数据并行:数据被拆分再并行处理。每个工作节点在不同的Batch Training Data上训练模型的副本,计算完广播结果,以保持模型参数和梯度在所有节点上同步。这些结果可以同步共享(每次批处理计算结束就传),也可以异步共享(多用于模型更松散耦合的系统中)。
模型并行:模型本身被拆分,不同部分在不同工作节点上同时进行训练。所有工作节点都使用相同的数据集,他们与其他节点共享全局模型参数(通常在正向或反向传播之前)。模型并行更难实现,适用于具有自然并行架构的模型(multiple branches?)。


不同工作节点之间的synchronization要咋做?
模型并行太复杂还没研究,先说数据并行synchronization的方法。主要分Parameter Server参数服务器和All-reduce两种。建议看Zomi老师B站课程 — AI集群分布式架构,视频更好理解。
参数服务器:节点分成工作节点和维护全局共享参数的参数服务器。每一次iteration工作节点从参数服务器接受最新的全局权重,用他们的局部数据算梯度,再将结果传给参数服务器。缺点:整个过程只跟最慢的工作节点一样快;参数服务器要重算每台机器的权重,加机器并不一定减少训练时间,通信开销scale能力有限。
All-reduce:解决了一些参数服务器的限制,所有工作节点共享 ”维护/存储全局参数“的负载。有多种All-reduce的算法,建议看Zomi老师B站课程 — AI框架分布式并行,视频更好理解。
分布式训练框架和软件包
几大框架Pytorch、Mindspore(华为昇思)、TensorFlow、Keras、Horovod…网上资料很多了,这里不赘述,主要介绍下两个帮助节点通信、简化分布式训练过程的通信库。
MPI:Message Passing Interface ,一个开放标准的标准通信库,广泛用于高性能计算。
NCCL:The NVIDIA Collective Communications Library ,N厂出的适用于GPU集群的强悍通信库,也是MPI兼容,帮助用户减少复杂的communication scripts编写/部署时间。
- Cuda为什么那么牛
CUDA是英伟达2016年就推出的通用并行计算平台。大家都说CUDA附带了软件环境,允许开发人员用C++就来硬件编程。但作为一个Verilog学的很渣的卡拉米,也没看过CUDA教材,我还是没懂它是干啥的。。。直到看到了知乎计算机图形学答主张心欣的回答(https://www.zhihu.com/question/564812763/answer/2764785431):
计算界cuda之所以厉害,不仅仅是因为它可以调用GPU计算,而是它可以调用GPU硬件加速。
GPU计算 ≠ GPU硬件加速,这个道理或许很多人不知道。
比如同样一个三线性插值,你在一个gpu数组上手写实现的版本,和当你把它转换为一种纹理内存textureObject后用cuda内置的textureSample函数来做,效率可能差好多倍。
因为后者的三线性插值,你可以理解为是“电路板在做”。
包括tensorCore为什么快,因为人家又把tensor计算做成“电路板计算”了。
那难道你们以为除了科学计算,除了cuda,英伟达就不能打了?
光线追踪,光线和三角形求交,英伟达做成“电路板计算”了,你觉得自己用cuda手写的算法能比电路快?
4090里,英伟达又把光线排序,做成硬件加速的了,而这一切只有使用他家原生的API系统才可以享受到。
发现需求量大的“单元计算”任务,(比如三线性插值,tensorcore,三角形求交,光线排序…)把他们做成“电路实现”,并用自己的api裹挟这样的计算能力。
这才是英伟达真正的组合拳。 在这套组合拳体系下,cuda扮演着胶水级核心航母的角色。还有其它护卫舰,而这些护卫舰都绕不开。
三、AI云厂
- 发展历史
Era | HPC 里程碑 | 实现方法 |
1960s | CDC 6600, 第一台超级计算机。 | ㅤ |
1975-1990 | 转向并行计算,比如Cray超级计算机。 | 引入 向量处理器(CPU), 共享内存多处理 |
1990-2000早期 | 进入集群时代,1994年第一个Beowulf Clusters,用了16台Intel 486DX PCs连着10 Mb/s以太网。 | 问题:向量处理器需要高速访问内存,但多处理器共同处理延迟很高。办法:共享内存→分布式内存。 |
2000早期-至今 | 引入GPU,进入Hybrid集群时代。 | 每个计算节点变成Multi and Many-core CPUs/GPUs。 |
Year | Cloud Service Provider 里程碑 |
2002 | 亚马逊云服务 (AWS) 发布,支持一些存储和计算。 |
2006 | AWS正式发布 EC2和S3,提供了可扩展的虚拟计算和存储。 |
2008 | Google进入云市场(Google App Engine)。 |
2010 | Microsoft发布了Azure,开始和AWS和Google竞争。 |
2012 | Google Cloud Platform(GCP)正式发布,提供了一系列云计算服务。 |
2013 | AWS发布了第一届 ”re:Invent“大会,巩固其云市场地位。 |
2017 | Google引入了Google Kubernetes Engine (GKE),专注于容器化和微服务。 |
2019之后 | 大模型到来,传统云厂逐渐向 ”AI云厂“转移,一些初创冒出头角、群雄争霸。 |
- 大厂概览
2023 | 市占率 | Key Tools | 亮点 |
AWS | 31% | SageMaker(ML全栈平台); Glunon(开源深度学习库); Greengrass(IOT通讯); Lambda(Serveless计算平台); S3(云存储) | 服务最多(200+); 最庞大的客户/社群/服务伙伴(网上教程最多); 可靠性好(服务相对最不容易中断,毕竟做的久全球集群最多); 最早拥抱开源和HuggingFace合作,用户可以直接在SageMaker上部署HF的模型👍 |
Azure | 24% | Cognitive services(Bing API, Text Analytics API, Face API, Computer Vision API, Custom Vision Service); Functions(Serveless计算平台); Backup(结合了微软工具箱); | 服务中等多(100+); 微软工具箱集成(Window,Office,Bing…); Hybrid Cloud Scope(私有云/公有云客户都有解决方案); 大客户focus |
GCP | 11% | GoogleColab(ML推理/计算平台); Vertex AI(ML全栈平台); Cloud Storage Buckets(云存储) | 60+服务;增长最快;相对新手友好; 内置数据label、AutoML、方便和开源框架(TF、Pytorch…)集成,相对容易进行大规模深度学习任务。 想集成Google Search或者Youtube这种大众应用只能选它🤣 |
CPU价格对比
General Purpose
Cloud Provider | Instance type | CPU, RAM | Price | 一年合同折扣 |
AWS | t4g.xlarge | 4v, 16GB | $0.1344 | 41% |
Azure | B4ms | 4v, 16GB | $0.166 | 32% |
GCP | e2-standard-4 | 4v, 16GB | $0.150924 | 37% |
Oracle | VM.Standard3.Flex | 4v, 16GB | $0.104 | 1% |
Compute optimized (GCP的是16GB RAM)
Cloud Provider | Instance type | CPU, RAM | Price | 一年合同折扣 |
AWS | c6a.xlarge | 4v, 8GB | $0.153 | 38% |
Azure | F4s v2 | 4v, 8GB | $0.169 | 32% |
GCP | c2-standard-4 | 4v, 16GB | $0.2351 | 41% |
Oracle | VM.Optimized3.Flex | 4v, 8GB | $0.12 | 1% |