上个月,李雷家的电费单让他傻了眼——800 元,比平时翻了快一倍。他怀疑家里多了个“隐形电老虎”,于是买了一套智能家居用电监测套装:给空调、冰箱、游戏电脑各插上一个带计量芯片的智能插座,再在手机上下载配套 App。从此,每个电器什么时候开机、瞬时功率多大、一天累计耗电多少,全都一目了然。原来,李雷最近迷上新游戏,游戏电脑的显卡每天满负荷跑 6 个小时,这才是电费暴涨的真凶。找到元凶只是第一步,App 还会在深夜冰箱异常空转时弹出提醒,甚至自动把空调限制在 26 摄氏度的节能区间。到了月底,电费终于回到正常水平。 AI 大模型的训练机房,就是一台功率巨大的“家庭”。GPU 显卡比游戏显卡更能吃电,几千张卡同时运行,电费以百万计。AI 能效监测系统,就是给机房装上一整套“智能电表”:采集每块 GPU 的功耗,关联训练任务指标,用看板把能耗讲清楚,用告警盯住异常,最后自动调优省下真金白银。从发现电老虎、看清电老虎、管住电老虎,到最终驯服电老虎,这就是能效管理闭环的全过程。

岗位关联

掌握能效监测,等于为数据中心装上一双“看见每一度电”的眼睛——从硬件功耗到训练效率,你能用数据说服团队省下真金白银,这是绿色 AI 时代的核心技能。

目录
  1. 可视化演示
  2. 监测系统架构
  3. 硬件功耗采集
  4. 指标关联分析
  5. 能效可视化看板
  6. 能耗告警机制
  7. 自动调优策略
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示布隆过滤器通过多个哈希函数将元素映射到位数组,实现高效集合成员查询及假阳性概率机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

布隆过滤器插入流程 元素经3个哈希函数映射到位数组的3个位置 对应位置置1,多个元素可共享同一位 k=3, m=24 空间效率远超哈希表

监测系统架构

李雷家的用电监测套装是标准的“三件套”:带计量芯片的智能插座负责采数,电视柜里的小网关负责存数算数,手机 App 负责把结果讲给人听。拆掉任何一件,整套系统就成了摆设——没有插座读不到数,没有网关没人分析,没有 App 你只能盯着电表发呆。AI 能效监测系统也是同样的三层骨架:数据采集层、存储分析层、展示交互层。

最底下是数据采集层。每个训练节点上部署一个轻量 Agent,它调用硬件厂商提供的管理接口——比如 NVIDIA 显卡的 NVML 管理库——定期读取 GPU 功率、温度、利用率,再把 CPU、内存、整机的功耗一并打包上传。这些 Agent 就像一个个智能插座,默默插在每台服务器上。

中间是存储分析层。秒级功耗数据写入时序数据库(一种按时间顺序高效存储和查询数据的数据库),按分钟、小时做聚合,再与训练指标对齐,供上层查询。最上面是展示交互层,也就是能效看板和告警系统。三层之间通过标准接口解耦:采集层新增一种 GPU 型号、存储层换一款数据库、展示层换一套看板,都不会牵动其他层。这种分层设计让系统可以像搭积木一样演进。

就像李雷想换更高级的智能插座时,不用动网线也不用重装 App,拔下来插上去照样能用。架构的分层,就是家庭监测套装里“插座、网关、手机”三个部件各自独立又彼此配合的工程化版本。无论三层架构多复杂,整套系统的度量根基都落在一个朴素公式上:能耗等于功率乘以时间。

E=P×T\displaystyle E = P \times T
公式说人话:一个电器的耗电量,等于它的功率(跑多猛)乘以运行时间(跑多久)。GPU 功率高、训练时间长,电费自然就上去了。
  1. E 表示能耗E 是 Energy 的首字母,代表训练任务在一段时间内消耗的总电能,常用单位是焦耳(J)或千瓦时(kWh)。
    EE
  2. P 表示功率P 是 Power 的首字母,代表硬件瞬时用电速率,单位是瓦特(W),可以理解为“跑得越快的电器越费电”。
    PP
  3. T 表示时间T 是 Time 的首字母,代表设备持续运行的时长,单位是秒(s)或小时(h)。
    TT
  4. 能耗等于功率乘时间把三个量相乘,功率越大、跑得越久,总能耗越高,这就是一切能效账本的地基。
    E=P×T\displaystyle E = P \times T

