1. 算力账单背后的真实成本结构
1.1 从一张电费单说起
去年帮一个朋友看他那台跑本地大模型的机器,他抱怨说每个月电费比之前多了四百多块,问我是不是被偷电了。我让他把配置报了一下:双路至强金牌 6338,两张 RTX 4090,128G 内存,两块 2T NVMe,外加一个 1200W 的铂金电源。我算了一下,这配置满载功耗大概在 1400W 到 1600W 之间,如果他每天跑 8 小时推理任务,一个月光电费就接近三百块,再加上空调散热,四百多块完全合理。他当时就愣住了,说买卡的时候只算了硬件钱,压根没想过电费这回事。
这件事其实特别典型。现在大家聊 AI 算力,张口闭口都是 GPU 型号、显存带宽、卡间互联,很少有人认真算过一笔账:算力的尽头,可能真的是电费。尤其是当你从“玩一玩”进入“持续跑业务”的阶段,电费会从一个小透明变成每个月都在提醒你存在的固定支出。
1.2 算力成本的三层结构
要理解电费为什么可能成为下一道关卡,得先把算力成本拆开看。我习惯把它分成三层:
- 硬件折旧层:GPU、CPU、主板、内存、存储、电源、机柜、交换机。这部分是一次性投入,按三年折旧摊到每个月。
- 电力与散热层:设备运行耗电,加上空调、风扇、UPS 损耗。这部分是持续支出,且随负载波动。
- 运维与人力层:部署、调优、故障处理、模型更新、数据管理。
大多数人只盯着第一层,因为买卡的时候心疼一次就过去了。但第二层才是真正磨人的地方,它不会一次性让你肉疼,而是每个月都来一刀。而且这一刀的大小,直接取决于你的算力利用率和电价。
1.3 为什么现在电费问题被放大了
以前跑个小模型,一张卡功耗两三百瓦,电费感知不强。现在情况变了:
- 单卡功耗飙升:从 GTX 1080 Ti 的 250W,到 RTX 3090 的 350W,再到 RTX 4090 的 450W,H100 更是到了 700W。单卡功耗翻了两三倍。
- 集群规模扩大:以前一张卡跑一个任务,现在动辄八卡、十六卡甚至整机柜。功耗是线性叠加的。
- 运行时间拉长:以前跑个 demo 几分钟,现在训练一个模型几天几夜,推理服务 7x24 小时在线。
- 散热需求增加:高密度算力意味着高密度发热,空调和散热系统的电费也跟着涨。
这四个因素叠加,电费从“可以忽略”变成了“必须认真对待”。我认识一个做 AI 短剧生成的工作室,他们租了一个小机房放了三台八卡服务器,夏天最热的时候,电费加空调一个月接近一万二,比房租还贵。
2. 不同规模下的电费实测与估算
2.1 个人开发者:一张卡的真实开销
先看最小规模。假设你有一台个人工作站,配置如下:
| 部件 | 型号 | 典型功耗 |
|---|---|---|
| GPU | RTX 4090 | 450W |
| CPU | i9-13900K | 125W(满载 250W) |
| 主板+内存+存储 | - | 60W |
| 电源损耗 | 铂金 94% | 约 5% |
| 合计 | - | 约 700W |
如果每天跑 6 小时推理或微调,一个月 30 天,用电量是 0.7kW × 6h × 30 = 126 度。按居民电价 0.55 元/度算,一个月约 69 元。加上空调散热,夏天可能翻倍到 140 元左右。
这个数字看起来不大,但如果你把运行时间拉到 12 小时,或者换成双卡配置,电费就奔着三百去了。对于个人开发者来说,这不是一笔可以完全无视的钱。
2.2 小团队:八卡服务器的电费账
再往上走一个量级。一台典型的八卡 A100 服务器:
| 部件 | 数量 | 单功耗 | 总功耗 |
|---|---|---|---|
| A100 80G | 8 | 300W | 2400W |
| CPU | 2 | 200W | 400W |
| 内存+存储+主板 | - | - | 200W |
| 风扇+电源损耗 | - | - | 300W |
| 合计 | - | - | 约 3300W |
满载运行一小时 3.3 度电。如果 7x24 小时跑推理服务,一天 79 度,一个月 2376 度。按商业电价 0.8 元/度算,一个月电费 1900 元。再加上机房空调,制冷功耗通常是 IT 功耗的 0.6 到 1.0 倍,取 0.8 算,空调一个月又要 1500 元左右。合计电费支出约 3400 元/月。
这还没算上如果机房 PUE 偏高的情况。有些小机房 PUE 能到 1.8 甚至 2.0,那电费直接翻倍。
2.3 中大型集群:电费成为主要运营成本
到了几十卡、上百卡的规模,电费就彻底翻身做主人了。以 64 卡 H100 集群为例:
| 项目 | 功耗 |
|---|---|
| H100 单卡 | 700W |
| 64 卡 GPU 总功耗 | 44800W |
| 配套 CPU+内存+存储 | 约 8000W |
| 网络交换机 | 约 2000W |
| 电源损耗 | 约 3000W |
| IT 总功耗 | 约 57800W |
| 空调制冷(PUE 1.3) | 约 17340W |
| 总功耗 | 约 75140W |
满载一小时 75 度电,一天 1800 度,一个月 54000 度。按工业电价 0.6 元/度算,一个月电费 32400 元。一年就是将近 39 万。这个数字已经超过了很多小团队一年的硬件采购预算。
注意:这里的电价按 0.6 元/度估算,实际工业电价因地区差异很大,有的地方能到 0.4 元,有的地方超过 1 元。选址对电费的影响极大。
2.4 电费占比的临界点
我整理了一个简单的对比表,看看不同规模下电费在总成本中的占比:
| 规模 | 硬件月折旧 | 电费月支出 | 电费占比 |
|---|---|---|---|
| 个人单卡 | 约 1200 元 | 约 100 元 | 7.7% |
| 小团队八卡 | 约 25000 元 | 约 3400 元 | 12% |
| 中型 64 卡 | 约 200000 元 | 约 32400 元 | 14% |
| 大型 512 卡 | 约 1600000 元 | 约 260000 元 | 14% |
可以看到,随着规模扩大,电费占比稳定在 12% 到 15% 之间。这个比例看起来不算致命,但关键在于:硬件折旧是固定的,电费是浮动的。如果你的算力利用率不高,电费占比会更高;如果你的电价高,电费占比也会更高。而且电费是每个月都要掏的现金,对现金流的影响比一次性硬件投入更直接。
3. 降低电费支出的实操路径
3.1 硬件选型:能效比优先
买卡的时候不能只看算力峰值,要看每瓦算力。我对比过几款常见卡在推理场景下的能效:
| 显卡 | 典型功耗 | FP16 算力 | 每瓦算力 |
|---|---|---|---|
| RTX 3090 | 350W | 71 TFLOPS | 0.203 |
| RTX 4090 | 450W | 165 TFLOPS | 0.367 |
| A100 80G | 300W | 312 TFLOPS | 1.04 |
| H100 | 700W | 989 TFLOPS | 1.41 |
从每瓦算力看,H100 是最优的,A100 次之,消费级卡垫底。但消费级卡便宜,所以要看你的预算和运行时长。如果你只是偶尔跑跑,消费级卡的总拥有成本可能更低;如果你是 7x24 小时跑,专业卡的能效优势会逐渐摊平硬件差价。
实操心得:我试过用 RTX 4090 跑 7x24 小时的推理服务,电费确实比 A100 高不少。后来换成 A100 之后,虽然卡贵了,但每个月电费省下来的钱,两年左右能把差价补回来。所以如果你的业务是持续性的,优先考虑能效比高的专业卡。
3.2 功耗调优:让 GPU 少喝点电
GPU 不是非得跑在满功耗。通过调整功耗墙,可以在损失少量性能的情况下大幅降低功耗。以 RTX 4090 为例:
# 查看当前功耗限制 nvidia-smi -q -d POWER # 将功耗限制设为 300W(默认 450W) sudo nvidia-smi -pl 300实测下来,4090 从 450W 降到 300W,推理性能大约下降 10% 到 15%,但功耗降低了 33%。每瓦算力反而提升了。对于推理任务来说,这个 trade-off 非常划算。
对于 A100,也可以用类似的方式:
# 设置 A100 功耗上限为 250W sudo nvidia-smi -pl 250注意:功耗墙设置需要 root 权限,且不同型号的允许范围不同。设置前先查清楚你的卡支持的最低功耗是多少。另外,功耗墙设置在重启后会失效,需要写进开机脚本。
3.3 调度策略:让算力在电价低的时候跑
如果你有自己的机房或者能控制运行时间,可以利用峰谷电价差来省钱。很多地区的工业电价峰谷差能达到 0.4 元/度以上。
具体做法:
- 批量任务安排在谷电时段:比如晚上 10 点到早上 6 点,电价通常是峰电的 50% 到 60%。
- 推理服务做弹性伸缩:低峰时段减少实例,高峰时段再扩容。
- 训练任务用抢占式调度:把非紧急的训练任务标记为可中断,在电价高的时候自动暂停,电价低的时候恢复。
我用过一个简单的调度脚本,核心逻辑就是根据时间段决定是否启动训练任务:
import datetime import subprocess def is_valley_hour(): now = datetime.datetime.now() hour = now.hour # 假设谷电时段为 22:00 到 06:00 return hour >= 22 or hour < 6 if is_valley_hour(): subprocess.run(["python", "train.py"]) else: print("当前为峰电时段,训练任务暂停")这个脚本很粗糙,但思路是对的。实际生产中可以用更完善的调度系统,比如结合 Kubernetes 的 CronJob 或者专门的算力调度平台。
3.4 散热优化:别让空调吃掉你的利润
散热是电费里的隐形杀手。我见过太多机房,IT 设备功耗 10kW,空调功耗 8kW,PUE 直接干到 1.8。其实很多散热优化手段成本不高,效果却很明显:
- 冷热通道隔离:把机柜面对面排列,形成冷通道和热通道,避免冷热空气混合。这个改造花不了多少钱,但 PUE 能降 0.2 到 0.3。
- 提高回风温度:很多机房空调设得太低,其实服务器进风温度在 18 到 27 度之间都能正常工作。把空调温度调高几度,压缩机功耗能降不少。
- 使用变频空调:定频空调频繁启停,能耗高。变频空调根据负载调节功率,长期看更省电。
- 自然冷却:如果所在地区气候凉爽,可以考虑新风系统,在室外温度低的时候直接引入冷空气。
实操心得:我给一个小机房做过冷热通道隔离,材料费不到两千块,但每个月空调电费省了四百多。不到半年就回本了。这个投入产出比非常高。
4. 电费约束下的算力选型与架构设计
4.1 算力约束下的资源配置建模思路
当电费成为约束条件时,算力配置就不能只看峰值性能了。我习惯用一个简单的模型来评估:
总拥有成本 = 硬件折旧 + 电费 + 运维 + 场地
其中电费 = 功耗 × 运行时间 × 电价 × PUE。
这个模型里,功耗和运行时间是可控的,电价和 PUE 是半可控的。所以优化方向就很明确:
- 降低单卡功耗(功耗墙、能效比选型)
- 降低运行时间(调度、弹性伸缩)
- 降低电价(选址、峰谷套利)
- 降低 PUE(散热优化)
4.2 不同精度对算力和功耗的影响
精度选择直接影响算力需求和功耗。我整理了一个对比:
| 精度 | 显存占用 | 算力需求 | 典型功耗 | 适用场景 |
|---|---|---|---|---|
| FP32 | 最高 | 最高 | 最高 | 科学计算、高精度训练 |
| FP16 | 中等 | 中等 | 中等 | 常规训练、推理 |
| INT8 | 较低 | 较低 | 较低 | 推理加速 |
| INT4 | 最低 | 最低 | 最低 | 边缘推理、大模型量化 |
从 FP16 降到 INT8,显存占用减半,算力需求降低,功耗也跟着降。对于推理任务来说,INT8 量化通常能保持 95% 以上的精度,但功耗能降 30% 到 40%。这个账很划算。
注意:量化不是万能的。有些任务对精度敏感,量化后效果下降明显。建议先在小规模上测试,确认精度损失可接受后再全面推广。
4.3 异构算力调度的价值
不是所有任务都需要 GPU。CPU、NPU、甚至专用加速卡都可以承担一部分算力。异构算力调度的核心思想是:让合适的硬件做合适的事。
比如:
- 数据预处理用 CPU,省 GPU 功耗
- 小模型推理用 NPU,能效比更高
- 大模型训练用 GPU,发挥并行优势
我见过一个团队用 OpenFuyao 构建异构算力调度平台,把 CPU、GPU、NPU 统一管理,根据任务类型自动分配。他们的电费比之前纯 GPU 方案降低了 25% 左右,因为很多轻量任务不再占用 GPU 了。
4.4 本地部署 vs 云算力的电费对比
很多人纠结是本地部署还是用云算力。从电费角度看:
| 方案 | 电费承担方 | 优点 | 缺点 |
|---|---|---|---|
| 本地部署 | 自己 | 长期成本低、数据可控 | 前期投入大、运维复杂 |
| 云算力 | 云厂商 | 按需付费、无运维 | 单价高、长期成本可能更高 |
关键看使用率。如果你的 GPU 利用率超过 40%,本地部署通常更划算;如果低于 20%,云算力更经济。电费在这个决策中扮演重要角色,因为本地部署的电费是固定支出,而云算力的电费已经包含在单价里了。
实操心得:我建议先用云算力跑一段时间,记录实际使用率和任务特征,再决定是否本地部署。不要一上来就买卡,很容易买完发现利用率太低,电费白交。
5. 常见问题与排查技巧实录
5.1 电费异常排查速查表
| 现象 | 可能原因 | 排查方法 | 解决思路 |
|---|---|---|---|
| 电费突然翻倍 | GPU 未进入休眠 | nvidia-smi 查看功耗 | 设置功耗墙、启用持久模式 |
| 空调电费过高 | PUE 偏高 | 测量进风回风温度 | 冷热通道隔离、调高空调温度 |
| 待机功耗高 | 电源效率低 | 查看电源铭牌 | 换铂金或钛金电源 |
| 峰谷电费差不大 | 未利用谷电 | 查看电费单 | 调整任务调度时间 |
| 单卡功耗波动大 | 任务负载不均 | 监控 GPU 利用率 | 优化批处理大小 |
5.2 几个容易踩的坑
坑一:只看显卡功耗,忽略整机功耗。很多人算电费只算 GPU,实际上 CPU、内存、主板、风扇、电源损耗加起来也不少。一台八卡服务器,GPU 功耗 2400W,整机功耗可能到 3300W。算电费的时候要把整机功耗算进去。
坑二:忽略空调电费。机房空调的功耗经常被低估。实际上,制冷功耗通常是 IT 功耗的 0.6 到 1.0 倍。如果你的 PUE 是 1.8,意味着每花 1 块钱 IT 电费,就要花 0.8 块钱空调电费。这个数字很吓人。
坑三:功耗墙设置后忘记持久化。nvidia-smi -pl 设置重启后会失效。我见过有人设了功耗墙,结果机器重启后忘了重新设置,白跑了好几天满功耗。建议写进 systemd 服务或者开机脚本。
坑四:忽略电源效率。电源在 50% 负载时效率最高,满载时效率下降。如果电源选得太大,长期在低负载运行,效率反而低。选电源的时候要算好整机功耗,留 20% 到 30% 余量就行,不要盲目上大电源。
坑五:量化后不做精度验证。INT8 量化确实省电,但有些任务精度损失很大。我见过一个团队把模型量化后直接上线,结果效果下降明显,又回滚到 FP16,白白折腾了一周。量化后一定要做 A/B 测试。
5.3 监控与告警建议
电费问题最好是提前发现,不要等账单来了才后悔。建议做以下监控:
- GPU 功耗监控:用 nvidia-smi 或者 DCGM 采集每张卡的功耗,设置阈值告警。
- 整机功耗监控:用智能 PDU 或者带电量统计的电源,采集整机功耗。
- 温度监控:监控进风温度、回风温度、GPU 温度,异常时告警。
- 电费预估:根据实时功耗和电价,估算当月电费,超预算时告警。
我用过一个简单的方案:用 Prometheus 采集 GPU 功耗,Grafana 做面板,设置当月电费预估超过预算时发邮件告警。这套方案成本很低,但效果很好,能让你在电费失控之前采取措施。
6. 一些个人体会
电费这个问题,我一开始也没太在意。直到有一次帮朋友算账,发现他那台机器一年电费够买一张新卡了,我才意识到这个问题的严重性。后来我自己做本地部署的时候,就特别关注能效比和功耗调优。
我的经验是:如果你的算力是持续运行的,电费一定会成为你不得不面对的问题。与其等到账单来了才想办法,不如在选型和架构设计阶段就把电费纳入考量。选能效比高的卡、设置合理的功耗墙、优化散热、利用峰谷电价,这些手段加起来,能把电费降低 30% 到 50%。
还有一点:不要为了省电费而牺牲太多性能。我见过有人把功耗墙设得太低,结果任务跑得慢如蜗牛,虽然电费省了,但时间成本更高。省电费的前提是不影响业务,这个平衡点需要自己根据实际情况去找。
最后分享一个小技巧:如果你不确定功耗墙设多少合适,可以从默认功耗的 70% 开始试,跑一下你的典型任务,看性能下降多少。如果下降在 10% 以内,就继续用;如果下降太多,就往上调。多试几次就能找到最适合你任务的功耗设置。