超執行緒降低了性能?HT利弊再引爭議
超執行緒(Hyper-Threading)作為一種提升CPU性能的技術獲得廣泛應用,Intel在P4時代首次為桌面級CPU帶來超執行緒加速,Core時代沉寂了,Nehalem之後到現在又重新應用在其CPU中,當然現在的HT與P4時代的HT有所不同,按照Intel的說明,HT技術在不增加物理核心的情況可以帶來10-20%的性能提升。
雖然開啟HT在大部分多執行緒應用中有明顯的性能提升,但是有關HT會降低CPU性能的論據也不少,稍早Bitsum就發文聲稱HT技術會“傷害”CPU性能,其論據主要是微軟支援庫的文章,在Windows 2003 Server最佳化指南中微軟建議禁用超執行緒技術以提高性能,因為這種可以自我調整的HT算法會帶來一些混亂,操作系統的調度器(Scheduler)往往不能識別物理核心和虛擬核心的區別,可能把本該物理核心處理的任務分配給虛擬核心。
SA網站針對這個論點做了測試,對比了i7-3770K在開啟HT與關閉HT下的成績,結果如下:
大部分情況下關閉HT的性能都要低於開啟HT的情況,結果也與我們做過的CPU測試相同,平均下來關閉HT時的性能只有HT開啟時的90%。
SA作出的結論是否定HT技術的想法是杞人憂天,大部分情況下超執行緒技術帶來的是性能提升而不是降低,而且優勢還很明顯,何樂而不為。
事情到此並不算完,下面的讀者在評論中稱開啟HT技術在有些項目確實有提升,但是遊戲幀數不如關閉HT時平滑,特別是最低幀方面,並貼出了在Overclock網站的發帖,他舉了戰地3的例子,開啟HT時平均幀在84fps左右,最低幀在34-51幀左右,而關閉HT後平均幀在86fps上下,最低幀為40-59fps。他的表述也得到了很多玩家的贊同,表示遊戲中開了HT確實不如關閉時更流暢。
還有其他玩家援引Xtremesystems論壇以及Youtube上的視訊來證明自己的說法,這裡就不一一列舉了。
從自己做過的測試來看,在多執行緒支援較好的應用中HT效果還是很明顯的,但是遊戲跟應用程序不太一樣,它們普遍只對雙核最佳化,真正對四核最佳化的都不多,更別說開啟HT之後的8個核心了,而且遊戲幀數波動比較大,偶爾幾次的fps數據很難證明就是HT導致的。
但是從另一方面看,HT虛擬出的核心畢竟不是真的物理核心,微軟在Windows 2003的最佳化中肯定也是做過研究的,系統的調度器存在分配不當的可能,不過這個問題也算是解決了,今年初微軟發布的任務調度補丁名義上是給AMD的推土機準備的,實際上則是最佳化了調度器的任務分配,因為推土機的模組化架構也算是一種超執行緒技術,不過是物理核心,而Intel是虛擬核心。
這樣的爭議還會一直存在,而HT超執行緒總體上還是利大於弊,多執行緒應用中效果明顯,至於所說的性能降低問題,如果玩家覺得遊戲中幀數確實不夠流暢,可以試試關閉HT(前提是硬體配備沒問題,顯示卡不是瓶頸),畢竟四核或者八核對遊戲來說沒區別。
|