硬件功耗采集

李雷第一次打开智能插座 App,发现游戏电脑的显卡功率竟然在 300W 上下浮动,比他家冰箱还猛。他找到的第一只“电老虎”就是这块显卡。在 AI 机房,GPU 同样是功耗之王:一张训练卡满负荷能到 300-700W,千卡集群光 GPU 就吃掉大半电费。硬件功耗采集,就是给这些“电老虎”逐一装上电表。

采集的路径分三路:GPU 功耗通过 NVIDIA 官方的 NVML 管理库读取,nvidia-smi 就是它的命令行外壳,其中的 Power Draw 字段就是瞬时功率;CPU 功耗走 Intel/AMD 提供的 RAPL 接口,它能精确报告每个 CPU 封装和内存控制器的功耗;整机级别则靠服务器 BMC 带外管理提供的 IPMI 协议拿到电源总功率。三路数据合起来,才是一台机器完整的“用电心电图”。

有了各路读数,整机功耗核算就是一道加法题。这里有一个关键的工程决策——采样频率。秒级采样足以捕捉训练任务的瞬态功耗变化;毫秒级采样会带来海量存储和噪声,而任务级的能耗核算用分钟级聚合就够了。直觉上“采得越密越好”是错的,要按用途选频率。

李雷后来发现,把智能插座的采样间隔从 1 秒调到 10 秒,App 上的曲线几乎看不出差别,插座电池反而耐用了一倍。采集频率的取舍,和家里智能插座“多久报一次数”是同一个道理——够用就好,过犹不及。

Pnode=PGPU+PCPU+Pmem+Pother\displaystyle P_{\text{node}} = P_{\text{GPU}} + P_{\text{CPU}} + P_{\text{mem}} + P_{\text{other}}
公式说人话:整台服务器的总功耗,等于 GPU、CPU、内存和其他部件功耗的加总。只盯 GPU 会漏掉整整四分之一。
  1. P_node 表示整机功耗node 指一台训练服务器节点,P_node 就是这台机器的总功耗,是所有采集数据的汇总目标。
    PnodeP_{\text{node}}
  2. P_GPU 表示显卡功耗GPU 是训练任务的主力计算部件,也是整机功耗的最大来源,必须单独监控。
    PGPUP_{\text{GPU}}
  3. 剩余部件逐个相加CPU、内存以及其他部件(风扇、硬盘、网卡)各有功耗,漏掉任何一项整机核算都不准。
    PCPU+Pmem+PotherP_{\text{CPU}} + P_{\text{mem}} + P_{\text{other}}
  4. 整机功耗是各项之和监测系统必须同时采集全部部件读数,才能完成整机功耗核算,不能只看大块头。
    Pnode=PGPU+PCPU+Pmem+Pother\displaystyle P_{\text{node}} = P_{\text{GPU}} + P_{\text{CPU}} + P_{\text{mem}} + P_{\text{other}}

指标关联分析

李雷观察了一周,发现 App 里有个隐藏功能:把“游戏时长”和“日用电量”画在同一张图上,两条曲线高度重合。他恍然大悟——不是家里电器变多了,而是打游戏的频率变高了。AI 能效监测系统的第二个本事,就是做同样的“关联分析”:把功耗曲线和训练指标放到同一根时间轴上,看“电花在了哪里、换回了什么”。

训练指标包括吞吐量(每秒处理的 token 数或样本数)、GPU 利用率、迭代耗时等,由训练框架(比如 PyTorch)以事件形式上报。监测系统把“硬件功耗”和“软件进度”按时间戳对齐,就能回答“跑完这一步训练花了多少度电”这样之前没人答得上来的问题。单纯的功耗曲线没有意义,关联上任务上下文才有价值。

关联之后就能计算能效指标。最直观的是“每千瓦时产出的 token 数”:越多越省电。工程上还会用性能功耗比(吞吐量除以平均功率)来横向比较不同任务、不同批量大小、不同型号 GPU 的效率。原始秒级数据会先按分钟聚合再参与计算,既降低存储压力,又平滑了瞬时噪声。

