為什麼 Intel 的超執行緒技術是乙個核兩條執行緒,而不是更多?

時間 2021-05-10 04:04:00

1樓:回眸一笑倒蒼生

因為cpu的平行計算需求沒那麼高,沒必要在單核裡面堆太多計算資源,自然也沒有那麼多可能閒置的資源來跑另乙個執行緒了。

反觀gpu,平行計算需求很高,單核的計算資源就遠超cpu。例如v100,通常我們說他有5376個cuda核心,其實並不代表他真的是5376核的處理器。5376這個數字只是它的fp32和int32單元數量而已。

真正跟cpu的核心同級的是sm,v100總共有84個sm,比現在頂級的64核cpu也多不了多少。

但是單個sm包含的運算資源要遠大於乙個cpu核心。乙個sm包含64個fp32單元,64個int32單元,32個fp64單元,8個tensor core單元。與之對比的是,cpu單核包含的以上計算單元用乙隻手就能數過來。

受計算單元數目所限,桌面cpu單核的超執行緒只有2個,而gpu的單核如果也支援超執行緒,可能會支援十幾個。

2樓:船長

每個核乙個執行緒是蘇聯,乙個指令過來,讓你幹啥你幹啥,有些邏輯單元閒著就閒著唄,沒有命令就不能開工。

每個核兩線程是大陸,在保證核心任務(浮點計算)的基礎上,如果你還有餘力,那麼允許你利用空閒資源幹點兒別的。

執行緒比這更多的話就會比較接近港台,要說自由民主倒是也不缺,但是資源總量沒那麼多,你就是在分配方面玩兒上天去,也感受不到明顯的提公升了。

3樓:蹦蹦騎士

沒理解錯的話,超執行緒應該是共用計算單元的,好比兩個人共用一台電腦,提高電腦利用率,所以不適合太多執行緒。

如果乙個執行緒對計算核心的利用率是80%,那麼在增加乙個執行緒就能吃滿乙個核心使利用率提高到100%,總體效能提高20%,但是對於單執行緒而言從80%降到了50%是反而降低的,所以如果再增加執行緒的話,總體效能無法再提公升反而單執行緒效能會下降~

4樓:pansz

因為更多執行緒需要對架構重新設計,而這樣的設計會影響單核效能

在不犧牲單核效能的前提下,2 執行緒是最優的。

如果堆核非常困難,多執行緒需求非常強烈,那麼可能會通過犧牲單核效能來設計出更多超執行緒的CPU。

然而現實是堆核非常容易,需要更多並行只要堆核就夠了,沒必要折騰CPU架構犧牲單核效能。

核心數量對目前的PC應用來說根本不是問題,單核效能才是最主要的需求。在這樣的需求下,就不太可能為了 4 執行緒 8 執行緒超執行緒而犧牲單核效能。

至於未來,高效能處理器是不是向多核發展,這一點我個人認為是存疑的。

因為,能夠高度並行化的計算,現在主流已經轉移到GPU上去了,GPU在並行化計算方面的能力比CPU強太多太多,以至於CPU在平行計算方面的算力只是GPU的零頭。

所以,沒有必要過於追求CPU的並行運算效能,對CPU來說,單核效能依然是最重要的引數,而且在可以預見的將來也將持續如此。

5樓:Xi Yang

超執行緒本質上是多發射+亂序執行的副產物。

有了多發射、亂序執行之後,CPU就可以在一定程度上通過增加同時執行的指令數來提公升單核效能。但發射數越多,潛在的浪費可能性就越大:程式未必有那麼好的前後無關性來填滿你的同時執行能力,那麼剩下的就會被浪費。

超執行緒就是為了利用一下浪費的這些執行能力,讓它們去跑另外乙個執行緒的任務。

那麼為啥就倆超執行緒?說明現在的核還沒有大到「必須塞仨執行緒才能充分利用浪費資源」的那種程度。

為啥不把核搞得更大,以便容納更多的超執行緒?因為超執行緒出來的並行能力並不「好」,它是不如分成兩個真核心的處理力的,本質上只是為了廢物利用。如果為了超執行緒這個副產物去大幅度增加核的尺寸,那就是買櫝還珠了。

6樓:

一核一線程:當出現多個程式需要運算時,就必須排隊等待當前執行緒中斷,消耗時間換取空間。

一核心二線程:可同時包攬兩個運算,利用空餘進行第二線程運算,避免太多中斷,增加效率。

7樓:崔xf

其實只有乙個原因:效能/成本比值最大化

在不增加單核資源的情況下,乙個核增加一條執行緒也是需要增加成本的,比如說intel的U,5%的成本增加提公升25%的效能

125/105=1.19

如果再增加一條,成本增加可能會高於5%,但效能的提公升估計只有5%了130/110=1.18

你就會發現,一核3執行緒其實已經不划算了,還增加了設計複雜度除非你放大單核資源,比如說把兩個物理核壓成乙個物理核,上面丟5條執行緒,或許有點用,但或許也沒多大用

8樓:Glowing

Intel x86 CPU每個核心都包含乙個整數和乙個浮點單元,超執行緒技術只需要將同一核心虛擬為兩個執行緒,便可將同一核心的整數單元和浮點單元分別提供給兩個不同的程式使用。

9樓:

記得以前乙個資料說Intel超執行緒只能帶來20%多的效能提公升。那說明超執行緒瓶頸在計算單元而不是排程單元,加更多的執行緒數意義也不大了。

手機 CPU 為什麼不採用超執行緒技術?

過期的白菜 超執行緒誕生的原因是因為單執行緒喂不飽流水線。大部分情況下,影響cpu執行效率的原因是因為cpu要等io,所以額外弄了一組暫存器在等待的時候可以切換到另乙個任務不要讓流水線閒著,本質就是提高cpu的利用率。如果已經喂得飽那其實超執行緒沒什麼用,還需要多做一組暫存器。ia這邊超執行緒能提公...

為什麼網上少有 Intel 粉的足跡?

暴風烈 雖然我是個多年A飯 qiong B 從自用athlon 4000 965,A8 6600K 到ryzen 1600,對intel是服氣的,除了貴和P4時代,AMD真的沒法跟intel打,技術儲備太厚了。相當一段時間內,intel就是半導體的代名詞。他的強大,已經讓普通人都習已為常了,A粉也無...

為什麼Intel的CPU提供的PCI E通道數量那麼少?

karlestira 看到都在噴AMD的pcie一樣不給力的,老晶元組是19年上半年以前的事情了,現在2020年了,不一樣了。zen2,x570下行可以擴充套件兩個pcie4.0 x4,加CPU給乙個pcie4.0 x4,可以給出3個滿速的3.0 m2 晶元組是4.0頻寬完全可以帶起兩條3.0 m2...