請教各位大大
同時脈的情況下四核心會比雙核心四線程的性能快嗎
會的話~請問快多少呢
又如同時脈下...雙核心四線程又會比雙核心快多少呢
有超過50%嗎...超過不就等於雙核心四線程實際等於三核心的性能了?
並假設所應用的軟體通通支援四核或四執行緒多工
相信很多人也想知道這樣的答案...感謝各位大大
https://en.wikipedia.org/wiki/Hyper-threading
大概30%上限,等同多少核自己算吧.這是intel的
至於AMD的zen HT效率就等有買的人測試了
e38lio wrote:
謝謝大大回答
看來多...(恕刪)
說的不太對... Intel的HT技術 對多執行緒運作是有利的
由於一般的軟體不能平均的分配工作給每個核心 HT技術是讓一個核心能同時處裡兩個執行緒
避免有的核心閒置 但前提是單核心的效能夠強 如果核心都滿載只是HT沒有效果而已
不會因為一個處理程序死當...造成該核心停擺
==> 這句話錯得滿離譜的...
打開工作管理員 會看到執行緒 這個是"虛擬執行緒"

詳細資料內會寫每個軟體使用的虛擬執行緒

我的真實執行緒只有8個 虛擬執行緒有1253個 那作業系統是怎麼分配的?
他只是把1253/8=156 每個真實執行緒負責156個虛擬執行緒 (有些執行緒會是157個)
而每個虛擬執行緒只能限定占用真實執行緒的一小段時間
這樣設計的原因就是怕某個虛擬執行緒卡死 一直占用真實執行緒 所以核心是不會停擺
應該是說會有一小段的時間是卡死的 但核心還是會執行其他作業
多執行緒也帶來比同樣核心數更省電的優勢
==> 這見解不對
HT的優點是更有效分配核心資源 如果都滿載 與同樣核心數相比功耗是大同小異
==> 事實上不是這樣 效能還是有提升
造成兩個所要執行的程序各自慢半拍...反而有性能下降的可能?
==> 就數據而言HT在多個測試而言都是進步或者沒有進步 沒有退步的情況
我認為是跟作業系統在分配核心運作的原理有關
前面提到每個虛擬執行緒會占用真實執行緒(核心)的一小段時間
但如果計算的量很大沒辦法在單位時間內算完 那怎辦?
沒算完的部分會暫時丟到快取或記憶體內 待下次輪到時再繼續計算
但同一個虛擬執行緒 下次會輪到同一個核心計算嗎? 不一定...由作業系統分配
我這邊做了一個小試驗 用專門測試單核效能的cpumark 99
在WIN7的作業系統下開啟工作管理員 可以看的到執行緒只有1
(WIN10底下是6 應該是作業系統的虛擬核心分配問題)

當我開始跑的時候 可以注意到 每個核心的波峰與波谷是錯開的 也就是說每個核心是輪流執行的
(有點不明顯是因為剛好有其他東西也在跑 如果不相信可以自己測試看看 如果有HT要先關掉)

這邊就會出現一個問題 由於上次沒有計算完的資料會放在快取或記憶體 資料就必須搬移
如果前後都是同一個核心計算 那就少了資料搬移的動作 也減少了延遲 無形增加效率
內文搜尋

X