有了这张“游戏时长 vs 电费”的关联图,李雷才敢对老婆保证:换一台能效更高的显卡,打同样的游戏能省一半电。能效指标,就是采购 GPU 和调整训练配置时的那杆公平秤。

η=NtokensE\displaystyle \eta = \frac{N_{\text{tokens}}}{E}
公式说人话:能效 = 训练产出的 token 数 ÷ 消耗的电能。同样一度电,谁产出的 token 多,谁就更绿色。
  1. η 表示能效希腊字母 eta 是工程上常用的效率符号,这里指“每一焦耳电能换来的模型产出”。
    η\eta
  2. N_tokens 表示模型产出训练任务每个周期生成的 token 数,是衡量训练工作量的通用计数器。
    NtokensN_{\text{tokens}}
  3. E 表示消耗的能耗与第一节相同,E 是总能耗,单位用焦耳或千瓦时皆可,分子分母单位要匹配。
    EE
  4. 能效等于产出除以能耗分子是产出,分母是成本,比值越高说明单位电能干的活越多,这是横向对比的基准。
    η=NtokensE\displaystyle \eta = \frac{N_{\text{tokens}}}{E}

能效可视化看板

李雷最爱的 App 页面是“今日用电”:一个环形图显示空调、冰箱、电脑各占多少,下面一条 24 小时功率曲线,深夜的波峰提醒他冰箱门没关严。把这张图搬到机房,就是 AI 能效可视化看板——一个让运维人员“一眼看懂电去哪了”的交互界面。

看板第一屏通常有四块内容:实时能耗曲线,秒级刷新展示整机功率的呼吸节奏,能看出训练任务在跑前向还是等数据;硬件能耗分布,用堆叠面积图把 GPU、CPU、内存、其他的功耗分层铺开,一眼锁定大头;能效趋势,按天或按训练任务画出每千瓦时产出,直观反映优化是进是退;多维筛选,支持按集群、按任务、按时间范围下钻,从机房看到单卡。

看板的工程要点是“先聚合、后呈现”:后端把查询结果按看板分辨率降采样,前端只画几百个点,而不是把几千万条原始记录全塞给浏览器。时间加权平均功率是看板最常用的统计量,它把一条波动的功率曲线浓缩成一个数,排除瞬时毛刺的干扰,让“这台机器平均多耗电”这种结论有据可依。

李雷每次月底交电费前都要翻一翻 App 的月度报告——哪台电器最费电、哪天用电异常,心里有数才不慌。能效看板就是运维人员的“实时电费单”,把机房每一度电的去向都摊开在眼前。

Pˉ=1T∫0TP(t) dt\displaystyle \bar{P} = \frac{1}{T}\int_{0}^{T} P(t)\,dt
公式说人话:平均功率 = 把功率曲线下的面积(总能耗)除以时间。看板上那个“平均功耗”数字就是这么算出来的。
  1. P(t) 表示功率曲线每个采样时刻的功率值连起来,就形成一条随时间起伏的曲线,看板上画的就是它。
    P(t)P(t)
  2. 积分号表示累加积分把曲线上无数个瞬时功率值累加在一起,曲线下方的面积就是总能耗。
    ∫0TP(t) dt\int_{0}^{T} P(t)\,dt
  3. 除以总时长把总能耗平均摊到观测周期上,消除瞬时波动的干扰,得到一个有代表性的“典型功耗”。
    1T\frac{1}{T}
  4. 时间加权平均功率看板上的平均功耗统计量,本质上就是这个积分除以时间,高功耗时段贡献更大。
    Pˉ=1T∫0TP(t) dt\displaystyle \bar{P} = \frac{1}{T}\int_{0}^{T} P(t)\,dt

能耗告警机制

有一天深夜,李雷的手机突然弹出推送:“冰箱在凌晨三点持续高功率运行,疑似门未关严。”他爬起来一看,果然是老婆拿完酸奶忘了关门。能效监测系统的告警机制,就是这位 7×24 小时不睡觉的“家庭管家”,专门盯着异常用电。

告警的第一步是规则配置。最简单的规则是静态阈值,比如“整机功耗超过 500W 持续 5 分钟”就告警;但训练任务在不同阶段(数据加载、前向、反向、通信)功耗天然波动,固定阈值容易误报或漏报。更聪明的是动态基线:系统维护一个滚动历史窗口,算出均值 μ 和标准差 σ,用 z-score 衡量当前值偏离正常水平的程度,超过 3 就判定为异常。

