算力选型避坑指南:显存、带宽、云与自建成本精算
算力选型这件事最近两年我见了太多拍脑袋的决策。有人拿着跑大模型的预算去买了游戏显卡有人为了省几块钱选了老一代云实例结果训练直接OOM显存溢出还有人把H800当成A100买回来才发现带宽砍半——这些坑本质上都是没把算力选型当成一门需要精算的工程问题。今天这篇东西我就把从学生党到企业CTO这几个阶段最常见的选型场景、参数逻辑和真实成本账全部摊开来讲清楚尽量做到每个结论背后都有依据你可以直接对照自己的情况去套用。这篇主要是写给三类人看正在用消费级显卡跑实验的在校生和独立开发者需要为公司搭建第一套训练集群的技术负责人以及预算有限但又想把每一分钱花在刀刃上的小团队CTO。不会讲太深的分布式原理重点放在选型决策本身——怎么把业务需求翻译成硬件规格怎么在云上和自建之间做成本测算怎么避开供应商那些包装精美的性价比陷阱。1. 算力选型的核心思路先搞清楚你的真实需求1.1 算力选型到底选的是什么很多人在第一步就走错了一上来就问买A100还是H100这等于还没看病先惦记买什么药。算力选型的本质是把你业务场景里的计算需求映射到硬件资源和采购模式上。这个映射关系主要包含四个维度计算精度、显存容量、数据传输带宽、以及持续运行时长。这四个维度决定了你需要的硬件型号也直接决定了你的计费模型。举个例子你的任务是微调一个7B参数的大模型那你的显存需求大概在40GB到60GB这个区间取决于量化方式和序列长度这时候80GB显存的A100/H100就是合理选择。但如果你只是做CV推理、数据预处理管道那8GB到16GB的显存就绰绰有余强行上A100纯属浪费。1.2 核心指标算力、显存、带宽和利用率这里先用大白话把几个关键指标解释一遍后面所有选型决策都跟它们有关算力FLOPS芯片每秒能做的浮点运算次数分FP32、FP16、BF16、INT8等精度。跑深度学习一般盯FP16和BF16跑科学计算盯FP32或FP64。显存容量模型权重、激活值、梯度都要住在显存里显存不够直接OOM够不够决定了你能不能跑某个模型。显存带宽显卡从显存里读数据的速度。大模型推理非常依赖带宽很多场景卡在带宽而不是算力。利用率MFUModel FLOPs Utilization实际有效算力除以理论峰值算力。90%左右是很健康的低于30%说明你在花钱喂蚊子。这四个指标不能孤立看要联动起来评估。比如一张RTX 4090的FP16算力约82.6 TFLOPS其实和A100约77.97 TFLOPS相近但显存带宽差了近一半4090是1008GB/sA100是2039GB/s所以在跑大模型预训练时4090明显吃亏而在小batch推理任务里又显得很能打。这就是为什么唯算力图是选型里最幼稚的做法。1.3 从需求到规格的拆解方法我把拆解需求的过程整理成一个三步走的方法你照着做就行第一步估算显存需求。你的模型参数量、batch size、序列长度、是否用AdamW优化器这四个因素直接决定显存占用。一个粗略的公式是训练时显存约为模型参数量的16到20倍混合精度优化器状态。所以7B模型微调至少要70GB显存级别才舒服175B这种级别单卡基本不用想。这里给个粗略的显存估算方法。以训练为例模型权重参数量 × 2字节FP16梯度同样参数 × 2字节优化器状态AdamWfp32主权重 fp32动量 fp32方差大约 参数量 × 12字节激活值看batch size和序列长度这个波动最大也是最容易被新手忽略的把这些相加你就知道单卡训练至少需要多少显存了。推理阶段相对好办模型权重 KV Cache7B模型加4096上下文大概占14GB到20GB之间。第二步估算算力需求。如果你是要做预训练那你的算力瓶颈通常是墙钟时间一个训练周期要跑多久。算力需求和总FLOPs直接挂钩大模型预训练总计算量大约是6 × 参数量 × 训练token数这是一个业界共识的经验法则。比如7B模型训1万亿token总FLOPs就是6 × 7e9 × 1e12 4.2e22单卡A100每秒贡献约3e14 FLOPs的实际有效算力MFU按50%算算下来单卡要跑1.4e8秒约4.4年所以大家才说预训练必须多卡并行。第三步估算带宽需求。如果你的业务是数据密集型大量小batch推理、大模型生成带宽优先级要高于算力。如果是计算密集型蒸馏、微调大batch训练带宽压力相对小一些。判断方法很简单把一次前向传播的数据量算出来除以你的目标延迟看带宽够不够。不够就得换高带宽型号或者干脆换卡。2. 不同阶段的选型方案从学生党到企业级2.1 学生党和个人开发者低成本起步的经典组合如果你预算有限几千块主要做的是CV小模型、NLP基础实验、或者给大模型做Prompt调优那就没必要追求专业计算卡。消费级显卡里RTX 4090是最强单卡选择前提是你能接受它的功耗和噪音24GB显存足够跑7B模型的推理和LoRA微调。如果预算再低二手RTX 3090或者A5000也可以考虑24GB显存确实是硬通货。这个阶段的核心策略不是买多强而是怎么蹭免费的。Kaggle、Colab这些平台提供的免费GPU虽然不是顶级硬件但跑个BERT微调、跑个ResNet实验完全够用了。我的建议是学生党尽量把本地卡免费云端组合起来用日常小实验用本地卡跑大的训练任务排队等云端的免费额度。这套组合的年度成本控制在3000到5000元以内体验不会比动辄几万块的服务器差太多。2.2 创业团队灵活性优先的选型策略团队到了3到10个人开始有稳定的训练任务和初步的推理服务需求这时候就要考虑怎么算都不亏的方案了。小型团队最常见的死法是花大几十万买了两张A100整机结果用完率不到30%剩余时间都在闲置。这时候更优解其实是云上的按需实例加抢占式实例混合使用。举个例子你有一个BERT级别的模型需要每天跑一次增量训练耗时大概2小时另外还有一个小规模的推理服务QPS每秒请求数需求不到100。比较合理的方案是训练任务用抢占式实例Spot实例价格大概按需的20%到30%中断了重启就是反正任务可断点续跑。推理服务用按需实例搭建小规模集群配一下自动扩缩容高峰期顶住低峰期降到零。这个组合的逻辑很清楚训练任务容忍中断推理服务要求稳定。把两种工作负载放到合适的计费模式下成本能比全部按需省40%到60%。很多创业团队一开始不懂这个道理结果全按按需买了月账单四位数起步业务还没跑通就烧掉了大笔钱。2.3 中型企业和CTO视角平衡性能与预算到了这个阶段公司业务开始稳定数据量上来了模型也从单卡训练变成了需要多卡分布式训练的规模。这时候你需要在自建集群和云上长租之间做一次彻底的测算。我给一个通用的测算框架这是很多中型企业直接拿去用的版本自建集群成本包括硬件采购成本按GPU数量算单卡约5到8万元含整机、CPU、内存、存储等配套按折旧三年算机房托管成本机柜、电力、带宽每年大约3到5万元/柜运维人力成本至少需要0.5到1个全职运维薪资按25到40万/年算扩容周期成本从下单到上架一般要2到4周。云上集群成本包括实例费用按GPU型号和计费方式算包年包月一般能打5到7折存储费用对象存储加文件存储按存量算网络流量费用内网免费外网按GB计费灵活性溢价随时扩缩容按天甚至按小时的弹性。判断的临界点大致是如果你的GPU利用率能稳定到60%以上且未来12个月内算力需求不会剧烈波动自建在第三年开始回本。但如果你业务还在探索期模型规模和训练频率都不确定云上一定是更安全的选择。不要小看灵活性的价值它本质上是一张期权能让你在业务不确定时避免重资产套牢。2.4 大型企业规模化与合规要求到了大型企业这个级别单纯比价格已经没有意义了更重要的是计算效率和管理纵深。这时需要考虑的是多集群调度不同业务线搜推广、大模型基座、风险控制需要不同的算力池统一的资源调度平台成了必需品。合规和审计政府、金融等行业对数据不出域有硬性要求这基本排除了公有云方案必须自建或者私有化部署。异构算力管理你手上可能有几千张A100、几百张H800、还有一些国产加速卡如何让这些异构资源像一台机器一样被调度这是平台工程团队的活儿。CTO的视角不是我买多少张卡而是我怎么建一套让卡不闲着的体系。很多大公司卡买了不少但MFU只有20%多等于每天几万块在烧水。与其急着扩容不如先把调度、弹性、监控这套水面下的体系建好。3. GPU选型细节核心参数的解读与性价比分析3.1 GPU关键参数怎么读GPU的选型参数比一般人想的复杂我单独解释几个容易踩坑的细节。先说FP16算力。GPU白皮书里通常标Tensor Core FP16算力这个数值是在稀疏化条件下测出来的即权重有一半是零时实际稠密计算时数值要除以2。所以很多人在对比规格表时被数字骗了——标称200 TFLOPS的卡实际稠密FP16可能只有100 TFLOPS。再说显存带宽。大模型推理的瓶颈通常不在算力而在带宽。你算一下推理一个token需要读取多少权重数据就能明白每生成一个token需要把整个模型的权重从显存读一遍。所以模型越大带宽越重要。H100的带宽是3.35TB/s比A100的2TB/s快了近70%这也是为什么H100在推理场景里比A100优势明显的原因。另外提一句带宽要看实际值而不是标称值同一型号的卡在不同主板上表现也有差异。最后说NVLink。多卡通信是分布式训练的命门。如果你有跨节点通信需求NVLink带宽决定了训练效率。单张卡跑不通大模型的场景下多卡互联的能力甚至比单卡算力更关键——这解释了很多团队为什么宁可买8张A100组成的整机也不买性能更强但互联能力弱的散卡。3.2 主流GPU型号的性价比对比表我整理了一张当前市面上主流计算GPU的性价比对照表按训练性价比和推理性价比分开看。价格取的是国内常见渠道的市场均价会随行情波动但相对关系基本稳定型号显存FP16稠密算力(约)显存带宽单卡价格(约)适合场景RTX 409024GB82 TFLOPS1008 GB/s约1.5万元个人开发、小规模推理、微调A100 80G80GB312 TFLOPS2039 GB/s约7-8万元预训练、微调、多卡集群H100 80G80GB990 TFLOPS(稠密约495)3350 GB/s约20-25万元大规模集群、高端训练L40S48GB362 TFLOPS(稠密约181)864 GB/s约10万元推理训练混合、中小规模A800 80G80GB与A100类似与A100类似约5-6万元替代A100的合规方案注意这张表里A100算力写的是312 TFLOPS前提是开启了Tensor Core稀疏化实际稠密计算大概打对折所以在估算训练耗时时要留出余量。H100同理标称值很夸张但真跑起来MFU能到50%就算调度很好了。3.3 显存、算力、带宽怎么搭配才不浪费选卡不是单独看一个参数而是看短板。这里我特别强调一个原则瓶颈平均化。预算有限时你要让显存、算力、带宽三个维度都接近饱和而不是某个维度过强其他维度拖后腿。举两个反面案例第一个做长文本推理买了A100。A100算力强带宽高但你的序列长度可能只有512并发不超过16这时候单卡能同时服务很多路请求但大部分算力其实闲着利用率上不去。更划算的是用L40S这类中等算力高显存的卡或者直接用4090组合把成本摊薄。第二个做大规模训练却只看显存容量。你选了A800 80GB但训练脚本没有做梯度累积、没有开混合精度结果显存占用只有20GB剩下60GB在睡觉。这跟选卡没关系纯粹是工程问题但很多团队却误以为换更贵的卡能解决问题。一句话总结先解决利用率问题再考虑升级硬件。硬件是最后的瓶颈不是第一块多米诺骨牌。4. 云算力 vs 自建机房这笔账怎么算才不亏4.1 云上三种计费模式的精算逻辑公有云的GPU计费模式本质上就三种按需、竞价Spot、包年包月或预留。我逐一说清楚每种模式背后适合什么场景按需计费按小时计价用一小时付一小时钱随时释放。适合任务周期不确定、需要临时大量算力的时候。缺点是单价最贵大概是包年的2到3倍。如果一直在用按需实例月账单通常高得让人肉疼。竞价实例价格浮动通常按需的20%到30%但有随时被回收的风险。适合可中断任务——批处理、离线训练、数据清洗。不适合在线服务。用好竞价的诀窍是断点续跑。Checkpoint不停保存被回收了继续从最近一次保存的地方跑整体成本能压到很低。包年包月/预留实例一次性付几个月到几年的费用换取较大的折扣。适合长期稳定的基础算力。这个模式的好处是成本确定坏处是没弹性——如果用量估高了你就是白白花钱。我见过很多团队的做法是混合用基础容量用包年兜底波峰用按需补充波谷用竞价填满。三层漏斗结构成本最优化。这套做法比单纯按需或者单纯包年至少省30%。4.2 自建机房的隐性成本自建机房的显性成本容易算但隐性成本才是真正的坑电力GPU服务器功耗极高单机600W到满配8卡可能到3kW以上。机柜供电、散热、UPS不间断电源都要跟上。故障率GPU是电子元件里故障率偏高的品类。每年10%的卡可能需要返修一块卡修一个月你的训练任务就得停一个月。备件缓冲你需要额外备10%的卡来应对故障这部分成本要摊进预算。折旧和换代GPU两年一代更新三年后残值可能只剩三折。而你的采购是按新卡全价计算的。这些隐性成本加起来会让自建的真实总成本比你预想的HR采购报价高出30%到50%。大家都在说自建省钱实际上是小规模自建一点都不省。省钱的临界点通常在上百卡规模才开始显现且要配合每年70%以上的实际利用率。4.3 混合云的架构思考现实中的最优解经常不是二选一而是混合云稳定的核心容量自建或者长期包年弹性部分用公有云按需和竞价兜底。这样设计背后是有讲究的核心业务在线推理要求稳定性放在自建或者长期包年的池子里不担心被回收。弹性业务训练、数据处理、爬虫放在竞价实例上出问题了重跑就是。突发业务节假日流量高峰、突击实验用按需实例顶上用完即走。混合云架构最适合那些业务波动明显但又有稳定底盘的中型团队。我见过很多创新团队实际就是这么干的每次只向老板申请小预算搭基础集群把大头消耗用云上的竞价实例来处理年底一算总账节省幅度非常可观。5. 采购渠道与省钱策略真正能省钱的实操技巧5.1 大厂渠道 vs. 渠道商价格差异怎么来的买GPU有两个主流渠道直接通过云厂商公有云实例采购或者通过系统集成商/设备商买物理机。两者的价格逻辑完全不同。云厂商的报价相对透明但隐藏成本也多流量费、存储费、管理费、支持的附带服务加在一起才是真实账单。我建议你关注每月的账单明细通常你会发现最大的成本不是GPU小时费而是数据读出费和快照存储费。设备商渠道的价格空间相对大特别是一次性买几十卡的时候。通常有这些谈判空间整机搭售买服务器配套的CPU、内存、硬盘时价格可以整体压。保修年限从一年延到三年表面贵一点但折算下来划算。赠送服务免费帮忙部署CUDA环境、优化驱动这类技术支持省去你需要单独请人的成本。样机试用要求对方提供样机跑你的基准测试不达目标不付款。不要直接问销售你们多便宜这样显得外行。正确姿势是拿你跑过的精度数据和性能数据去对比让销售提供达到目标吞吐的配置方案再基于这个方案去谈总价和交付周期。5.2 竞价实例的正确打开方式竞价实例是云上省钱的大杀器但用不好就变成了反复重跑的浪费。我总结三个实用经验开启自动Checkpoint。所有任务必须能断点续跑中断后重新拉起时先加载最近一个Checkpoint。优先选择支持稀疏实例的型号。某些云厂商的竞价池在非高峰时段夜里、周末有大量闲置价格会低到离谱。对竞价实例做梯度式报价。你设一个上限价比如按需的60%当市场价低于这个线时自动摸到底部高于这个线就不买。这样能在稳定性和成本之间找平衡。我实测过一个常规BERT模型的增量训练按需跑要花150元/小时用竞价实例在非高峰时段只要35元左右一天跑下来省三分之二感觉非常爽。5.3 省钱不能牺牲的底线有人为了省钱选无保障的渠道买了水卡翻新、超频改型号的卡回来结果各种跑飞和崩溃最后得不偿失。这里给几条硬底线坚决不接受超频卡冒充原厂卡。跑深度学习对稳定性要求极高超频卡的崩溃率远高于原厂。所有卡必须做72小时持续烤机测试。在高负载下连续跑三天出问题的卡直接退。注意保修条款里的人为损坏范围。很多渠道只保正常使用损坏进水、烧卡等场景不保验收时要盯着细则。别只看价格要算生命周期成本。便宜5000块但只能用一年和贵一点能用三年账其实是后者划算。这些底线不是任何时候都成立但至少能帮你避免最糟糕的采购决策。6. 常见选型误区与避坑经验6.1 我踩过的几个坑分享三个真实踩坑的案例希望你能绕着走。第一个坑买了一堆K80当训练主力。2019年的时候被便宜冲昏了头买了四张二手K80跑图像分类。结果显存只有12GBFP16性能几乎为0跑个稍微大的模型就撑不住。后来才明白训练领域的老卡不适合跑现代框架它们只能干点推理的杂活。第二个坑为了省钱在云上买入门款GPU。曾给一个客户搭推理集群他们选了某云最便宜的T4结果并发一上来就OOM、延迟飙升。后来换成了L4和L40S的混合单卡成本多付了30%但支撑的任务量翻了四倍整体成本反而低了。第三个坑低估了数据传输成本。有一个月我们把训练数据存在对象存储里然后每次训练任务都从对象存储把数据拉到GPU实例上。结果那个月的账单里数据读取费占了将近一半。后来改成内网缓存加快照成本直接降了80%多。这些踩坑背后都有一个共同逻辑只看表单参数不看真实使用场景不把配套成本算进总账。6.2 问题排查思路速查表如果你在选型或使用中遇到问题可以对照这张表快速定位方向症状可能原因排查优先级建议方案大模型训练OOM显存不足或batch过大1. 看显存监控 2. 调小batch梯度累积、混合精度、换大显存卡推理吞吐低带宽不足或并发配置不当1. 测带宽 2. 看吞吐曲线升带宽、加并发或换高带宽卡训练速度上不去MFU低算力浪费1. 开混合精度 2. 查数据加载调I/O管道、增大batch、检查卡间通信云账单异常高数据读出费或闲置实例1. 查账单明细 2. 看实例运行记录设置预算告警、清理闲置实例、改用竞价多卡扩展性差通信瓶颈1. 查NVLink状态 2. 看通信占比换整机、调整分布式策略6.3 选型后的验收与复盘选型结束不是终点验收和复盘才决定了这个决策到底值不值。建议按这个节奏走第一周做压力测试。用你的真实业务脚本把卡的算力、显存、带宽全部压到峰值跑72小时。有任何一次崩溃、报错、性能掉点都要记录下来。第一个月做利用率复盘。统计这个月内GPU平均利用率、显存平均占用率、训练任务平均排队时间。如果利用率低于30%说明你的资源规格定高了如果排队时间超过一天说明容量不够。每个季度做一次容量规划对齐。模型在变大数据在变多你的算力需求是动态的。跟业务负责人坐下来对齐未来三个月的计划再决定这个季度是扩容还是收缩。选型本身不是一次性决策而是持续校准的过程。好的CTO不是选型选得准而是建立了一套持续校准的机制让算力永远和业务同步。最后分享一个我自己的体会算力选型这个领域坑永远踩不完但最核心的心法就一条——先算后买先测后换。所有看起来省钱的方案都要用真实运行数据去验证所有听起来高大上的参数都要拉到你的业务场景里跑一遍看看。数据不会骗你但它只在你有意识地收集时才能发挥作用。希望这篇能把你的第一轮选型成本降下来至于后续的优化空间那是另一篇文章的故事了。