想象你和三位室友合租一套带独立工作间的公寓,厨房里只有一个总电闸,电闸容量有限。某天深夜,四人同时打开游戏主机、空调和电暖器,电流骤增,只听“啪”一声,整层楼陷入黑暗——这就是没有“功耗封顶”的后果。Power Capping(功耗封顶)就像一位细心的房管员,提前给每位住户划好用电额度:谁也别想瞬间抽走太多电,总电闸永远安全。本文会用这场合租电表的管理故事,带你搞懂什么是 GPU 功耗封顶、硬封顶与软封顶的区别、如何设定封顶值,以及如何在供电安全与算力产出之间找到平衡。

岗位关联

掌握功耗封顶,意味着你能在有限电力预算下让 AI 集群更安全、更省钱、更稳定地运行——这是 AI 基础设施工程师和数据中心运维者的必备技能。

目录
  1. 可视化演示
  2. 功耗封顶概述:给合租公寓装个“分电阀”
  3. 硬件机制:每户的分电表与总闸
  4. 硬封顶模式:说一不二的“总闸刀”
  5. 软封顶模式:体贴的“提醒式限流”
  6. 封顶值设定:算力与电力的天平
  7. 动态功耗分配:谁急谁多分
  8. 实践落地:当理论遇见真实机房
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示三种经典页面置换算法FIFO、LRU、OPT的执行过程:跟踪页面访问序列,观察缺页中断和页面替换策略差异。

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

FIFO先进先出 始终替换最先进入内存的页面 实现简单但可能替换常用页面 replace = oldest_page FIFO按入队顺序选择被替换页面

功耗封顶概述:给合租公寓装个“分电阀”

合租公寓的房管员决定在总电闸和四个房间之间装一排分电阀,每个分电阀限制单间最大用电量。这样,就算某一间屋子的电暖器开到最大,也不会瞬间把整层总闸拉下。GPU 世界里的 Power Capping 就是这个分电阀:它允许管理员为每块 GPU 设定一个功耗上限,GPU 内部硬件保证实时功耗不会越过这条红线。

在真实机房里,问题更尖锐。一台 8 卡服务器满载时可以飙升到 4kW 以上,而机柜的供电能力往往只有 3kW,批量启动训练任务时很容易在同一时刻踩穿供电极限,触发机房 PDU(电源分配单元)过流保护,甚至导致整个机柜电压跌落。给每块 GPU 设置功耗上限,是把“总需求”强行压进“总能力”的管道里。

回到合租屋:分电阀的作用不是消灭用电需求,而是把“每个房间瞬时功率”约束在一条安全线以内。只要每个分电阀设定合理,整层总闸就永远不会跳。

P=V×IP = V \times I
功率(瓦)等于电压(伏)乘以电流(安)。GPU 的功率有多大,本质上就是电压与电流的乘积。
  1. 功率符号 PGPU 消耗电能的快慢,单位是瓦特(W)。
    P [W]P\ [\mathrm{W}]
  2. 电压符号 V推动电流流动的“水位差”,单位是伏特(V)。
    V [V]V\ [\mathrm{V}]
  3. 电流符号 I单位时间流过的电荷量,单位是安培(A)。
    I [A]I\ [\mathrm{A}]
  4. 相乘关系把电压与电流相乘,便得到消耗的功率数值。
    P=V×IP = V \times I

硬件机制:每户的分电表与总闸

每一户分电阀只是一个表,真正决定“能不能跳闸”的是总电闸和每户的电线粗细。GPU 的供电机制同样分三层:电源管理单元(PMU)、GPU 核心频率控制器,以及主机侧的监控软件(如 nvidia-smi 与 BMC)。当功耗接近封顶值时,GPU 内部的 PMU 会实时采样功率,并把信号交给频率控制器去调整。