告警要分级和联动:警告级推到钉钉或邮件,严重级直接打电话或自动拉起工单;告警内容不只是“功耗超标”四个字,还附带处置建议——比如“GPU 利用率低于 30%,疑似数据加载瓶颈”或“建议降低频率”。告警不是终点,而是调优的入口,这也是闭环设计的关键一环。

那次冰箱告警让李雷少交了 40 元电费,从此他再也不敢小看深夜推送。告警的价值不在于响不响,而在于“在该响的时候响,并告诉你接下来该怎么办”。

zt=Pt−μσ\displaystyle z_t = \frac{P_t - \mu}{\sigma}
公式说人话:z 值 =(当前功耗 - 历史平均功耗)÷ 历史波动幅度。z 超过 3,说明这次异常“离谱到不可能是偶然”。
  1. P_t 表示当前采样值t 时刻监测到的整机功耗,是待检验的“最新读数”,告警系统要判断它正不正常。
    PtP_t
  2. μ 表示历史均值过去滚动窗口内功耗的平均水平,代表“正常情况下应该多高”,是动态基线的锚点。
    μ\mu
  3. σ 表示标准差历史功耗波动的剧烈程度,σ 越大说明平时起伏越大,对偏离的容忍度也越高。
    σ\sigma
  4. z 分数衡量偏离程度当前值比均值高多少个标准差,超过 3 通常判定为异常,这就是动态告警的依据。
    zt=Pt−μσ\displaystyle z_t = \frac{P_t - \mu}{\sigma}

自动调优策略

配置好监测和告警之后,李雷打开了 App 的“节能模式”:客厅空调自动被限制在 26 摄氏度的省电区间,游戏电脑在凌晨自动进入待机。系统不再只是“看”,而是开始“管”。AI 能效监测系统的最后一块拼图,正是基于监测数据的自动调优策略——让系统根据能耗数据自己动手省钱。

机房里的自动调优主要有三招。第一招是功耗频率调节(DVFS,动态电压频率调节):监控发现某任务的 GPU 利用率长期偏低时,适当降频能省下大量电,且几乎不掉速。第二招是批量大小优化:把 batch size 调大能让 GPU 算得更饱和,吞吐量上去,单位 token 的能耗反而下降——就像洗衣机满桶洗比半桶洗更省水。第三招是弹性调度:把空闲节点转交给其他任务,杜绝“空转待机”的浪费。

所有调优决策都要回到成本标尺上评估。综合成本 C = αE + βT,E 是能耗、T 是训练时长,系数 α、β 分别代表电价和时间成本。一次调优值不值得,要看它把 C 压低了没有,而不是单看耗电少了没有——省了电却让任务多跑三倍时间,往往得不偿失。

月底李雷对比上月电费:空调自动 26 摄氏度省了 80 元,电脑定时待机省了 120 元,总电费终于回落到正常水平。这就是闭环的力量:监测发现浪费,决策实施调优,效果评估反馈,然后继续监测——循环往复,每一轮都在为绿色省下一笔真金白银。

C=αE+βT\displaystyle C = \alpha E + \beta T
公式说人话:训练的总成本 = 电费 + 机时费。调优的目标不是单纯省电,而是让“电费 + 时间成本”这个总和最小。
  1. E 与 T 是两个成本维度E 是能耗对应电费,T 是训练时长对应机时成本和等待时间,两者都要花钱。
    E,TE, \quad T
  2. α 与 β 是权重系数α 把能耗折算成价格,β 把时间折算成价格,让两个不同量纲的量能在同一把标尺上相加。
    α,β\alpha, \quad \beta
  3. 加权和就是综合成本两项相加得到一次训练的总代价,调优的目标就是让 C 尽量小,而不是单压哪一项。
    C=αE+βT\displaystyle C = \alpha E + \beta T

AI 应用场景

千卡大模型训练集群的绿色运维

阶段:训练运维与监控(MLOps)

解决的问题:过去电费账单月结时才发现超支,无法定位“电老虎”任务;AI 能效监测系统实时采集千卡 GPU 功耗,把能耗按任务、按团队拆分,让浪费无所遁形。

