2017-10-14 67 views

回答

0

這完全取決於使用情況。像正常這樣的主觀術語有很大的餘地!有超線程(HT)有用的用例,以及會對性能產生影響的情況。性能降低的

這樣一個案例是爲應用程序大量使用的AVX指令。 AVX指令在矢量處理單元(VPU)中執行,其中每個內核在Intel Xeon處理器中都有一個。嘗試訪問VPU時,其他線程會阻止,如果不可用,導致使用HT時性能不會提高。如果你有4個HT的內核,允許你運行8個線程,你實際上一次只能運行4個VPU指令 - 所以你的其他4個線程在完成時會被阻塞。阻塞和調度的額外開銷通常會使您的吞吐量低於在4個內核上運行4個線程的情況,並禁用HT。

同樣,在8個核上運行的僅有4線程,OS調度器可以在線程上的任何物理內核上運行 - 所以有可能仍然是一個機會,在那裏等待另一個一個線程塊來完成。一些較新的應用程序和作業調度程序現在可以與OS協調以在物理內核上「固定」線程,從而允許HT被啓用,但不會超額訂購正在覈心上運行的線程數量。隨着時間的推移,這可能會變得更好,但確實需要開發者的意識。

更多一般用途的情況下,像普通的服務器處理許多類型的工作負載,HT的優勢,在一個單一的核心,通常可以提高性能運行額外的線程。

相關問題