服务器还有一个容易被忽略的“总闸”:PSU(电源单元)的额定功率和 PDU 的配电能力。即便所有 GPU 各自不超过上限,显存、CPU 等其他部件也会消耗功率。所以基础设施侧的约束是“整机总功耗不超过供电能力”,这也是 Power Capping 需要全局视角的原因。

回到合租屋:分电阀只约束单间上限,但厨房的烤箱、电梯的电机都在走同一个总闸,房管员必须把整栋楼的负载算成一个整体。这也是为什么单看一张卡的功耗还远远不够,必须看“总和”。

∑i=1nPi≤Ptotal\sum_{i=1}^{n} P_{i} \le P_{\text{total}}
所有 GPU 的实时功耗之和,必须小于等于机房为该机柜分配的总供电能力。
  1. 求和符号 Σ把机柜里 n 块 GPU 的功耗逐个相加。
    ∑i=1n\sum_{i=1}^{n}
  2. 单块 GPU 功耗 P_i第 i 块 GPU 在某时刻的实际功率。
    PiP_{i}
  3. 总供电能力 P_total电源单元与机柜配电系统能够持续提供的功率。
    PtotalP_{\text{total}}
  4. 不等号 ≤这是硬性安全约束,任何时刻都不能超过。
    ≤Ptotal\le P_{\text{total}}

硬封顶模式:说一不二的“总闸刀”

硬封顶可以理解为合租屋里安装的“空气开关”式分电阀:当某间房电流瞬间超过设定值,开关会在毫秒级直接切断或拉低供电,绝不含糊。

在 GPU 上,硬封顶意味着硬件以极快的响应速度将功率限制在设定值之下:一旦瞬时功耗超过上限,内部功率控制器强制把频率和电压拉低,甚至短暂停摆,使功耗立即回落。优点是响应快、保护彻底,缺点是性能波动剧烈——就像正在打排位赛的游戏电脑突然掉到低功耗模式,画面一卡一卡。

在数据中心里,硬封顶最适合“一票否决”的场景:供电余量极小、一旦超载会连锁宕机时,宁可牺牲性能也要保住整个机柜的电源安全。只不过,性能的骤降会让训练作业的吞吐量出现周期性抖动,迭代时间变得不可预测。

Pout=min⁡(Preq, Pcap)P_{\text{out}} = \min(P_{\text{req}},\ P_{\text{cap}})
硬封顶的输出功耗等于“需求功耗”和“封顶值”中较小的那个,超过的部分被瞬间丢弃。
  1. 需求功耗 P_reqGPU 当前工作负载所渴望的原始功耗。
    PreqP_{\text{req}}
  2. 封顶值 P_cap管理员通过管理工具写进 GPU 的功率上限。
    PcapP_{\text{cap}}
  3. min 函数取两个数中较小者,保证输出永不超限。
    min⁡(Preq, Pcap)\min(P_{\text{req}},\ P_{\text{cap}})

软封顶模式:体贴的“提醒式限流”

换一个场景:房管员不用瞬间切断电源,而是装了一套智能电表和语音提醒系统。当总用电接近警戒线,系统提前广播:“各位稍微少开点空调!” 大家默契地把功耗降下来,合力避免总闸跳掉——这就是软封顶。

GPU 的软封顶通过动态调节核心频率来实现:功耗监视器持续计算一个“目标频率”,使功率平滑地收敛到封顶值附近。它不会瞬间砍死性能,而是在多个控制周期内逐步降频,因此训练吞吐量的变化更平稳,不会出现硬封顶那样剧烈的卡顿。

房间里的温度缓缓下降,没人感觉到突然断电——这是软封顶的魅力。它牺牲一点响应速度,换来训练过程的稳定平滑,特别适合运行时间长的深度学习训练任务。