具体案例:某大模型团队上线监测系统后,发现两个微调任务在同样吞吐下,一个 GPU 利用率 85%,另一个只有 41%——后者的数据加载管线存在瓶颈,GPU 长期“半饿着”空转。团队用看板定位问题、调大批量并预取数据后,单卡每千瓦时产出 token 提升 37%。

云厂商 GPU 实例的能效计量与费用分摊

阶段:资源管理与计费

解决的问题:多租户共享 GPU 集群时,能耗归属不清,无法按实际用电量计费,高耗电任务还会“电污染”邻居。

具体案例:云平台用监测系统按任务和容器维度聚合功耗,租户在控制台查看自己任务的能耗账单;当某租户任务持续触发高功耗告警时,系统自动推送降频建议并限制其峰值功耗,保障相邻租户的训练体验。

数据中心碳排放核算与 ESG 报告

阶段:合规审计与绿色品牌建设

解决的问题:手算碳排放费时费力,监测数据散落各处无法沉淀,绿色算力卖点说不清。

具体案例:能效监测系统把整机功耗按小时聚合,乘以区域电网的碳排放因子,自动生成每个训练任务的碳排报表。某公司用这组数据向客户证明“我们的微调服务比基准方案低碳 22%”,成功拿下绿色算力订单。

Python 演示

python75 行
"""AI energy monitoring demo: collect power, compute energy, alert, give tuning advice."""import mathimport random  def simulate_power(step, phase, base, amp, noise):    # 模拟硬件功耗: 正弦波动 + 随机噪声, 单位 W    wave = base + amp * math.sin(step * 0.5 + phase)    return max(0.0, wave + random.uniform(-noise, noise))  class EnergyMonitor:    # 能效监测器: 采集 -> 存储 -> 聚合分析 -> 告警 -> 调优建议    def __init__(self, threshold_w, interval_s=1):        self.threshold_w = threshold_w            # 告警阈值, 单位 W        self.interval_s = interval_s              # 采样间隔, 单位 s        self._readings = []                       # 每次采样的 (gpu_w, cpu_w, total_w)        self.alert_count = 0                      # 触发告警的次数     def collect_reading(self, gpu_w, cpu_w):        # 采集一路读数并存入内存列表, 相当于数据采集层        total_w = gpu_w + cpu_w        self._readings.append((gpu_w, cpu_w, total_w))        if total_w > self.threshold_w:            self.alert_count += 1        return total_w     def avg_power(self):        # 存储分析层: 计算时间加权平均功耗        if not self._readings:            return 0.0        return sum(r[2] for r in self._readings) / len(self._readings)     def total_energy_kwh(self):        # 存储分析层: 平均功率 x 时长 / 1000 得到 kWh        hours = len(self._readings) * self.interval_s / 3600.0        return self.avg_power() * hours / 1000.0     def token_efficiency(self, tokens):        # 指标关联分析: 每 kWh 产出的 token 数, 越大越省电        energy = self.total_energy_kwh()        if energy <= 0:            return 0.0        return tokens / energy     def tuning_advice(self):        # 自动调优策略: 根据平均功耗与阈值的比值给出建议        util = self.avg_power() / self.threshold_w        if util > 0.95:            return "Power near threshold: lower GPU freq or batch size"        if util > 0.8:            return "High load: watch peaks, prepare elastic scheduling"        return "Healthy load: keep current config"  def main():    random.seed(42)    monitor = EnergyMonitor(threshold_w=500)    tokens = 0    for step in range(180):        gpu_w = simulate_power(step, 0.0, 260, 70, 15)        cpu_w = simulate_power(step, 1.5, 85, 28, 8)        monitor.collect_reading(gpu_w, cpu_w)        tokens += 120  # 每个采样间隔模拟产出 120 个 token     print("== AI Energy Monitor Report ==")    print("Avg power: %.1f W" % monitor.avg_power())    print("Total energy: %.4f kWh" % monitor.total_energy_kwh())    print("Alerts: %d times" % monitor.alert_count)    print("Efficiency: %.0f tokens/kWh" % monitor.token_efficiency(tokens))    print("Tuning advice: %s" % monitor.tuning_advice())  if __name__ == "__main__":    main()
目的:用 180 个采样点模拟一台训练服务器的 GPU/CPU 功耗曲线,完整走一遍“采集 → 存储 → 聚合分析 → 告警统计 → 调优建议”的能效监测流水线。
  1. self._readings.append((gpu_w, cpu_w, total_w))把每次采样的三个功率值存入内存列表,对应监测系统的数据采集层
  2. return sum(r[2] for r in self._readings) / len(self._readings)对整机功耗序列求平均,这就是看板上“平均功耗”的简化实现
  3. hours = len(self._readings) * self.interval_s / 3600.0由采样点数乘采样间隔换算出运行时长
  4. return tokens / energy这就是能效指标 η 的代码形态:产出除以能耗
  5. util = self.avg_power() / self.threshold_w计算平均功耗占告警阈值的比例,作为调优决策的依据

