gpt4 book ai didi

multithreading - 超线程/SMT 是一个有缺陷的概念吗?

转载 作者:行者123 更新时间:2023-12-04 05:38:36 30 4
gpt4 key购买 nike

HT/SMT 背后的主要思想是,当一个线程停顿时,同一内核上的另一个线程可以选择该内核的其余空闲时间并透明地运行它。

In 2013 Intel dropped SMT in favor of out-of-order execution for its Silvermont processor cores, as they found this gave better performance.



ARM 不再支持 SMT(出于能源原因)。 AMD 从来不支持它。在野外,我们仍然有各种支持它的处理器。

从我的角度来看,如果构建数据和算法以不惜一切代价避免缓存未命中和后续处理停顿,那么 HT 肯定是多核系统中的冗余因素吗?虽然我很欣赏所涉及的上下文切换的开销很低,因为两个超线程的离散硬件存在于同一个物理内核中,但我看不出这比根本没有上下文切换要好。

我建议对超线程的任何需求都指向有缺陷的软件设计。有什么我在这里想念的吗?

最佳答案

超线程是否有帮助以及有多大帮助取决于线程在做什么。这不仅仅是在一个线程中工作,而另一个线程等待 I/O 或缓存未命中——尽管这是基本原理的重要组成部分。它是关于有效地使用 CPU 资源来增加系统总吞吐量。假设你有两个线程

  • 一个有很多数据缓存未命中(空间局部性差)并且不使用浮点,空间局部性差不一定是因为程序员没有做好,一些工作负载天生就是这样。
  • 另一个线程正在从内存中流式传输数据并进行浮点计算

  • 通过超线程,这两个线程可以共享同一个 CPU,一个是执行整数运算并获得缓存未命中和停顿,另一个是使用浮点单元,数据预取器提前预测内存中的顺序数据。系统吞吐量比 O/S 在同一 CPU 内核上交替调度两个线程要好。
    英特尔选择不在 Silvermont 中包含超线程,但这并不意味着它将在高端至强服务器处理器中取消它,甚至在针对笔记本电脑的处理器中也将取消。为处理器选择微架构涉及权衡,有很多考虑因素:
  • 目标市场是什么(将运行什么样的应用程序)?
  • 目标晶体管技术是什么?
  • 绩效目标是什么?
  • 什么是功率预算?
  • 目标芯片尺寸是多少(影响良率)?
  • 它在公司 future 产品的性价比范围内处于什么位置?
  • 目标发布日期是什么时候?
  • 有多少资源可用于实现和验证设计?添加微架构特性会增加非线性的复杂性,与其他特性存在微妙的交互,目标是在第一次“tapeout”之前识别尽可能多的错误,以最大限度地减少必须完成的“steppings”数量一个工作芯片。

  • Silvermont 的每核芯片尺寸预算和功率预算排除了乱序执行和超线程,而乱序执行提供了更好的单线程性能。 Here's Anandtech's assessment :

    If I had to describe Intel’s design philosophy with Silvermont it would be sensible scaling. We’ve seen this from Apple with Swift, and from Qualcomm with the Krait 200 to Krait 300 transition. Remember the design rule put in place back with the original Atom: for every 2% increase in performance, the Atom architects could at most increase power by 1%. In other words, performance can go up, but performance per watt cannot go down. Silvermont maintains that design philosophy, and I think I have some idea of how.

    Previous versions of Atom used Hyper Threading to get good utilization of execution resources. Hyper Threading had a power penalty associated with it, but the performance uplift was enough to justify it. At 22nm, Intel had enough die area (thanks to transistor scaling) to just add in more cores rather than rely on HT for better threaded performance so Hyper Threading was out. The power savings Intel got from getting rid of Hyper Threading were then allocated to making Silvermont an out-of-order design, which in turn helped drive up efficient use of the execution resources without HT. It turns out that at 22nm the die area Intel would’ve spent on enabling HT was roughly the same as Silvermont’s re-order buffer and OoO logic, so there wasn’t even an area penalty for the move.

    关于multithreading - 超线程/SMT 是一个有缺陷的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078766/

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