引用:
作者everspiral
開板大大,你說的ht可以讓效率提升2倍,但是如果在ht模式下,ex發生意外時,那不就要付出
更大的代價來重置,因為會變成2顆cpu都發生錯誤阿!還有這種情況發生時要怎麼解決錯誤
才會最有效率
|
HT 是多提供一個入口讓 OS 將其他 Thread 叫進來排程,
因為不同 Thread 指令不相依,所以出錯機會其實是降低的,
還有效能並不是兩倍喔,可能是我的圖讓你誤解了,
HT主要是藉OS之力提升指令排程能力,
對效能的影響多寡還是要依實際運作情況而定。
在多工情形下 HT 是一定會有正面幫助的。
另外就是有些人認為單一執行緒程式只能發揮 HT CPU 的一半效能也是不對的,
原因可能是因為Windows工作管理員看到的CPU使用率只有一顆CPU有滿載。
就算是單一執行緒程式,只要能針對CPU特性,或善用SIMD指令集,
一樣有辦法將每條管線填得滿滿的,就算所看到的CPU使用率只有 50% (一個窗口閒置)。
今天也可以寫兩個不停運作的 idle thread 來填滿 HT 的兩個窗口,
保証在 Windows 下看到 100% 的 CPU 使用率,但是 CPU 涼到底

。