多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

深度学习训练显卡选型指南:H100、H200、RTX 4090、RTX 5090、A100、MI300X全面对比

深度学习训练显卡选型指南:H100、H200、RTX 4090、RTX 5090、A100、MI300X全面对比 1. 显卡选型这件事远比参数表复杂搞深度学习训练的人绕不开一个核心问题卡怎么选。尤其是这两年模型规模膨胀得厉害从几亿参数的小模型一路卷到千亿级MoE架构训练侧对显存容量、显存带宽、卡间互联带宽的要求几乎是每年翻一番。我身边不少团队在采购GPU时踩过坑——有人图便宜买了消费级卡结果多卡训练效率拉胯有人咬牙上了旗舰计算卡却发现机房供电和散热根本扛不住还有人买完才发现框架对某些卡的算子支持不完整白白浪费几个月时间。这篇文章想聊的就是目前市面上最常被拿来对比的几款训练卡H100、H200、RTX 4090、RTX 5090、A100、MI300X。我会从架构特性、显存规格、互联能力、软件生态、实际训练表现、采购成本这几个维度逐一拆解把每个卡适合什么场景、不适合什么场景讲清楚。无论你是个人开发者想搞一张卡跑微调还是团队负责人要规划几十卡的小集群应该都能从中找到对自己有用的判断依据。需要提前说明的是文中涉及的具体性能数字一部分来自公开的规格参数一部分来自我和同行在实际项目中的实测经验还有一部分是基于架构特性的合理推算。不同框架版本、不同模型结构、不同并行策略下实际表现会有出入数字仅供参考重点是理解每张卡的设计取向和适用边界。2. 六款训练卡的核心规格与架构差异2.1 从架构代际看设计取向先把这六张卡按厂商和代际理一遍。A100和H100、H200都是数据中心级计算卡面向的是大规模训练和推理场景RTX 4090和RTX 5090属于消费级旗舰本质上是为游戏和内容创作设计的但因为有CUDA生态加持被大量个人和小团队拿来跑训练MI300X则是AMD在数据中心GPU领域的旗舰产品直接对标H100/H200。A100基于Ampere架构2020年发布是上一代训练主力。H100是Hopper架构2022年发布引入了Transformer引擎、FP8精度支持、第四代NVLink等关键特性。H200可以理解为H100的显存升级版架构没变但把HBM3换成了HBM3e显存容量和带宽都有提升。RTX 4090是Ada Lovelace架构2022年发布消费级卡里训练性价比最高的选择之一。RTX 5090是Blackwell架构2025年初发布消费级卡首次用上GDDR7显存带宽大幅提升。MI300X是CDNA 3架构2023年底发布主打大显存和高带宽。2.2 关键规格对照规格项H100 SXMH200 SXMRTX 4090RTX 5090A100 SXMMI300X架构HopperHopperAda LovelaceBlackwellAmpereCDNA 3显存类型HBM3HBM3eGDDR6XGDDR7HBM2eHBM3显存容量80GB141GB24GB32GB80GB192GB显存带宽3.35TB/s4.8TB/s1.01TB/s1.79TB/s2.04TB/s5.3TB/sFP16算力989 TFLOPS989 TFLOPS165 TFLOPS210 TFLOPS312 TFLOPS1300 TFLOPSFP8算力1979 TFLOPS1979 TFLOPS不支持不支持不支持2600 TFLOPS卡间互联NVLink 900GB/sNVLink 900GB/s无无NVLink 600GB/sInfinity Fabric 896GB/s功耗700W700W450W575W400W750W参考单价25-30万30-35万1.3-1.6万1.8-2.5万8-12万15-20万这张表里最值得关注的是三个维度显存容量、显存带宽、卡间互联。训练大模型时显存容量决定了你能塞下多大的模型和多大的batch显存带宽决定了数据搬运的速度很多时候算力还没跑满带宽先成了瓶颈卡间互联决定了多卡并行时的通信效率没有高速互联的多卡训练扩展性会差很多。2.3 消费级卡和数据中心卡的本质区别很多人会问RTX 4090的FP16算力有165 TFLOPSA100是312 TFLOPS差距不到一倍但价格差了七八倍为什么不用4090堆集群这个问题问到点子上了。消费级卡和数据中心卡的核心差距不在单卡算力而在三个方面第一是显存容量和带宽。4090只有24GB显存训练7B模型做全参数微调都很勉强13B以上基本只能做LoRA。而A100/H100有80GBH200有141GBMI300X有192GB能塞下更大的模型和更长的序列。第二是卡间互联。4090和5090都没有NVLink多卡通信只能走PCIe带宽有限。训练时梯度同步、张量并行的通信量很大PCIe会成为严重瓶颈。实测下来两张4090走PCIe做数据并行扩展效率大概只有单卡的1.6-1.7倍而两张A100走NVLink能到1.9倍以上。第三是软件和驱动。数据中心卡有完整的ECC显存支持、更稳定的驱动、更好的多实例GPU支持。消费级卡在这些方面有阉割长时间高负载运行的稳定性也要差一些。注意如果你只是做推理或者小模型微调消费级卡的性价比确实很高。但如果是正经的训练任务尤其是多卡训练数据中心卡的综合成本反而可能更低——因为训练时间也是成本。3. 不同训练场景下的显卡匹配逻辑3.1 个人开发者和小团队4090和5090怎么选个人开发者最现实的选项就是RTX 4090和RTX 5090。这两张卡我都实际用过说几个关键判断点。显存容量上4090是24GB5090是32GB。别小看这8GB的差距它直接决定了你能跑什么规模的模型。24GB下7B模型做QLoRA微调大概能开2048序列长度13B模型就很紧张了32GB下7B模型可以开更长序列13B模型做QLoRA也宽裕不少。如果你主要做7B以下的模型微调4090够用如果想碰13B甚至30B级别的模型5090的32GB会舒服很多。显存带宽上5090的GDDR7带宽是1.79TB/s比4090的1.01TB/s高了77%。这个提升在训练时感知很明显尤其是数据加载和梯度更新环节。我实测同一个7B模型QLoRA微调任务5090比4090快了大约25-30%不完全是算力提升带来的带宽贡献很大。功耗和散热5090的TDP是575W比4090的450W高了125W。这意味着你的电源至少要到1000W机箱散热也要跟上。我见过有人用850W电源带5090跑训练时频繁触发功耗墙性能直接掉一截。价格4090因为停产二手市场价格一直很坚挺大概1.3-1.6万5090首发价大概1.8-2.5万溢价严重。如果预算有限4090仍然是性价比之选如果追求最新架构和更大显存5090值得多花这个钱。实操心得买4090/5090跑训练一定要选三风扇以上的非公版涡轮卡虽然适合多卡堆叠但噪音大、散热差。另外电源要选金牌以上瞬时功耗波动很大劣质电源容易触发保护。3.2 中等规模训练A100还是H100当你的模型到了13B以上或者需要多卡并行训练时就该考虑A100和H100了。A100的优势是成熟和便宜。80GB HBM2e显存2.04TB/s带宽NVLink 600GB/s互联这些规格放到今天依然能打。而且A100的软件生态极其成熟几乎所有框架和算子都对它做了深度优化踩坑概率最低。二手市场上A100 80GB SXM大概8-12万一张比H100便宜一半以上。H100的优势是架构领先。FP8支持是最大的亮点用FP8训练能把吞吐量再翻一倍而且精度损失可控。第四代NVLink 900GB/s的互联带宽在多卡张量并行时优势明显。Transformer引擎对注意力层的加速也很实在。但H100价格高25-30万一张而且功耗700W对机房要求高。我的建议是如果预算允许且要做前沿的大模型训练直接上H100如果预算有限或者做的是相对成熟的模型架构A100完全够用省下的钱可以多买几张卡。多卡带来的吞吐提升往往比单卡架构升级更划算。3.3 大显存需求场景H200和MI300XH200和MI300X是两张定位很特殊的卡核心卖点都是大显存。H200的141GB HBM3e显存比H100的80GB多了76%带宽也从3.35TB/s提升到4.8TB/s。这意味着你可以用更少的卡塞下更大的模型。比如训练一个70B模型用H100可能需要8卡做张量并行用H200可能4卡就够了卡间通信开销直接减半。对于推理场景H200的大显存能支持更长的上下文和更大的batch吞吐优势很明显。MI300X的192GB HBM3显存更夸张带宽5.3TB/s单卡规格甚至超过H200。AMD的定价也比NVIDIA激进大概15-20万一张。但MI300X最大的问题是软件生态。ROCm虽然这几年进步很大但和CUDA相比仍有差距很多算子需要手动适配框架支持也不如CUDA完善。如果你团队里有熟悉ROCm的工程师MI300X的性价比很高如果全靠CUDA生态吃饭迁移成本要算进去。注意MI300X在推理场景的表现普遍好于训练场景因为推理对算子定制的依赖相对低一些。如果主要做推理部署MI300X值得认真考虑。4. 多卡训练时的互联与并行策略4.1 NVLink和PCIe的实际差距多卡训练的效率很大程度上取决于卡间互联带宽。这里把几种互联方式的实际带宽列一下互联方式理论带宽实际可用带宽典型场景PCIe 4.0 x1664GB/s25-28GB/s4090/5090多卡PCIe 5.0 x16128GB/s50-55GB/s5090多卡NVLink 3.0 (A100)600GB/s450-500GB/sA100多卡NVLink 4.0 (H100/H200)900GB/s700-800GB/sH100/H200多卡Infinity Fabric (MI300X)896GB/s650-750GB/sMI300X多卡差距是数量级的。PCIe 4.0的实际带宽只有NVLink 4.0的3%左右。这意味着什么做数据并行时每步训练后要同步梯度通信量等于模型参数量。一个7B模型FP16梯度是14GB走PCIe 4.0同步一次要0.5秒以上走NVLink 4.0只要0.02秒。训练步数一多差距就拉开了。4.2 不同并行策略对互联的依赖数据并行Data Parallelism对互联带宽要求相对低因为每步只同步一次梯度。但模型越大梯度越大通信时间占比越高。7B以下模型PCIe还能忍13B以上没有NVLink会很难受。张量并行Tensor Parallelism对互联带宽要求极高因为每层前向和反向都要做All-Reduce。这种并行方式基本只能在NVLink卡上用PCIe卡做张量并行效率会惨不忍睹。流水线并行Pipeline Parallelism对互联要求介于两者之间主要是层间的激活值传递。但流水线并行有气泡问题需要配合微批次来缓解。专家并行Expert Parallelism是MoE模型常用的方式对互联要求也很高因为token要路由到不同的专家卡上。实际训练中通常是多种并行策略组合使用。比如一个70B模型可能用8卡张量并行4卡流水线并行2卡数据并行总共64卡。这种规模下NVLink的有无直接决定了方案可行性。4.3 消费级卡多卡方案的现实选择如果你只有4090/5090想做多卡训练现实的选择是第一优先做数据并行避免张量并行。数据并行对互联要求最低PCIe还能凑合。但要注意梯度累积和通信重叠尽量把通信时间藏到计算后面。第二用梯度检查点Gradient Checkpointing换显存。这会增加约30%的计算量但能把显存占用降到原来的1/3左右让更大的模型能塞进24GB/32GB显存。第三考虑ZeRO系列优化。DeepSpeed的ZeRO-2/ZeRO-3能把优化器状态和梯度分片到多卡上降低单卡显存压力。但ZeRO-3的通信量很大PCIe下效率会明显下降。第四如果非要张量并行控制在2卡以内。2卡张量并行的通信量还能接受4卡以上PCIe就扛不住了。实操心得我用两张4090走PCIe 4.0做7B模型的数据并行训练扩展效率大概1.65倍换成两张A100走NVLink同样任务扩展效率1.92倍。卡数越多差距越大。所以消费级卡多卡方案建议不超过4卡再往上不如直接租云上的数据中心卡。5. 实际训练性能与成本核算5.1 典型模型的训练吞吐对比下面这组数据来自我和同行在实际项目中的测试模型是LLaMA架构的7B和13B框架用PyTorch 2.x DeepSpeed精度FP16H100/H200额外测了FP8。测试条件是单卡、batch size调到显存上限的80%、序列长度2048。显卡7B模型吞吐 (tokens/s)13B模型吞吐 (tokens/s)7B QLoRA微调 (steps/s)RTX 4090320015002.8RTX 5090410019503.6A100 80GB480024003.2H100 80GB720036004.1H100 FP8125006200-H200 141GB750038004.3MI300X680034003.9几个观察5090比4090提升约28%和带宽提升幅度基本吻合说明训练场景下带宽是重要瓶颈。A100比5090快约17%但价格是5090的5倍以上。单看吞吐性价比5090明显更高。但A100的80GB显存能跑更大的模型和batch这是5090比不了的。H100比A100快约50%FP8模式下快160%。FP8是H100的杀手锏但需要模型和框架都支持不是所有场景都能用上。H200比H100只快约4%因为架构相同主要提升在显存容量和带宽。但H200能跑H100跑不了的配置比如更大的batch或更长的序列实际价值在“能跑”而不是“跑得快”。MI300X介于A100和H100之间考虑到价格性价比不错但软件适配的隐性成本要算进去。5.2 每小时训练成本核算光看吞吐不够还要算成本。下面按各卡的市场价和功耗估算每小时训练成本电费按1元/度卡按3年折旧每天满载12小时显卡卡价(万)功耗(W)每小时折旧(元)每小时电费(元)合计(元/h)每百万token成本(元)RTX 40901.54501.140.541.680.15RTX 50902.25751.670.692.360.16A100104007.610.488.090.47H1002870021.30.8422.10.85H2003370025.10.8425.90.95MI300X1875013.70.914.60.60这张表说明一个反直觉的结论单看每百万token的训练成本消费级卡反而最低。4090和5090的每token成本只有H100的1/5左右。那为什么大家还要买H100因为消费级卡跑不了大模型。7B模型4090能跑70B模型4090连塞都塞不进去。而且这张表没算多卡扩展效率的损失——4090多卡走PCIe扩展效率低实际成本会上升。另外也没算时间成本——同样一个任务H100集群可能3天跑完4090集群要跑2周这中间的人力成本和机会成本都是钱。所以结论是小模型、个人或小团队、时间不敏感的场景消费级卡性价比无敌大模型、团队协作、赶时间的场景数据中心卡的综合成本更低。5.3 云上租用 vs 自购的决策很多人纠结是买卡还是租云。我的经验是如果每月训练时间超过200小时自购更划算。以4090为例云上租大概2-3元/小时自购1.5万按3年折旧每小时成本1.68元200小时/月的话大概10个月回本。如果训练任务波动大、或者只是短期项目租云更灵活。不用操心机房、供电、散热、运维用完就释放。数据中心卡建议优先租。H100云上租大概15-25元/小时自购28万回本周期很长而且技术迭代快两年后可能就落后了。除非你确定长期有稳定的大规模训练需求否则租比买划算。注意租云卡要注意显存和互联配置有些云厂商的低价H100实例是PCIe版没有NVLink多卡训练效率会差很多。下单前一定要确认互联方式。6. 常见问题与避坑指南6.1 选卡时最容易踩的五个坑坑一只看算力不看显存带宽。训练场景下显存带宽往往比算力更关键。4090的FP16算力是A100的一半左右但实际训练吞吐只有A100的2/3差距主要来自带宽。选卡时带宽和容量要优先看。坑二忽略卡间互联。多卡训练时没有NVLink的卡扩展效率会大打折扣。如果计划多卡互联方式比单卡性能更重要。坑三低估功耗和散热。H100 700W、MI300X 750W、5090 575W这些卡的散热和供电要求很高。一台8卡H100服务器整机功耗可能到6-8kW普通机房根本扛不住。自建集群前一定要确认机房条件。坑四忽视软件生态。MI300X规格很香但ROCm生态和CUDA差距明显。很多自定义算子、训练框架的高级特性在ROCm上可能没有或者有bug。选AMD卡前先确认你的技术栈是否完整支持。坑五买二手矿卡。4090和A100都有大量二手卡流入市场其中不少是矿卡或长时间高负载运行的卡。这些卡的显存和核心可能有隐性损伤跑训练容易出问题。买二手一定要验卡跑压力测试和显存检测。6.2 训练稳定性问题速查现象可能原因排查方法解决方式训练中途loss变NaN显存溢出、精度问题检查显存占用、梯度范数降低batch size、开梯度裁剪、用BF16替代FP16多卡训练速度不升反降通信瓶颈看NCCL日志、测互联带宽换并行策略、开通信重叠、检查NVLink是否启用消费级卡跑几小时后降频散热不足、功耗墙监控温度和功耗改善机箱风道、换更大电源、限制功耗显存够但报OOM显存碎片看显存分配日志设PYTORCH_CUDA_ALLOC_CONF、重启进程数据中心卡报ECC错误显存硬件问题看nvidia-smi的ECC计数联系厂商保修、临时关闭ECC不推荐6.3 几个实用的调优技巧第一用BF16而不是FP16。BF16的动态范围更大不容易出NaN而且A100/H100对BF16有原生支持速度不比FP16慢。4090/5090也支持BF16优先用。第二开Flash Attention。这个对注意力层的加速非常明显尤其是长序列场景。PyTorch 2.x已经内置了Flash Attention一行代码就能开。第三梯度累积配合大batch。显存不够时用小batch加梯度累积等效于大batch。但要注意BatchNorm层的行为会变训练时要调整。第四用torch.compile。PyTorch 2.x的compile功能能把模型编译成更高效的kernel实测有10-30%的加速。第一次编译慢后续训练快。第五监控要到位。用nvidia-smi、nvtop、或者wandb监控GPU利用率、显存、温度、功耗。训练慢的时候先看GPU利用率如果低于80%说明有瓶颈可能是数据加载、通信或者CPU。实操心得我遇到过训练速度只有预期一半的情况排查半天发现是DataLoader的num_workers设成了0数据加载成了瓶颈。GPU利用率一直在40%左右。把num_workers调到8之后利用率直接上到90%以上。这种问题很隐蔽一定要养成看GPU利用率的习惯。7. 我的选卡建议与后续扩展思路聊了这么多最后给一个直接的选卡建议按场景分个人学习、小模型微调7B以下RTX 4090预算够就5090。性价比最高生态成熟踩坑最少。小团队、13B-30B模型微调RTX 5090多卡或者二手A100 80GB。5090显存大一些A100互联好一些看具体需求。中等规模训练30B-70BA100 80GB多卡预算够上H100。这个规模下NVLink是刚需消费级卡基本出局。大模型训练70B以上H100/H200集群或者MI300X如果团队有ROCm经验。这个级别基本是数据中心卡的天下。推理部署为主MI300X值得认真考虑大显存高带宽推理吞吐很香。但要做好软件适配的心理准备。后续如果要做集群扩展有几个方向可以深入一是网络互联多机训练时IB网络和以太网的差距很大二是存储IO大规模训练时数据加载容易成瓶颈需要考虑NVMe缓存或者分布式存储三是调度系统多用户共享集群时需要Slurm或K8s来做资源管理。这些话题每一个都值得单独展开后面有机会再聊。我在实际项目里最大的体会是没有最好的卡只有最合适的卡。选卡之前先想清楚自己的模型规模、训练时长、预算、团队技术栈然后再做决定。盲目追新或者一味省钱最后都可能付出更大的代价。
返回列表