【问题标题】:What CPU instructions use the most power?哪些 CPU 指令最耗电?
【发布时间】:2012-09-24 19:00:59
【问题描述】:

背景是这样的:下周我们办公室将有一天没有暖气,因为维护。室外温度预计在 7 到 12 摄氏度之间,因此可能会变冷。便携式电加热器太少了,无法满足所有人的需求。

但是,我在大约 6-8 平方米的办公室里有一个大的 honkin'(3 岁)工作站(HP xw8600 和 3.0 GHz 四核 Xeon),应该能够输出几百瓦热。运行 Furmark 将最大限度地使用 GPU,但我不确定如何最好地使用 CPU。

上次我在冷办公室时,我要么编译得更频繁,要么只是启动了 4-8 个运行 Norton Commander 的 DOSBox:es,但我认为使用 SSE1-2-3-4、MMX 等可以做得更好,即每个周期做更多工作的东西。

那么,哪些 CPU 指令在每个周期切换最多的晶体管,从而使 CPU 消耗最多的功率,从而释放出最多的热量?

如果我有一个功率计,那么我可以对自己进行基准测试,但我认为这对于 SO 人群来说将是一个有趣的挑战。 :)

【问题讨论】:

  • 您正在用基准为办公室供暖?有点像 MacGyver 的风格,你不觉得吗? ;o)
  • Cathodique 屏幕可能会有所帮助。
  • @KaiMattern:MacGyver 是我在学校的昵称。去搞清楚。 :)
  • “什么 CPU 指令” - 对于现代超标量 OOO 处理器,您应该混合使用不同的指令来加载所有内部执行端口。仅使用 SSE4 或 AVX 将仅加载 6-8 的 2-3 个端口。
  • 建议使用指令集更有限的旧 CPU 会更容易回答和更能说明问题吗?功率只是翻转了多少晶体管和所有闭合电路的长度的一个因素吗?

标签: cpu cpu-usage power-management


【解决方案1】:

对于您的特定目标,如果您真的想将您的系统用作热发生器,您首先需要确保冷却系统运行良好(将热量从盒子中排出)。今天的处理器被设计为在达到临界温度时自行调节,当使用适当的散热器并且处理器处于 TDP 时会发生这种情况(Thermal Design Power 是处理器使用正常程序的最大功率)。如果您有更好的散热器和良好的通风(箱式风扇?),假设您的电源可以处理它,您可能会超越 TDP。如果你关掉风扇,你基本上会马上达到热极限。

更明确地说,消耗最多的单个指令通常是在缓存中丢失并进入内存的加载指令。为了保证未命中,您需要分配一块比最后一级 CPU 缓存更大的内存并在该内存周围跳跃。最大功率情况下的跳跃模式有点复杂,因为您试图同时在缓存层次结构的每个级别上获得最大未命中数。如果您有 3 级高速缓存,在给定的时间段内,您对 L1 的未命中率可能比对 L2 的未命中率要多于对 L3 的未命中率,而不是对 DRAM 页面的未命中率。 (并且您的处理器的特定设计将对未命中有一个总限制。)在未命中之间,指令并不重要,但我猜 SSE4 乘法之一(PMULUDQ)可能是最好的,因为许多现代处理器,它们执行得非常快,并且通常会做很多工作(与添加相比)。

有趣的是,运行 GPU 可能会限制使用 L3 缓存未命中产生的热量,因为 GPU 可能会阻塞内存。在这种情况下,您应该确保对 L3 的所有访问都是命中,但您在其他级别中丢失了。

【讨论】:

  • 参加 TDP 可能就足够了。无需从字面上烧毁CPU。但是,我希望对您关于缓存未命中燃烧功率的声明进行一些验证。我希望 CPU 会空闲并等待内存 15-200 个周期。 @osgx'es 评论 w.r.t.上面的 SIMD 更符合我的直觉......
  • 你是对的,如果你所做的只是缓存未命中,那将不会消耗足够的能量,但正如我上面建议的那样,你想编写缓存中不断丢失的代码 并且 在指令之间尽可能多地使用处理器。此外,高于 TDP 并不意味着您会烧毁 CPU。 TDP 只是冷却系统的一个规格。如果你有更好的冷却系统,它可以处理更多。
  • 好的。这一切都说得通。谢谢!
  • 您能否提供一些代码示例,如您所描述的,您如何设法实现缓存未命中和此类执行方案?
【解决方案2】:

对于 GeForce 显卡,我的 CudaMFLOPS 程序(免费)对于获取显卡的高温非常方便。如果您有相应的卡详细信息在:

http://www.roylongbottom.org.uk/cuda1.htm#anchor8

我发现我的测试使用 L1 缓存中的数据执行 SSE 指令通常会产生最高的 CPU 温度。

【讨论】:

    【解决方案3】:

    CPU 使用 Prime95。这是轻量级的,可以很好地加载所有内核。不过,您不会真的从 3ghz xeon 中获得太多热量。那个时代的芯片通常适用于平均冷却超过 4ghz,而高端水回路接近 5ghz。使用 6 核芯片 @ >4ghz 并添加额外电压,您可能会达到 200w TDP,但使用该系统,您将幸运地将 cpu 提高到 100w。

    至于 GPU,Heaven Benchmark 非常适合快速升温。同样,除非您拥有高端卡,否则不太可能产生几百瓦的热量。 AMD gpus 上的另一种选择(也许 nvidia 也是?)是使用 crpto 货币挖掘软件,也许得到一个安装了挖掘 linux 发行版并准备就绪的 USB 记忆棒。您也可以在同一台钻机上使用 Prime95,因为采矿软件使用的 CPU 时间非常少。

    实际上,我用电脑的热量让几个房间在冬天保持温暖,只是很少需要额外的加热。这是通过一个加密货币采矿设备完成的,该设备有 4 个 GPU,24/7 全天候在 ~80 摄氏度下运行,并带有一个箱式风扇,用于在房间内循环空气。那台钻机有一个 1300W 的 PSU。我是否可以建议您不要尝试使用计算机来保暖,而要多穿衣服?

    【讨论】:

      猜你喜欢
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 2018-10-16
      • 1970-01-01
      • 2020-04-23
      • 2020-05-03
      相关资源
      最近更新 更多