fnew=fbase×PcapPcurrentf_{\text{new}} = f_{\text{base}} \times \frac{P_{\text{cap}}}{P_{\text{current}}}
当当前功耗 P_current 超过封顶值 P_cap 时,比例小于 1,GPU 将核心频率按相同比例下调,让功耗逐步回落。
  1. 基准频率 f_baseGPU 在默认功耗模式下的核心频率。
    fbasef_{\text{base}}
  2. 当前功耗 P_current功率监视器刚采样到的瞬时功耗。
    PcurrentP_{\text{current}}
  3. 比例系数封顶值与当前功耗的比值,小于 1 时表示需要降频。
    PcapPcurrent\frac{P_{\text{cap}}}{P_{\text{current}}}
  4. 新频率 f_new乘以基准频率后得到的目标频率,频率越低功耗越小。
    fnew=fbase×PcapPcurrentf_{\text{new}} = f_{\text{base}} \times \frac{P_{\text{cap}}}{P_{\text{current}}}

封顶值设定:算力与电力的天平

房管员要给每间房定额度,定太高等于没封,定太低又让住户干活变慢。Power Capping 的封顶值设定同样是个平衡题:数值越接近 GPU 自然上限,算力损失越小,但可能解不了供电危机;数值越低,供电越安全,但训练迭代速度也随之下降。

实践中,运维团队常用基准测试确定“甜点值”:在一块 GPU 上依次设置 60%、70%、80% 的封顶值,记录每秒钟完成的训练迭代数,画出“功耗-性能”曲线。通常 80% 封顶只损失 5%~10% 性能,却能省下约 20% 功耗,这正是性价比最高的区间。

合租屋的房管员也会每季度做一次“额定功率测试”:给每间房装个计量插座,记录不同额度下的实际用电和住户满意度,再据此调整下一季度的分电方案。数据驱动,永远比拍脑袋可靠。

η=stepsPcap×T\eta = \frac{\text{steps}}{P_{\text{cap}} \times T}
效率 η 表示单位能耗产出的训练步数。封顶值设得聪明,就是用更少的电完成同样多的训练步。
  1. 训练步数 stepsGPU 上完成的迭代优化步数,越多越好。
    steps\text{steps}
  2. 运行时间 T完成这些训练步所花费的秒数。
    TT
  3. 总能耗 P_cap × T封顶功率乘以时间,代表耗散的总电能。
    Pcap×TP_{\text{cap}} \times T
  4. 效率 η用训练步数除以总能耗,反映“每瓦电办多少事”。
    η=stepsPcap×T\eta = \frac{\text{steps}}{P_{\text{cap}} \times T}

动态功耗分配:谁急谁多分

周六早上,在厨房做直播的房客需要大功率补光灯,而卧室里只是在充电的人不需要很多电。聪明的房管员会根据“谁在做事、谁在休息”实时调整分电额度,这就是动态功耗分配。

在 AI 集群里,不同作业的优先级差异巨大:在线推理服务响应延迟要求高,优先级权重高;离线模型训练可以慢一点,权重中等;半夜跑的数据清洗任务则完全可以“喝西北风”。动态分配器每隔几秒收集各 GPU 的负载和温度,再按权重重新划分总功率池:高权重 GPU 获得更大功耗额度,低权重任务则被压低频率,把电力让给关键时刻。

动态分配让“供电安全”不再是冷冰冰的限制,而变成一种按需分发的资源管理策略。就像房管员在高峰期临时“借电”给直播房客,整栋楼的供电依然安全,但每个人的体验都更合理。

Pi=wi×Pbudget,∑i=1nwi=1P_{i} = w_{i} \times P_{\text{budget}}, \quad \sum_{i=1}^{n} w_{i} = 1
每块 GPU 分到的功率 = 它的业务权重 × 总功率池。所有权重加起来必须等于 1。
  1. 总功率池 P_budget在保证安全冗余后,可用于动态分配的功率总额。
    PbudgetP_{\text{budget}}
  2. 业务权重 w_i根据作业优先级赋予每个 GPU 一个 0~1 之间的系数。
    wiw_{i}
  3. 归一化约束所有权重之和必须等于 1,否则预算会多分或少分。
    ∑i=1nwi=1\sum_{i=1}^{n} w_{i} = 1
  4. 分配公式权重乘以总池子,得到每块 GPU 的动态封顶值。
    Pi=wi×PbudgetP_{i} = w_{i} \times P_{\text{budget}}

