超线程对于性能的提升一般限于那些细粒度且等待时间比较多的算法应用 对于高负荷数值计算,超线程可能起反作用 LZ应当经过测试后谨慎选用
4核8线程,是指4个核,每个核2个线程。 要理解硬件线程(超线程),首先要理解内存访问。现代CPU的速度随摩尔定律发展,但内存的访问速度提升完全跟不上这个节奏。导致20年前读写一次内存大约4个指令周期,变成现在的读写一次内存大约150个指令周期。而通用软件平均每7条指令就会访问一次内存,这样CPU的大部分时间(>95%)都在等待内存访问执行,将CPU的运算速度提升一倍,实际的运行速度也只能提升5%。 为了解决这个问题,在CPU中引入了cache技术,从而减少了对主内存的访问。但是总有cache miss的时候,CPU等待内存访问的时间仍然>50%。 在这种情况下就引入了硬线程,当一个线程执行到访问主内存的时候,就切换到另一个线程继续执行。软件实现的线程切换时间很长,但硬件实现的线程切换只要在一个指令周期内就可以完成了。硬(超)线程间是串行处理的,但是可以避免内存访问造成的浪费。一般情况下,2个硬线程相对单线程有大约40%的性能提升。
2,408
社区成员
1,024
社区内容
加载中
试试用AI创作助手写篇文章吧