gpt4 book ai didi

simd - SSE 和超线程

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

SSE 寄存器是否在逻辑处理器(超线程)之间共享或复制?
对于 SSE 繁重的程序,我能否期望从并行化中获得与普通程序相同的加速(英特尔声称具有超线程的处理器为 30%)?

最佳答案

从英特尔的文档中我不清楚超线程处理器是在线程之间共享寄存器文件还是有两个不同的寄存器文件(我猜它们实际上是不同的,因为否则 HT 线程之间的上下文切换时间会相当长,但这纯粹是一个猜想)。

至于加速 - 这将取决于您的指令组合和调度。请记住,HT CPU 没有任何额外的执行资源(ALU、加载/存储单元等),性能提升是由于更好地利用了这些资源,因为典型代码,尤其是在现代处理器上,花费了合理的数量等待内存加载和存储完成才能继续执行的时间。 HT 允许这些加载和存储交错,以便一个线程在读取时停止,另一个可以切换并开始使用以前一直处于空闲状态的执行资源。

我猜你会在 SSE 程序的多线程中看到什么样的性能提升将取决于内存操作与算术操作的比率。例如,如果您的 SSE 程序从内存中加载 4 个 SSE 寄存器,对它们执行 10,000 次 SSE 操作,然后将这 4 个寄存器写回,那么您不太可能从 HT 能够重叠内存访问中看到很多优势,因为99% 的程序运行时将用于 SIMD ALU 而不是内存访问。

另一方面,如果您的程序计算量很大,那么对您的程序进行多线程处理可以极大地提高多核处理器的性能,并且可能比 30% 的改进要好得多,因为在这种情况下,您的代码可以访问一次多核。

关于simd - SSE 和超线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542140/

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