gpt4 book ai didi

performance - 在超线程CPU上运行第二个线程是否会在整个管道中引入额外的开销?

转载 作者:行者123 更新时间:2023-12-02 06:46:54 25 4
gpt4 key购买 nike

关于超线程Xeon机器的讨论正在进行中。我对超线程如何工作的(肤浅的)理解是CPU在物理上多路复用来自两个“线程”的指令。也就是说,执行单元是共享的,但是有两个不同的体系结构集(寄存器集,指令队列,甚至是分支预测器等)-每个线程一个。执行单元及其缓冲区/队列始终准备好接收新的指令/数据,从这个角度讲,禁用一个线程而不保留两个线程没有任何好处。

我的同事暗示,通过关闭超线程,我们可以实现加速,因为运行单个线程的CPU不再需要“看”看另一个线程是否也有工作要做。我的理解是,所有这些电路都已经硬连接了多路复用来自两个线程的传入数据/指令,并且禁用超线程只是要关闭其中一个线程,不允许它接收任何指令/数据,但是实际上没有什么不同。这是关于超线程如何工作的良好思维模型吗?

我确实知道有许多因素在起作用,例如内存工作集,共享缓存的问题等,这些因素可能会影响2线程超线程CPU的性能与禁用超线程的同一个CPU的性能,但是我问题更多地指向禁用超线程是否以某种方式使通过管道的整个数据/指令流更快或更慢?例如,在尝试填充后端头的缓冲区时会出现争用问题吗?

我同事的解释还包括管理程序,但是我看不到两者之间的关系?它们似乎是正交的概念。

谢谢!

最佳答案

正确,超线程通过在管道的前端阶段和退出阶段复用每个线程的指令流来工作。在RS和MOB单元中,可以在同一周期中将来自不同线程的微指令分派(dispatch)到执行单元或缓存管道。流水线的这两个区域大部分都不会使用超线程。同样,如果一个线程在特定周期停滞在流水线的任何阶段,则该周期在该周期的全部带宽可以由其他超线程利用。如果一个线程进入C1或更深的睡眠状态,或者如果禁用了超线程,则由于分区而专用于一个线程的资源(即缓冲区条目)将对其他线程可用。

每个线程都有自己的体系结构状态,如英特尔手册第8.7.1节“逻辑处理器的状态”所述。每个线程都会复制大多数体系结构寄存器。这是通过在管道中复制RAT结构来实现的。内存也是体系结构状态的一部分,但是Intel处理器都是共享内存处理器,这意味着内存在系统的所有内核之间共享。

在“关闭超线程我们可以实现加速”这一短语中,我不清楚,正在使用哪种性能指标和参考系统进行比较。如果要比较以下两种配置中两个任务的挂钟执行时间:

  • 假定没有上下文切换,这两个任务在启用超线程的同一个物理内核上运行。
  • 这两个任务在禁用超线程的情况下并在没有上下文切换的假设下在不同的物理内核上运行。

  • 通常,第二种配置会缩短执行时间,但是具有HT能力的内核上的任务之间可能的交互作用过于复杂,无法确定。例如,您提到两个任务在专用数据缓存上可能会发生冲突,但是还有共享数据的机会。此外,系统其余部分上发生的事情可能会影响禁用超线程可能带来的加速。

    您可能需要稍微回溯一下,然后确定是否需要进行此比较。如果处于可运行状态的任务总数不大于物理核心总数,那么您的虚拟机监控程序将在不同的物理核心上调度vCPU还是选择将它们紧紧地包装在数量较少的物理核心上,以将其他核心处于睡眠状态?例如,Liunx内核通常更喜欢在利用每个内核的另一个逻辑内核之前在每个物理内核上调度一个线程。如果任务的数量大于物理核心的数量,则需要进行不同的比较,在这种情况下,超标题可能会带来避免上下文切换的优势。这是超线程可以提高整体性能的主要情况。您甚至可以通过确定哪些任务对是良好的“ sibling ”并更改其亲和力,从而使每个友好对都安排在同一物理核心上,从而实现更高的加速。您必须手动进行此优化,因为大多数OS和虚拟机管理程序无法自动进行此优化(但是对此有一些研究建议)。

    超线程的另一个巨大优势是,它可以产生更好的每能量性能,如果能耗对性能同样重要,则这是更好的度量标准。例如,如果只有两个可运行任务,那么与在不同物理内核上运行两个任务相比,如果两个任务在同一物理内核上的逻辑内核上运行,则可以实现更高的单能耗性能。有丰富的物理核心。

    一般的建议是保持启用超线程,除非您有充分的经验证据或与安全性相关的理由将其禁用。

    关于performance - 在超线程CPU上运行第二个线程是否会在整个管道中引入额外的开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57872223/

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