实践落地:当理论遇见真实机房

把智慧合租屋真的开起来,房管员需要一套工具:计量插座(电源监控)、中央控制面板(BMC),还有贴在每个电表箱上的操作规程。对应的 GPU 机房工具链则包括:nvidia-smi 系列命令、NVIDIA DCGM(数据中心 GPU 管理器)、BMC 的功率策略设置,以及平台侧的告警系统。

最常用的入门操作是设置功耗上限:nvidia-smi -pl 300 会把目标 GPU 的功耗上限设为 300W。生产环境里,运维会结合 DCGM 周期采集每个 GPU 的实际功耗,当服务器总功率逼近供电阈值时,自动调用动态分配器降低低优先级任务的封顶值,并在总功率恢复到安全区后逐步放宽。整个过程中,机柜总功耗保持在供电曲线以内,训练任务稳定推进。

机房里的 Power Capping 和合租屋的分电思考方式一模一样:先摸清总闸容量,再给每个房间设限,最后根据实际使用动态调整。供电安全与算力产出的平衡,正是在一次次监控、调参、复盘中被逐渐打磨出来。

Esaved=∑i=1n(Pi,old−Pi,cap)×trunE_{\text{saved}} = \sum_{i=1}^{n} (P_{i,\text{old}} - P_{i,\text{cap}}) \times t_{\text{run}}
节约的总电能 = 每块 GPU 的降幅之和 × 封顶状态下的运行时长。这是衡量功耗封顶性价比的核心公式。
  1. 原功耗 P_old未封顶时 GPU 的平均功耗。
    Pi,oldP_{i,\text{old}}
  2. 封顶功耗 P_cap实施 Power Capping 后 GPU 的平均功耗。
    Pi,capP_{i,\text{cap}}
  3. 降幅两者相减,就是每块 GPU 每小时省下来的功率。
    (Pi,old−Pi,cap)(P_{i,\text{old}} - P_{i,\text{cap}})
  4. 运行时长 t_run乘以运行小时数,并遍历所有 GPU 求和,得到总节能量。
    Esaved=∑i=1n(Pi,old−Pi,cap)×trunE_{\text{saved}} = \sum_{i=1}^{n} (P_{i,\text{old}} - P_{i,\text{cap}}) \times t_{\text{run}}

AI 应用场景

多 GPU 训练服务器的供电安全

阶段:基础设施运维

解决的问题:过去,数据中心在训练任务启动瞬间会遭遇“供电尖峰”:8 张 GPU 同时满载,整套服务器功耗暴涨,超过机柜 PDU 额定值,轻则触发告警,重则空开跳闸、整柜宕机。AI 团队只能反复“错峰启动”来避免冲击,既繁琐又脆弱。通过 Power Capping,管理员把每块 GPU 的封顶值设为供电能力的 80%,系统自动确保总功耗始终落在安全区间内,无需人工预判。

具体案例:某智算中心部署 32 台 8 卡训练服务器,机柜额定供电 30kW。运维团队用 nvidia-smi -pl 250 将每卡功耗限制在 250W,再用 DCGM 每 5 秒采集一次总功率。改造后,不仅跳闸次数归零,整柜实际功耗稳定控制在 26kW 以内,还省出了 4kW 余量用于存储服务器扩容。

在线推理与离线训练的混合调度

阶段:模型部署与资源调度

解决的问题:同一批 GPU 既要跑延迟敏感的在线推理,又要跑任务式离线训练。若对所有任务一视同仁,推理服务可能在供电紧张时被训练任务抢走算力,响应时间飙红。动态功耗分配让高优先级推理卡获得更大功率预算,低优先级训练卡让出功耗,在有限供电下兼顾服务质量。

