當前位置: 華文星空 > 知識

為什麽一說超威半導體(AMD)的缺點就被一堆支持者杠?

2020-06-04知識

因為大部份人根本用不出來AMD的缺點,而AMD的支持者大部份都還算是比較懂電腦的。

說在前面,既然題主在描述中的對比廠家是Intel,那麽討論範圍限制在CPU這兩個兩家廠商的共有業務範圍。單就這兩家最新的CPU來說,和Intel相比,AMD的缺點其實不少的。

<2020/05/16補充>

AMD的顯卡問題就不說了,根題主說的沒關系,而且我估計隨便上一個論壇說AMD顯卡驅動不穩定,不支持CUDA,效能不行發熱大之類的缺點,應該也沒誰和你杠。

銳龍一代、二代的問題也不說了,畢竟三代已經出來了,很多問題AMD已經改了不是?所以這裏就只討論三代銳龍,也就是Zen2架構的AMD CPU。

</2020/05/16補充>

頻率低

這個看參數就好了,Zen2最高頻率只有售價5000+的R9-3950X的4.7GHz,而更常見的桌上型號,R7-3800X只有4.5GHz [1] 。Intel的剛釋出的十代,牙膏歸牙膏,i9-10900K單核睿頻最高5.3GHz,i7-10700K則是5.1GHz。即便是上代的九代,i9-9900K單核睿頻5.0GHz,i7-9700K是4.9GHz [2] 。比對應的銳龍還是要高一些。

雖然說今天的CPU都是多核心,即便是單個核心,也是超純量架構(Superscalar),多執行單元以及亂序執行。效能不能光看頻率,還要看IPC,但畢竟這些技術並非是任何場景都適用,某些程式碼就是只能老老實實的逐條指令執行, 所以頻率還是一個很重要的影響效能的參數。

然而,一般人輕易感受不到這個缺點。 2002年Northwood架構的Pentium 4開始支持超執行緒,家用級CPU進入多執行緒已經18年;2005年Intel釋出Pentium D,AMD釋出Athlon 64 X2,家用級CPU進入多核心時代已經15年;2005年就有3.8GHz的Pentium 4 HT 670了,早幾個月還不少人選擇裝機的9400F睿頻也不過4.1GHz,CPU頻率停滯不前也有15年了。 需要效能的套用早就對多核心多執行緒進行了最佳化了,而2020年的今天還是單執行緒的套用,對CPU效能要求會高到哪裏去?4GHz以上的Zen2會不夠用麽? 更別說Zen2的IPC比Intel 6~10代一直不變的SkyLake架構(單指CPU內核架構)要高不少, 也許個別套用中Intel的高頻率還是有優勢,但綜合來說Zen2的單核效能並不比Skylake差多少 [3]

核心積熱嚴重

AMD的Zen2是7nm工藝,單個CCD最多8核心,39億晶體管,Die面積74mm²。作為對比,同樣是8核16執行緒的i9-9900K,Die面積是174mm²,大了一倍多。高中物理沒忘光的話,應該還記得熱傳導效率和接觸面積成正比,和溫差成正比吧?假設發熱相近,Zen2的Die面積少一半多,Die和頂蓋的溫差就會高一倍多。當然,Zen2還有一個12nm的IO Hub,也會產生一部份熱量,和9900K相比,頻率低制程先進,發熱量也低不少。但重負載下,單算核心發熱量和接觸面積,和9900K比還是吃虧不少的。所以不少人會覺得Zen2溫度很高,尤其是和AMD上一代的同核心數量型號相比 [4]

不過這個缺點,除了FPU烤機外,一般人也是感覺不到的。 畢竟也不是所有人都整天渲染3D,日常套用又有幾個能跑滿8核16執行緒的3700X?就算能跑滿16執行緒,也不一定都是AVX套用,傳統整數、SSE套用的滿載功耗比FPU烤機還是低不少的。更何況,同樣8核16執行緒的9900K,就算不超頻,FPU烤機功耗其實比3800X還是高不少的,溫度通常也會更高一點。至於和上代的Zen+比,別忘了Zen+的AVX單元是殘廢的128bit,執行一條256bit的AVX指令就要兩個單元拼起來一起執行,相當於少了一個AVX單元;加上12nm工藝,Die面積更大,溫度比Zen2低也就很正常了。

