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集群架构,从上到下分四层:

GPU集群架构分层示意图 应用层 PyTorch / TensorFlow / 大模型训练框架 / HPC应用 调度层 Slurm / Kubernetes + Volcano / 任务队列管理 网络层 InfiniBand (400Gbps) / RoCEv2 / NVLink / 高速互联 硬件层 GPU服务器 / 存储集群 / 液冷散热 / 电源管理 数据流方向:应用 → 调度 → 网络 → 硬件 运维关注点 日志监控 资源调度 网络调优 硬件巡检

这四层每一层都有坑。我简单说说:

  • 应用层:框架版本兼容性是大问题。PyTorch 1.13和2.0的分布式通信库就不一样,升级时经常翻车。
  • 调度层:Slurm和K8s各有优劣。我建议训练任务用Slurm,推理服务用K8s,别混着用。
  • 网络层:这是最容易出瓶颈的地方。很多集群GPU利用率上不去,查到最后都是网络带宽不够。
  • 硬件层:散热和供电是老大难。700W的H100,一个机柜塞8张,功耗直奔6kW。没液冷?等着宕机吧。

我的习惯:每接手一个新集群,我第一件事就是画架构图。从网络拓扑到供电链路,画清楚了,问题就解决了一半。别嫌麻烦,这步省不了。

好了,第一章就聊到这儿。GPU集群这东西,看着高大上,拆开了其实就是「算力+网络+存储」三件套。后面咱们会一个一个深入讲。

想要更多资料,联系可可