具体案例:某互联网公司的推荐系统集群共 20 块 GPU,总供电预算 6kW。分配器根据业务权重自动计算:在线推理卡权重 0.45,每卡分到约 270W;离线训练卡权重 0.3,每卡约 200W;数据清洗任务权重 0.25,每卡降到 170W。高峰期推理 P99 延迟保持在 30ms 以内,训练任务只是稍微变慢,整体供电始终安全。

电价峰谷时段的成本控制

阶段:能耗成本优化

解决的问题:数据中心电费中,GPU 功耗占比高达七成。若全天候满负荷运行,峰时电价会让账单翻倍。利用功耗封顶结合时段电价,在谷电时段放开封顶值冲刺训练,在峰电时段收紧封顶,能显著降低平均训练成本。

具体案例:某高校智算平台按当地工商业电价,峰时为 1.2 元/度,谷时仅 0.35 元/度。平台设定白天 9:00—22:00 将训练卡封顶为额定的 70%,夜间放开到 95%。一个月下来,GPU 总耗电减少 22%,电费下降 34%,模型训练总时长仅延长 9%。

Python 演示

python80 行
# -*- coding: utf-8 -*-"""模拟GPU功耗封顶(Power Capping)管理器对比硬封顶与软封顶在总供电受限时的表现"""  class PowerCappingManager:    """用不同模式管理多块GPU的功耗分配"""     def __init__(self, demands, budget, weights, cap_mode='hard'):        self.demands = list(demands)        self.budget = budget        self.weights = list(weights)        self.weight_sum = sum(self.weights)        self.cap_mode = cap_mode        self.iteration_count = 0        self.history = []        self.prev_power = list(demands)     def hard_cap(self):        total = sum(self.demands)        if total <= self.budget:            return list(self.demands)        scale = self.budget / total        return [d * scale for d in self.demands]     def soft_cap(self):        """软封顶: 按业务优先级降载, 并以低通方式平滑"""        total = sum(self.demands)        if total <= self.budget:            self.prev_power = list(self.demands)            return list(self.demands)        n = len(self.demands)        avg_w = self.weight_sum / n        target = []        for d, w in zip(self.demands, self.weights):            keep_ratio = 0.4 + 0.6 * (w / avg_w)            target.append(d * keep_ratio)        total_t = sum(target)        scale = self.budget / total_t        target = [t * scale for t in target]        smooth = [self.prev_power[i] + (target[i] - self.prev_power[i]) * 0.3                  for i in range(n)]        self.prev_power = smooth        return smooth     def run_forward(self, steps=20):        for _ in range(steps):            if self.cap_mode == 'hard':                powers = self.hard_cap()            else:                powers = self.soft_cap()            self.history.append(powers)            self.iteration_count += 1     def report(self):        powers = self.history[-1] if self.history else self.hard_cap()        print('模式: {}'.format('硬封顶' if self.cap_mode == 'hard' else '软封顶'))        print('GPU原始需求: {} W'.format([round(d, 1) for d in self.demands]))        print('封顶后功耗: {} W'.format([round(p, 1) for p in powers]))        print('总功耗: {:.1f} W / 预算 {:.1f} W'.format(sum(powers), self.budget))        print('完成迭代: {} 次'.format(self.iteration_count))        print()  if __name__ == '__main__':    demands = [380, 420, 300, 360]    budget = 1100    weights = [0.35, 0.30, 0.15, 0.20]     hard_mgr = PowerCappingManager(demands, budget, weights, 'hard')    soft_mgr = PowerCappingManager(demands, budget, weights, 'soft')     hard_mgr.run_forward(20)    soft_mgr.run_forward(20)     print('--- 硬封顶效果 ---')    hard_mgr.report()    print('--- 软封顶效果 ---')    soft_mgr.report()
目的:模拟 4 块 GPU 在总供电 1100W 受限时,硬封顶立即统一砍功率、软封顶按业务优先级平滑降载的差异。
  1. scale = self.budget / total硬封顶的核心:总需求超出预算时,统一按比例缩小到预算内,一步到位。
  2. keep_ratio = 0.4 + 0.6 * (w / avg_w)软封顶的优先级逻辑:权重高于平均值的 GPU 少降功率,低权重 GPU 多让电。
  3. smooth = [self.prev_power[i] + (target[i] - self.prev_power[i]) * 0.3 ...]用 0.3 的低通系数让每次降载只走 30% 的步长,模拟实际硬件的渐进调频。
  4. budget = 1100模拟机柜供电能力 1100W,这是动态分配的总功率池。
  5. weights = [0.35, 0.30, 0.15, 0.20]四块 GPU 的业务权重,和为 1.0,代表高优先级推理、中等训练、低优先级清洗任务。
  6. run_forward(20)连续推进 20 个控制周期,软封顶的迭代会随着周期数增加逐渐逼近目标。