3700X比2700X功耗低
但是溫度高不少,好在還是比9900K低幾度。

IF總線頻寬低

Zen2的CPU,CPU核心存取記憶體控制器、存取其它CCX上的核心、存取其它CCD上的核心,PCI-e控制器存取記憶體,全部都是透過Infinity Fabric總線。IF總線256bit寬,頻率跟隨記憶體介面且最高1866MHz(DDR記憶體介面頻率翻倍,對應DDR4 3733),頻寬只有59.7GB/s,和雙鍊結DDR4 3733一致。因此,如果進行需要大量吞吐數據的高效能計算,記憶體頻寬吃滿,這個時候不同的CPU核心之間又需要進行大量的緩存數據同步,或者PCI-e器材同時大量存取記憶體時,IF總線很可能出現堵塞導致CPU停下來等待數據,效能無法發揮 [5] [6]

雙CCD R9的IF總線,圖中藍色方框

如果是更多核心的HEDT平台的執行緒撕裂者和伺服器平台的EPYC,CCD和IO Hub之間的IF總線是不對稱的,CCD讀取256bit寬,寫入減半只有128bit寬。出現堵塞的概率會更高。

作為對比,Intel的九代Coffee Lake,十代Comet Lake,核心之間、核心和記憶體控制器都是透過環形總線連線 [7] 。環形總線和IF一樣是256bit寬 [8] ,但是頻率高得多。即便是筆記本平台的i7-9750H都有4200MHz,頻寬可以達到134GB/s。桌面CPU帶K字尾的可以超頻,超到4800MHz的也不少見。

Coffee Lake的環形總線
Ring總線最高頻率4200MHz的i7-9750H

如果是伺服器平台的Mesh總線,我沒找到具體的技術細節。但一方面Mesh是Ring的升級版,即便頻率比Ringbus低,但頻寬應該還是要比Ring更高的 [9] 。另一方面,即便是最小的4×4布局的LCC,每個站點只能傳輸一個方向的數據,理想狀態下也可以同一方向的四根總線同時傳輸數據,等同於4根總線的頻寬;如果可以同時傳輸兩個方向的數據,則是8根總線;6×6的XCC則是6/12根總線。

Skylake-X的Mesh總線

然而,這個缺點也是一般人很難碰到的。 桌面套用能吃滿這麽高頻寬的場景幾乎不可能出現。反倒是筆記本平台的Renoir架構,因為整合了核心顯卡,使用系統記憶體作為核心顯卡的視訊記憶體,並且核心顯卡存取記憶體控制器也是用同一根IF總線,這個頻寬不足的問題相對來說就很容易碰到了。參考和Renoir的核顯效能相近的MX150,一般會配備64bit的GDDR5 6000,視訊記憶體頻寬48GB/s。而筆記本平台的Zen2 IF總線頻率更低,標壓平台只有1800MHz,頻寬57.6GB/s;低壓平台1600MHz,頻寬51.2GB/s,留給CPU的頻寬沒多少。這個問題更具體的看我的另一個回答:

FMA埠堵塞

Zen2有兩個FMA單元,兩個FADD單元,每個單元有兩個對應的寄存器檔埠。然而兩個FMA單元和其中一個FADD單元共用寄存器檔埠。FMA指令是計算類似A=A*B+C這樣的指令,是三個運算元的,因此每個FMA單元需要一個額外的寄存器檔埠。FMA單元執行FMA指令時,會導致其中一個FADD單元缺少埠無法執行指令。或者反過來,這個FADD單元執行指令時,兩個FMA單元都要等待指令執行完畢後才能執行FMA指令。碰到FMA指令和其它由FADD單元執行的指令並列時,會導致指令堵塞。

FMA單元執行FMA指令時會導致其中一個FADD單元無法工作