常见误区

误区“监测 GPU 能耗还不简单?写个脚本每分钟执行一次 nvidia-smi 把功率记下来,不就是能效监测系统了吗?”

正解真正的能效监测是“采、存、析、看、告”五件套:既要覆盖 GPU、CPU、内存、整机多部件,又要存入时序数据库做聚合关联,还要与训练指标对齐、上可视化看板、配置告警规则。单点采样只是最原始的电压表,离“系统”还有十万八千里。好比李雷只看了一眼电表读数,却不知道是哪个电器在费电、费了多少、要不要管。

为何常见:nvidia-smi 随手可得、输出直观,让人误以为“能读到数据”就等于“完成了监测”。

误区“能耗数据当然采得越勤越准,最好每毫秒采一次,这样峰值一个都跑不掉。”

正解高采样率会带来巨大的存储开销:千卡集群每秒一条记录,一天就是八千多万条,而且高频数据里全是噪声。实际工程中秒级即可捕捉 GPU 功耗的瞬态峰值,分钟级聚合足够支撑能效分析和调优决策。频率要按用途定:告警用秒级,报告用分钟级,就像李雷家的插座从 1 秒调到 10 秒,曲线几乎不变,电池却耐用一倍。

为何常见:开发者习惯性追求“更精细”,却忽略了存储成本和收益之间的平衡。

误区“给每台机器设一个 500W 的固定阈值,超过就告警,省事又直观。”

正解训练任务在不同阶段功耗天然波动:数据加载时 GPU 闲逛,反向传播时功率冲顶。固定阈值极易误报或漏报。成熟的系统用动态基线:取历史窗口的均值 μ 和标准差 σ,用 z-score 判别离群点,再叠加任务阶段的先验信息。阈值不是一条死线,而是一条随训练节奏呼吸的基线,像管家熟悉你家每个电器的“正常脾气”。

为何常见:固定阈值最简单、最好解释,容易让人忽略负载的时变性。

误区“想省电就得降频,降频就一定变慢,能效优化和训练性能天生矛盾。”

正解能效优化的目标是消除浪费而不是降低速度:把 GPU 利用率从 40% 提到 80%,功耗只涨一点、吞吐却接近翻倍;压缩空闲等待的 IO 时间,同样的活更省电。综合成本 C = αE + βT 同时考虑电费和机时,很多调优在几乎不掉速的情况下能省下 20%-30% 的电——就像李雷把空调设到 26 摄氏度,凉快没少多少,电费却明显下降。

为何常见:人们把“降功耗”和“降性能”画了等号,忽略了利用率提升带来的隐性节能空间。

面试题

Q1. 能效监测系统通常采用哪三层架构?

单选题 · easy

  • A.采集层、存储分析层、展示层← 正确答案
  • B.输入层、隐藏层、输出层
  • C.训练层、验证层、测试层
  • D.感知层、决策层、执行层

答案:A。能效监测的核心是“采-存-看”:采集层负责读硬件功耗,存储分析层负责持久化与聚合,展示层负责看板与告警。B 是神经网络的层结构,C 是模型训练流程,D 是通用控制术语,都与能效监测的三层架构无关。

Q2. GPU 功耗数据通常通过哪种接口获取?

单选题 · easy

  • A.显卡厂商的管理接口← 正确答案
  • B.操作系统剪贴板接口
  • C.浏览器的存储接口
  • D.邮件的发送协议接口

答案:A。GPU 功耗来自硬件管理接口,NVIDIA 通过 NVML 管理库暴露功率、温度等数据,nvidia-smi 是它的命令行封装。剪贴板、浏览器存储、邮件协议都跟硬件功耗读数毫无关系,属于软件层面的数据通道。