常见误区

误区有的同学以为在系统里敲一行 `nvidia-smi -pl 300` 就完成了功耗封顶,重启驱动后还是会生效,想改随时改。

正解-pl 命令只对当前运行状态生效,重新加载驱动重启服务器后会恢复默认。生产环境必须把封顶值固化到持久化工具链中:BIOS/BMC 的功率策略、DCGM 的服务配置、系统启动脚本,三处必须一致。就像合租屋不仅要在电表箱上贴一张“限额 200W”的纸条,还要让中央电表真的按这个值去控制。

为何常见:GPU 命令行工具给人一种“在系统里配置就是全部”的错觉,容易忽略固件层和硬件层才是真正的执行者。

误区硬封顶能在毫秒级保护供电安全,既然它最可靠,那所有训练任务都设置硬封顶就行了。

正解硬封顶会在超限瞬间强制砍性能,训练吞吐量出现周期性抖动,分布式训练中的同步时间显著拉长。长期任务更看重稳定推进,软封顶让功耗平滑收敛,吞吐更平稳;真正需要硬封顶的是“供电余量极小、必须一票否决”的危险场景。

为何常见:人们往往只看“保护效果”这一个维度,忽略了训练作业对性能稳定性的敏感程度。

误区既然要省电,直接给 GPU 设一个最低功耗上限,比如 100W,省得越多越好。

正解封顶值过低会导致 GPU 频率暴跌,训练速度大幅下降,同一个任务运行时间变长,总能耗(功率×时间)可能不降反升。因此要测“功耗-性能效率曲线”找出甜点值——通常是额定功耗的 70%~85%,此时每瓦算力最高。

为何常见:“省电 = 降功率”的直觉忽略了时间这个分母,没有意识到完成同样计算量所需的时间会反噬电费。

误区软封顶听起来更聪明,所以它一定比硬封顶更快,性能损失更小。

正解软封顶在瞬时功耗刚超限时会以较慢的速度收敛,一段时间内仍可能超过封顶值。如果系统供电余量极小,这短暂的超限足以触发过流保护跳闸。硬封顶以牺牲瞬时性能换取绝对安全,软封顶以轻微超限风险换取性能平滑,两者是不同安全等级的工具,不能简单对比好坏。

为何常见:对“软”字的直观理解让人误以为它性能更好,其实“软”指的是控制动作柔和,而不是更快更强。

面试题

Q1. Power Capping 的主要作用是?

单选题 · easy

  • A.给 GPU 设定功耗上限← 正确答案
  • B.让 GPU 稳定超频
  • C.提升显存读写速度
  • D.加快网络通信带宽

答案:A。Power Capping 就是给 GPU 设定一个功耗上限,防止实际功耗超过设定值。超频、显存和网络带宽都与功耗封顶无关,它们属于性能优化或 IO 优化的范畴。

Q2. 硬封顶最突出的特点是?

单选题 · easy

  • A.响应极快,瞬时限功率← 正确答案
  • B.缓慢降频,平滑过渡
  • C.完全不用硬件支持
  • D.只在夜间自动生效

