gpt4 book ai didi

performance - sse 指令是否消耗更多功率/能量?

转载 作者:行者123 更新时间:2023-12-04 00:03:02 28 4
gpt4 key购买 nike

很简单的问题,可能很难回答:

例如,将 SSE 指令用于并行 sum/min/max/average 运算是否比执行任何其他指令(例如单个和)消耗更多的功率?

例如,在 Wikipedia我找不到这方面的任何信息。

我能找到的唯一答案提示是 here ,但它有点笼统,在这方面没有引用任何已发表的 Material 。

最佳答案

几年前,我实际上对此进行了研究。答案取决于您的问题究竟是什么:

在当今的处理器中,功耗不是由指令类型(标量与 SIMD)决定的,而是由其他所有因素决定的,例如:

  • 内存/缓存
  • 指令解码
  • OOE,注册文件
  • 还有很多其他的。


  • 所以如果问题是:

    All other things being equal: Does a SIMD instruction consume more power than a scalar instruction.



    对此,我敢说是。

    我的研究生项目之一最终变成了 this answer :SSE2(2 路 SIMD)和 AVX(4 路 SIMD)的并排比较确实表明 AVX 具有明显更高的功耗和更高的处理器温度。 (虽然我不记得确切的数字。)

    这是因为 SSE 和 AVX 之间的代码是相同的。只有指令的宽度不同。 AVX 版本的工作量翻了一番。

    但如果问题是:

    Will vectorizing my code to use SIMD consume more power than a scalar implementation.



    这里涉及许多因素,所以我将避免直接回答:

    降低功耗的因素:
  • 我们需要记住 SIMD 的重点是提高性能。如果您可以提高性能,您的应用程序将花费更少的时间运行,从而节省您的电量。
  • 根据应用程序和实现,SIMD 将减少执行特定任务所需的指令数量。那是因为每条指令都要执行多个操作。

  • 增加功耗的因素:
  • 正如前面提到的,SIMD 指令比标量指令做更多的工作并且可以使用更多的功率。
  • SIMD 的使用引入了标量代码中不存在的开销(例如混洗和置换指令)。这些也需要经过指令执行流水线。


  • 分解它:
  • 更少的指令 -> 发出和执行它们的开销更少 -> 更少的功率
  • 更快的代码 -> 运行更少的时间 -> 更少的功耗
  • SIMD 需要更多的权力来执行 -> 更多权力

  • 因此,SIMD 通过让您的应用程序花费更少的时间来节省您的电量。但是在运行时,它每单位时间会消耗更多的电量。谁赢取决于情况。

    根据我的经验,对于从 SIMD(或任何其他方法)获得有值(value)的加速的应用程序,前者通常会获胜并且功耗会降低。

    这是因为运行时间往往是现代 PC(笔记本电脑、台式机、服务器)功耗的主要因素。原因是大部分功耗不是在 CPU 上,而是在其他所有东西上:主板、内存、硬盘驱动器、显示器、闲置的显卡等……其中大部分都有相对固定的功耗。

    对于我的计算机,仅将其保持在(空闲)状态就已经绘制了它在全核 SIMD 负载(例如 prime95 或 Linpack)下可以绘制的一半以上的内容。因此,如果我可以通过 SIMD/并行化使应用程序速度提高 2 倍,那么我几乎可以肯定节省了电量。

    关于performance - sse 指令是否消耗更多功率/能量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722950/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com