一、功耗基础:GPU功耗的物理本质与关键指标(TDP、TGP、瞬时功耗)

各位同学,咱们今天聊聊GPU功耗这件事。说实话,功耗问题是我这些年做架构设计时最头疼、也最绕不开的话题。你想想看,一块GPU芯片,性能再强,如果功耗压不住,那就是一块废铁。我见过太多项目,前期只顾堆算力,最后散热搞不定,只能降频跑,白白浪费了设计心血。

1.1 功耗的物理本质:能量去哪儿了?

GPU功耗,说白了就是芯片在工作时消耗的电能。这些电能大部分转化成了热量。嗯,这里要注意,不是所有电能都变成热量,但99%以上确实是。我经常跟团队说一句话:「你给GPU喂多少电,它就得吐出多少热,这是物理定律,逃不掉的。」

从物理层面看,GPU功耗主要来自三个部分:

  • 动态功耗:这是大头,占70%-80%。每次晶体管开关,电容充放电,都会消耗能量。公式是 P = αCV²f,α是翻转率,C是负载电容,V是电压,f是频率。我在项目中遇到过,光是把电压从1.0V降到0.9V,功耗就能降将近20%。
  • 静态功耗:也叫漏电流功耗。晶体管关断时,总会有微弱的电流漏过去。工艺越先进,漏电越严重。7nm以下制程,静态功耗占比能到20%以上。
  • 短路功耗:开关瞬间,PMOS和NMOS同时导通,形成短暂的短路电流。这部分占比很小,通常忽略不计。

核心观点:动态功耗是GPU功耗优化的主战场。降低电压、降低频率、减少不必要的翻转,是三大法宝。但要注意,电压和频率不是随便降的,降多了性能就崩了。

1.2 TDP:热设计功耗,散热器的「设计基准」

TDP,全称Thermal Design Power。很多人以为TDP就是GPU的实际功耗,其实不是。TDP是给散热系统设计用的参考值。它代表的是:在典型负载下,GPU产生的热量需要被散热器带走的能力。

我个人习惯把TDP理解为「散热器的设计目标」。比如一块GPU标称TDP 250W,意思是你得配一个能散掉250W热量的散热器,才能保证它在典型场景下不降频。

但这里有个坑——TDP不是最大功耗。我见过不少工程师,看到TDP 250W,就以为GPU最多只吃250W。错了。实际跑起来,瞬时功耗可能冲到300W甚至更高。我曾经在测试一个AI训练场景时,GPU的瞬时功耗飙到了TDP的1.4倍,散热器直接报警。

避坑指南:设计散热系统时,不要只看TDP。我建议至少留出20%的余量。如果你做的是服务器级产品,余量要更大,30%-40%都不为过。

1.3 TGP:总图形功耗,更真实的「功耗账本」

TGP,Total Graphics Power。这个指标比TDP更贴近实际。它包含了GPU核心、显存、电压调节模块等所有图形相关组件的总功耗。NVIDIA从RTX 30系列开始大力推广TGP,原因很简单——TDP被厂商玩坏了。

你想想看,以前厂商报TDP,有的报核心功耗,有的报整卡功耗,标准不统一,用户根本没法比。TGP的出现,算是把账算清楚了。比如RTX 4090的TGP是450W,这450W就是整张显卡在典型游戏负载下的总功耗。

指标 含义 典型用途 我的经验
TDP 热设计功耗 散热器设计基准 偏保守,留余量
TGP 总图形功耗 整卡功耗参考 更真实,但仍有波动
瞬时功耗 毫秒级峰值 电源/电容设计 最容易被忽略

注意:TGP也不是万能的。它测的是稳态功耗,瞬态尖峰它抓不住。做电源设计时,千万别只盯着TGP。

1.4 瞬时功耗:那个「看不见的杀手」

瞬时功耗,也叫峰值功耗或瞬态功耗。它指的是GPU在极短时间内(毫秒甚至微秒级)的功耗尖峰。为什么说它是杀手?因为电源和电容的设计,往往就是被这个尖峰逼死的。

我举个例子。你有一块TGP 300W的GPU,平时跑游戏很稳。但当你打开一个大型3A游戏,或者启动一个AI模型推理时,GPU核心会在几毫秒内从空闲状态切换到满载状态。这时候,电流会突然飙升,功耗可能瞬间冲到400W甚至更高。

为什么会这样?因为GPU内部有成百上千个计算单元,它们同时被唤醒,同时开始工作。这种「同步唤醒」效应,会产生巨大的电流冲击。我曾在项目中遇到过,因为瞬时功耗没处理好,导致电压跌落超过10%,GPU直接黑屏重启。

关键数据:瞬时功耗的持续时间通常在100μs到10ms之间,峰值可达TGP的1.3-1.5倍。设计电源时,必须考虑这个裕量。

1.5 三个指标的关系:怎么用?

好了,三个指标都讲完了。那在实际工作中,怎么用它们?我总结了一套自己的方法:

  1. 选散热器,看TDP。 TDP是散热设计的底线。散热器的散热能力必须大于TDP,最好留20%余量。
  2. 算整机功耗,看TGP。 做电源选型、整机功耗预算时,用TGP做基准。比如你要配一个1000W的电源,TGP 450W的显卡,加上CPU和其他外设,差不多刚好。
  3. 做电源滤波,看瞬时功耗。 这是最容易被忽略的。我建议在GPU的供电输入端,加足够的去耦电容,用来吸收瞬时尖峰。电容的总容量,可以参考瞬时功耗的峰值和持续时间来算。

我的习惯:每次做新项目,我都会先跑一遍瞬时功耗的仿真。用示波器实测电流波形,看看尖峰到底有多高。这一步省不得,省了后面就得返工。

最后说一句,功耗这件事,没有「一劳永逸」的解决方案。不同场景、不同负载、不同工艺,功耗表现都不一样。我做了十几年GPU,到现在也不敢说完全摸透了。但只要你理解了这三个指标的本质,再结合实测数据,就能把功耗问题控制在可控范围内。

下一章,咱们聊聊功耗的测量方法。到时候我会分享一些实测中的小技巧,包括怎么用示波器抓瞬时功耗、怎么校准测量误差。嗯,这些可都是实战经验,外面学不到的。