1. GPU集群概述:从一块显卡到算力航母
大家好,我是老K。在GPU集群运维这行摸爬滚打了快十年,踩过的坑比见过的卡还多。今天咱们聊聊最基础、也最容易被忽视的问题——GPU到底是什么?它和CPU到底有啥区别?
很多人觉得GPU就是「高级显卡」,这话对也不对。说它对,是因为GPU确实是从图形渲染卡演变来的;说它不对,是因为现代GPU已经成了AI和超算的算力心脏。嗯,咱们得从根上把它捋清楚。
1.1 GPU与CPU:一个像博士,一个像流水线工人
CPU和GPU的设计哲学完全不同。我打个比方你就明白了:
- CPU:就像一位全能博士。什么都会,逻辑判断、分支预测、复杂运算样样精通。但博士就一个,一次只能处理一两件事。
- GPU:像一万个流水线工人。每个工人只会做简单的加减乘除,但架不住人多啊!一万个人同时干活,效率碾压博士。
具体到硬件设计上:
| 对比维度 | CPU | GPU |
|---|---|---|
| 核心数量 | 几十个(如64核) | 数千个(如A100有6912个CUDA核心) |
| 控制单元 | 占比大(约40%) | 占比小(约5%) |
| 缓存 | 大(几十MB) | 小(几MB到几十MB) |
| 擅长任务 | 复杂逻辑、串行计算 | 简单运算、并行计算 |
| 内存带宽 | 几十GB/s | 数千GB/s(H100达3.35TB/s) |
核心结论:CPU适合「做决策」,GPU适合「做重复劳动」。AI训练为什么用GPU?因为神经网络里全是矩阵乘法,说白了就是成千上万个「乘加运算」同时算,这活天生就该GPU干。
我记得刚入行时,有个同事非要用CPU集群跑深度学习。结果呢?一个ResNet-50训练要两周。换成4块V100,两天搞定。从那以后,我再也没见过他用CPU跑AI。
1.2 GPU在AI/HPC中的作用:算力就是生产力
为什么AI离不开GPU?你想想看,大模型训练的本质是什么?
- 前向传播:输入数据经过层层矩阵运算得到输出
- 反向传播:根据误差调整权重,又是矩阵运算
- 梯度更新:还是矩阵运算
说白了,整个训练过程就是「矩阵乘法吃到饱」。而GPU的Tensor Core(张量核心)就是专门为这玩意设计的。以A100为例,它支持TF32精度,算力高达312 TFLOPS。什么概念?每秒能算312万亿次浮点运算。
在HPC(高性能计算)领域,GPU同样大放异彩。分子动力学模拟、气象预报、石油勘探……这些场景的共同特点是:数据量大、计算模式规整、并行度高。我曾经参与过一个气象项目,用CPU算一个72小时预报要6小时,换成GPU集群后,20分钟出结果。客户当场就拍板加单了。
我的经验:判断一个HPC任务适不适合GPU,就看它的计算密度。如果计算量远大于数据搬运量,那GPU就是最佳选择。反之,如果频繁读写数据、逻辑分支多,CPU反而更合适。
1.3 主流GPU型号对比:A100、H100、MI300X怎么选?
目前市面上主流的AI训练卡就三家:NVIDIA的A100/H100,AMD的MI300X。我这些年三家的卡都用过,说说真实感受。
| 参数 | NVIDIA A100 (80GB) | NVIDIA H100 (80GB) | AMD MI300X (192GB) |
|---|---|---|---|
| 架构 | Ampere | Hopper | CDNA 3 |
| FP32算力 | 312 TFLOPS | 989 TFLOPS | 653 TFLOPS |
| 显存带宽 | 2.0 TB/s | 3.35 TB/s | 5.2 TB/s |
| 显存容量 | 80GB HBM2e | 80GB HBM3 | 192GB HBM3 |
| 互联技术 | NVLink 3.0 (600GB/s) | NVLink 4.0 (900GB/s) | Infinity Fabric (896GB/s) |
| 功耗 | 400W | 700W | 750W |
| 生态成熟度 | ★★★★★ | ★★★★★ | ★★★☆☆ |
避坑指南:我曾经帮客户选型时,只看算力指标选了MI300X。结果发现PyTorch的ROCm版本有些算子不支持,折腾了两周才跑通基础模型。所以我的建议是:如果团队没有专门的AMD优化工程师,优先选NVIDIA。生态成熟度这东西,真不是纸面参数能比的。
具体怎么选?我个人的经验是:
- A100:性价比之选。训练70B以下模型完全够用,功耗低,散热压力小。适合中小规模集群。
- H100:性能怪兽。FP8算力高达1979 TFLOPS,支持Transformer Engine,大模型训练首选。但700W功耗,液冷基本是标配。
- MI300X:显存怪兽。192GB显存能塞下更大的模型,适合推理场景。但软件生态还在追赶,要有心理准备。
1.4 集群架构概览:从单卡到万卡集群
单张GPU再强,也跑不了千亿参数的大模型。所以我们需要把成百上千张GPU连起来,组成集群。这就是GPU集群的由来。
一个典型的GPU集群架构,从上到下分四层:
这四层每一层都有坑。我简单说说:
- 应用层:框架版本兼容性是大问题。PyTorch 1.13和2.0的分布式通信库就不一样,升级时经常翻车。
- 调度层:Slurm和K8s各有优劣。我建议训练任务用Slurm,推理服务用K8s,别混着用。
- 网络层:这是最容易出瓶颈的地方。很多集群GPU利用率上不去,查到最后都是网络带宽不够。
- 硬件层:散热和供电是老大难。700W的H100,一个机柜塞8张,功耗直奔6kW。没液冷?等着宕机吧。
我的习惯:每接手一个新集群,我第一件事就是画架构图。从网络拓扑到供电链路,画清楚了,问题就解决了一半。别嫌麻烦,这步省不了。
好了,第一章就聊到这儿。GPU集群这东西,看着高大上,拆开了其实就是「算力+网络+存储」三件套。后面咱们会一个一个深入讲。
想要更多资料,联系可可