這個缺點,也不是那麽容易碰到的,而且和Intel相比其實也不算缺點。 畢竟沒幾個套用有這麽密集的FMA指令,還要有大量可以並列的其它需要FADD單元執行的指令才會導致堵塞。而且Intel不管是14nm的Skylake還是10nm的SunnyCove架構,整數浮點共用發射埠,浮點單元也只有三個埠,也就是最多只能三條浮點指令並列,也並不比Zen2好 [10] 。事實上,Zen2是整數和浮點單元分離,都有獨立的發射埠,同樣是6發射,這個時候Zen2還可以執行3條整數指令,Intel則只能執行一條整數指令和兩條記憶體讀寫指令。

Intel兩代架構同一周期都只能最多同時執行浮點×3+整數×1+L/S×2
Zen2即便堵塞,同一時鐘周期也可以執行浮點×3+整數×3

不支持AVX512指令集

AVX512指令集是SIMD(Single Instruction Multi Data,單指令多數據)指令集合,一條指令可以處理16個32位元數據,或者8個64位元數據,比AVX2效能翻倍。但Zen2不支持。

不支持AVX512,如果用CPU做高效能計算的確是個缺點,問題是你是否在這個範圍內? 不是的話,日常套用你先找個支持AVX512指令集並且效能有大幅提升的套用出來再說——用AVX512指令集烤機的測試軟件如AIDA64不算哦。而且Intel除了伺服器和HEDT平台,輕薄本上只有四核的IceLake支持AVX512,主流桌面、標壓筆記本平台也是不支持的。而伺服器平台、HEDT平台和輕薄本平台,又有幾個套用跑AVX512的效能比核心數量多一倍的Zen2更好?而且如果要用SIMD指令做高效能計算,大部份演算法中,用顯卡/計算卡來計算效能好價格便宜功耗還低。

只支持到雙路系統

Zen2因為使用了IF總線來做CCX/CCD之間的互聯,無法再擴充套件來支持多個CPU。伺服器平台的雙路Zen2不得不使用了64根高速IO通道(可以配置為PCIe通道)來進行互聯 [11] 。作為對比,Intel的CPU最高有三個UPI通道,可以支持8個CPU [12] ,據說不依照Intel規範來設計主機板的話,可以最高支持到32路。

這是Zen,Zen2也是類似的:單個CPU有128根高速IO通道
兩個CPU之間使用高速協同互聯
互聯之後每個CPU就只有64根高速通道了
XCC的至強可延伸一共有3個UPI x20控制器
8路至強可延伸的連線方式,任意兩個CPU之間互訪最多只需要間隔另外一個CPU

因為這個缺點,會帶來另外兩個缺點:

  1. 單個節點最大記憶體只有2TB×2=4TB。單個EPYC最大是8通道2TB記憶體,雙路CPU就只有4TB了。而Intel的8路系統,最多可以上到4.5TB×8=36TB記憶體。如果單台伺服器需要大容量記憶體的話,這個無解。
  2. PCIe通道過少。單個EPYC是128根PCIe 4.0通道,雙路系統因為每個CPU都要拿出來64根進行互聯,所以還是只有(128-64)×2=128根。而Intel的8路系統,總計可用PCIe通道是44×8=352根。做全NVMe儲存會好用很多。

這幾個缺點麽,你覺得會有多少人碰到? 雙路Zen2可以提供最多128個核心,256執行緒,4TB記憶體,128根PCIe 4.0通道,總計頻寬2Tbps,可以插8張PCIe 4.0 x16或者16張PCIe 4.0 x8(等同於PCIe 3.0 x16)的顯卡/計算卡。又有幾個人需要更高的配置?

軟硬件相容問題

即便銳龍上市以來大受歡迎從Intel手上搶回來不少份額,AMD在CPU市場的份額目前還是比Intel低不少的,而且Zen上市不過三年,Zen2去年才剛剛上市。Intel光是Skylake架構的CPU上市都五年了。份額少、新架構,自然就難免有某些硬件、軟件開發商做測試用例沒有涵蓋到,出現Bug的概率比Intel更高也是正常。尤其是一些本來就很少眾的軟件和硬件,甚至可能已有使用者群體裏面就沒有用AMD平台的。但是大部份使用者使用的使用者群體大一點的常見軟件,有相容性問題的通常新版也解決了——某些使用者因為習慣或者特殊需求不願更新軟件版本的,這個老天爺也沒辦法。