答案:A。硬封顶像空气开关,一旦超过上限会在毫秒级把功耗拉回设定值,响应极快。平滑过渡是软封顶的特征,硬件支持是硬封顶的前提,与夜间时段没有关系。

Q3. 某 GPU 需求功耗 450W,封顶值设为 300W,硬封顶后实际功耗最接近?

单选题 · mid

  • A.450W
  • B.300W← 正确答案
  • C.150W
  • D.0W

答案:B。硬封顶的输出是 min(需求,封顶值) = min(450, 300) = 300W。它不会保留 150W 的余量,也不会直接断电为 0W,而是精确限制在封顶值附近。

Q4. 软封顶主要通过什么机制实现?

单选题 · mid

  • A.动态调节核心频率电压← 正确答案
  • B.直接断开 GPU 供电
  • C.强行提高核心电压
  • D.完全依赖外部风扇降温

答案:A。软封顶靠 DVFS(动态电压频率调整),把“电压×频率”组合降下来从而平滑降低功耗。直接断开供电是保护性断电,提高电压会增大功耗,风扇只负责散热不消耗 GPU 核心功率。

Q5. 哪些场景适合使用 Power Capping?

多选题 · mid

  • A.机柜供电能力不足← 正确答案
  • B.数据中心希望降低电费← 正确答案
  • C.削减散热系统压力← 正确答案
  • D.显著提升单卡性能

答案:ABC。Power Capping 解决的三大问题正是供电不足、电费偏高、散热紧张。功耗封顶不会提升单卡性能,反而通常会小幅降低性能。

Q6. 服务器总供电能力 1200W,4 块 GPU 需求分别是 350/400/300/320W,硬封顶后总功率大约是多少?

单选题 · hard

  • A.1370W
  • B.1200W← 正确答案
  • C.350W
  • D.300W

答案:B。4 块 GPU 总需求 = 350+400+300+320 = 1370W,超过供电能力 1200W。硬封顶会把总功率瞬时压在供电能力以内,因此约为 1200W,而不是需求总和。

Q7. 动态功耗分配的权重制定应考虑哪些因素?

多选题 · mid

  • A.业务优先级高低← 正确答案
  • B.GPU 当前利用率← 正确答案
  • C.电价与峰谷时段← 正确答案
  • D.显存颗粒制造商

答案:ABC。动态分配要综合业务价值、实时负载和成本策略来给每个 GPU 打分。显存颗粒制造商与功耗分配决策无关,属于硬件采购层面的信息。

Q8. 查看并设置 GPU 功耗上限的命令是?

单选题 · easy

  • A.nvidia-smi -pl← 正确答案
  • B.nvidia-smi topo
  • C.nvcc --version
  • D.dmesg | grep gpu

答案:A。nvidia-smi -pl 是 Power Limit 的缩写,用于查看或设置 GPU 功耗上限。nvidia-smi topo 查看拓扑,nvcc --version 查看编译器版本,dmesg 查看内核日志。

Q9. 关于软封顶的说法,正确的有?

多选题 · hard

  • A.功耗会平滑接近上限← 正确答案
  • B.训练吞吐更平稳← 正确答案
  • C.能完全杜绝过流跳闸
  • D.瞬时控制响应弱于硬封顶← 正确答案

答案:ABD。软封顶通过逐步降频让功耗平滑逼近上限,训练吞吐的抖动更小。但它响应较慢,在一段短暂时间内仍可能超过上限,因此不能完全杜绝过流跳闸。

Q10. 将 GPU 封顶值从 100% 降到 80%,通常不会出现以下哪种结果?

单选题 · extreme

  • A.让训练迭代速度变慢
  • B.让单卡功耗显著下降
  • C.让显存容量直接变小← 正确答案
  • D.让机柜总功耗更安全

答案:C。降低封顶值会让频率下降、功耗下降、总供电更安全,训练速度也会变慢。而显存容量是硬件物理属性,与功耗封顶完全无关,不会因封顶值改变而变小。