Q3. 能耗公式 E = P × T 中,P 代表什么?

单选题 · easy

  • A.功率(瓦特)← 正确答案
  • B.时间(小时)
  • C.电流(安培)
  • D.电压(伏特)

答案:A。P 是 Power(功率)的首字母,表示瞬时用电速率,单位瓦特 W;E 是能耗,T 是时间。电流单位是安培 A,电压单位是伏特 V,它们都不是与时间相乘得到能耗的量,这是物理量的基本对应关系。

Q4. 某训练节点 GPU、CPU、内存功耗分别为 300W、80W、40W,忽略其他部件,整机功耗为多少?

单选题 · mid

  • A.420W← 正确答案
  • B.380W
  • C.300W
  • D.120W

答案:A。整机功耗等于各部件功耗之和,300 + 80 + 40 = 420W。只记 GPU 会漏掉约四分之一的功耗,这正是监测系统必须做“整机核算”的原因——只盯大头,电费账单就会给你惊喜。

Q5. “每千瓦时产出 token 数”属于哪一类指标?

单选题 · mid

  • A.能效效率指标← 正确答案
  • B.响应延迟指标
  • C.模型准确率指标
  • D.显存占用率指标

答案:A。token 数是训练产出,kWh 是能耗成本,二者相除衡量“一度电换多少模型产出”,是典型的能效指标,类似家电的能效等级。延迟、准确率、显存占用都与电能消耗的换算没有直接关系。

Q6. 能效可视化看板通常包含哪些内容?

多选题 · mid

  • A.实时能耗走势曲线← 正确答案
  • B.分设备能耗占比图← 正确答案
  • C.能效趋势预测模块← 正确答案
  • D.私有仓库权限列表

答案:ABC。看板要回答“谁在耗电、何时耗电、趋势如何”:实时曲线看瞬态呼吸,占比图看硬件分布,趋势预测看优化方向。仓库权限属于代码管理范畴,与能耗可视化毫无关系,属于干扰项。

Q7. 用 z-score 做异常检测时,z 值超过多少通常判定为能耗异常?

单选题 · mid

  • A.超过 3 个标准差← 正确答案
  • B.超过 0 个标准差
  • C.低于 0.5 个标准差
  • D.低于 3 个标准差

答案:A。z 表示当前值与均值相差多少个标准差,正态分布下约 99.7% 的数据落在 ±3σ 内,超过 3 个标准差意味着几乎不可能是正常波动,因此判为异常。z 为 0 是均值本身,低于标准差更是正常范围内的波动。

Q8. 基于监测数据的自动调优策略可能包含哪些手段?

多选题 · hard

  • A.动态调节 GPU 频率电压← 正确答案
  • B.依据负载调整批量大小← 正确答案
  • C.空闲资源弹性调度共享← 正确答案
  • D.删除训练过程日志文件

答案:ABC。DVFS 动态调频直接降功耗;调整批量大小可改变 GPU 利用率和单步耗时,让算力更饱和;弹性调度把空闲资源转交他人避免空转,三者都是能效调优的常用手段。删日志是存储清理,与能效无关。

Q9. 功耗监测数据应优先存储在哪种数据库中?

单选题 · mid

  • A.时序数据库支撑聚合← 正确答案
  • B.键值对的内存数据库
  • C.关系型的图数据库
  • D.纯内存的对象缓存

答案:A。功耗数据是典型的“时间戳 + 数值”序列,时序数据库(如 InfluxDB)天然支持高频写入、按时间范围查询和降采样聚合。键值、图、缓存库在时间维度上的扫描和聚合效率很低,不适合作为监测数据的主存储。

Q10. 构建能效管理闭环的关键环节包括哪些?

多选题 · hard

  • A.采集功耗并持久化存储← 正确答案
  • B.关联训练指标与能耗← 正确答案
  • C.告警触发调优再评估← 正确答案
  • D.人工抄表周期汇报

答案:ABC。闭环 = 采集存储 → 指标关联 → 可视化/告警 → 自动调优 → 效果评估,每一步都靠数据自动流转,形成“监测-决策-反馈”的循环。人工抄表是传统机房的离线做法,无法支撑实时、自动化的能效管理闭环。