使用者使用問題

不管是使用Intel平台還是AMD平台,碰到問題總是難免的。碰到了問題,在歸咎於CPU並且上網發帖噴AMD之前,作業系統、驅動程式、軟件、BIOS更新過了麽?嘗試過尋找問題發生的原因麽?向軟件開發商送出BUG反饋了麽?你知道這個問題是你自己的個例還是普遍存在麽?Intel平台的使用者通常會歸咎於自己使用不當,或者懷疑軟件問題,為什麽用AMD平台出了問題就歸咎於是CPU的缺點呢?AMD的份額即便比Intel低不少,一個季度的出貨量也是千萬數量級的,真的是平台有問題讓你第一個碰到了?這樣的機率都讓你碰上了不檢查一下自己人品有沒有問題麽?上來就發帖噴AMD有什麽什麽問題,但又說不清楚具體細節,人家也無法重現,就別怪其它人回帖「人傻怪電腦」了。

<2020/5/16補充>

AMD不是不能罵,想罵就罵。不過呢,如果你用AMD平台,碰到了卡頓、套用崩潰、系統藍屏之類的問題讓你感覺很不爽,又實在因為個人水平/條件有限/時間不允許等原因既解決不了,又找不到具體故障原因的,就想上網發帖罵一下發泄發泄情緒。我建議你:

罵AMD的時候,連軟件開發商、記憶體/主機板/電源/硬碟生產商一起罵

因為這些東西任何一個有問題都會導致這類問題出現,光罵CPU廠家一家有失公平。多罵幾家也有助於更好的發泄情緒不是?

</2020/5/16補充>

Intel平台的缺點

大家都知道的,14nm++…+,發熱大,價格貴,再杠的人也不能不承認不是?沒法杠你可不就顯得友善了?

知道Intel的這些缺點而選擇了AMD,不是僅僅知道i3、i5、i7數碼越大越好的,即便自己不看硬件相關的文章,通常也是認識個懂一點得朋友推薦的。人家用的好好的,看見有人上來就一通噴AMD這個那個缺點,但又說不清楚到底什麽問題,杠你一下不是基本操作麽?

參考

  1. ^ AMD:處理器規格 https://www.amd.com/zh-hans/products/specifications/processors/7746,7696,2571,2586,2601,2611,3376,9221,2481,11776,1736,1896,2466,176,146,116
  2. ^ Intel:產品對比 https://ark.intel.com/content/www/cn/zh/ark/compare.html?productIds=186604,186605,199332,199335
  3. ^ Anandtech:The AMD 3rd Gen Ryzen Deep Dive Review https://www.anandtech.com/show/14605/the-and-ryzen-3700x-3900x-review-raising-the-bar/6
  4. ^ 超能網:銳龍9 3900X/銳龍7 3700X處理器同步評測 https://www.expreview.com/69286.html
  5. ^ AMD:The Path to Zen 2 https://www.slideshare.net/AMD/the-path-to-zen-2
  6. ^ PC Watch:第3世代Ryzen Threadripperを支えるダイ間の接続技術 https://pc.watch.impress.co.jp/docs/column/kaigai/1223210.html
  7. ^ Wikichip:Coffee Lake - Microarchitectures https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake
  8. ^ Anandtech:The Ring Bus & System Agent - Intel's Sandy Bridge Architecture Exposed https://www.anandtech.com/show/3922/intels-sandy-bridge-architecture-exposed/4
  9. ^ Anandtech:The Intel Skylake-X Review https://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7-7820x-and-i7-7800x-tested/5
  10. ^ Anandtech:Taking a Bite of the Sunny Cove Microarchitecture https://www.anandtech.com/show/14514/examining-intels-ice-lake-microarchitecture-and-sunny-cove/3
  11. ^ Wikichip:Zen - Microarchitectures https://en.wikichip.org/wiki/amd/microarchitectures/zen
  12. ^ Wikichip:Skylake (server) - Microarchitectures https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(server)