效能調校的完善版,AMD Zen 3 一點都不簡單

作者 | 發布日期 2020 年 12 月 15 日 8:00 | 分類 晶片 , 處理器 Telegram share ! follow us in feedly


雖然 2020 年遭武漢肺炎肆虐,但卻絲毫不影響「雙 A」(蘋果 Apple 和 AMD)下半年發表新品的討論熱度,從 iPhone 12 到 M1 的 Mac、從 Zen 3 到 Big Navi,也引發一連串全球科技媒體瘋狂作文比賽。

2020 年的遺珠之憾,只剩下 AMD Zen 3 微架構的 EPYC 處理器(代號 Milan)遲遲尚未現身。因英特爾新一代 Xeon 處理器 Ice Lake-SP(第三代 Xeon SP 平台 Whitney),也將延期到明年第一季,x86 雙雄新一波「伺服器市場頂上決戰」就只能再等等了。唯一可以肯定的是,依據目前所知的情報,純論價格與效能競爭力,這回英特爾恐怕還是凶多吉少,畢竟核心數量還是差了一大截,偏偏又不是天底下的應用程式都會用到 AVX-512。

Zen 3 依舊讓人值得期待

在這之前,各位可先回顧一下自從英特爾「最終極 x86 處理器微架構」Skylake 之後,x86 雙雄的主力核心演進簡史。論帳面規格,特別是非循序指令執行核心和記憶體子系統,AMD 看似都占不到便宜,AMD 可在 Zen 2 一舉超車英特爾,和蘋果 A14 / M1 的嚇人跑分數據一樣,都是仰仗台積電的製程優勢,至於為何他們(尤其蘋果)有本錢搶先採用台積電的最新製程,支配性的商業因素皆其理甚明,也不在本文討論範圍。

但這不意味著 Zen 3 就毫無看頭。事實上,即使 Zen 3 製程仍停留在台積電 7 奈米(N7),而非先前產品時程表公佈的極紫外光微影 7 奈米(N7+),但微架構層面的改進幅度,卻不遜於 AMD 歷代 x86 處理器的重大更新,這光從 AMD 特別替 Zen 3 成立全新處理器家族編號 Family 19h,並重新發布軟體最佳化手冊,即可略見一斑,排除「被英特爾鐘擺逼到小步快跑的 K10」,連「走音工地秀」的四個世代(15h)和 Zen / Zen+ / Zen 2(17h),都得不到這樣的「禮遇」。

講更直接一點:如同英特爾實質末代 Itanium 微架構「Poulson」奠基於「英特爾花了這麼多年,總算搞清楚 Itanium 的應用程式,最需要怎樣的處理器」,Zen 3 象徵的是「AMD 對 Zen 微架構經過三年市場考驗後的期末報告」,大規模重新調整指令執行效能,將資源集中在目標市場最需要的刀口,隱藏在洋洋灑灑指令效能表背後的行銷意含,重要性不言可喻。

不過,相同的台積電 7 奈米製程,相較 Zen 2,Zen 3 僅增加 6.4% 電晶體數和 10% 晶粒面積,卻一舉提升平均 19% 的 IPC(Instruction Per Cycle),套句 AMD 的說法是「從每 MHz 頻率平均提取出 19% 額外效能」,象徵兩件事:

  • Zen 3 解除了 Zen 2 的「明顯效能瓶頸」,特別是決定指令平行化程度的管線前端。
  • 馬路要寬,車子也要跑得快,既然可以「餵食」更多微指令(uOp),那後面的執行單元群也要吃得下。或更精確一點:吞得下 AMD「認定為客戶最經常使用的指令」。

對長期關心處理器技術發展的讀者,想必早「品嚐」過無數科技媒體報導 Zen 3 時「看簡報說故事」深度架構分析,並很可能臉上掛著跳動的眼皮、顫抖的嘴角、劫後餘生倖存者的表情,默默爬完這些有字天書。筆者體恤各位的求知慾,直接將 Zen 3 最關鍵性的改善項目與理由,由外到內,列表整理如下,方便迅速掌握重點。

上面這幾項,大概第二項「微指令緊縮」會讓人摸不著頭緒,但技術原理可從 AMD 在 10 月 IEEE Micro 發表的某篇論文《Improving the Utilization of Micro-operation Caches in x86 Processors》發掘全貌,只要一張圖就可理解目的:減少微指令快取的浪費容量。

L3 快取記憶體從兩塊變成一塊,也是對改進效能頗具立竿見影之處,當考量到 AMD 的 Chiplet 路線會帶來更複雜性能調校議題時,就不難理解減少快取數量的必要性。

說到底,再多琳瑯滿目的先進技術與「技術行銷專有名詞」,最終仍須反應在處理器執行指令的效率,否則毫無意義,所以我們就以「成敗論英雄」,透過 AMD 於 11 月 6 日官網發表的軟體最佳化手冊(Software Optimization Guide for AMD Family 19h Processors)附的指令效能表(Family 19h Instruction Latencies),瞧瞧 AMD 究竟幹了哪些好事,如何貫徹「Make The Common Case Fast」大原則。

Zen 3 的全貌仍有不明之處

可能基於商業機密或某些「不可抗力」,AMD 並未「補完」所有指令的資料,更不乏直接標上「微碼」(uCode)暗示這指令的效能將慢到無法保證者,但光從常見的運算指令,即可一窺其全貌。

按照總數來推算,Zen 3 強化了多達「五分之二」指令的執行效能。那麼問題來了,犧牲掉的指令,主要屬於那些範疇?簡而言之:

  • x87 浮點運算指令:以浮點乘法(FMUL)最具代表性,充分反應 SSE2 與後代取代「愚蠢堆疊架構」80×87 的大勢。
  • 引述執行指令:從 Pentium Pro 問世的 CMOV 等所謂引述執行(Predicated Execution)指令,固然有減少分支指令的優點,但卻也是打造高效能非循序指令核心的緊箍咒(當指令還在管線前端時,就需事先安排保留執行單元的資源),也因此,連創造 CMOV 的英特爾也從 Pentium 4 開始「放生」。ARM 指令集邁向 64 位元 v8 時,最關鍵也最偉大的一步,就是徹底揚棄引述執行,然後就爽到生態系統「純 64 位元化」的蘋果了。
  • 部分 MMX 和 SSE 指令,不意外。
  • 這就很刺激了:AVX 和 AVX2 可謂 Zen 3 的「重災區」,AMD 到現在打死不支援 AVX-512 也就算了,竟然「膽敢」傷害「象徵光明未來的 AVX」,這真的是打在英特爾臉上好大的一巴掌,Linus Torvalds 看到應該會很興奮

這才是 Zen 3 最值得重視的地方:維繫伺服器應用競爭力的同時,也設法盡量兼顧個人電腦的需求。Zen 3 微架構的 Ryzen 5000 已全面性壓倒英特爾的 14 奈米牙膏產品,接著就靜候新型 APU 和 EPYC 帶來多讓人驚豔的優異表現。

最後,近期蘋果 M1 靠台積電 5 奈米和 160 億電晶體,帶來一連串充滿話題性的「討論」,也讓人不得不好奇,同樣製程、預定 2022 年初期登場的 Zen 4 與 RDNA 3 GPU,是否會有更激烈的進化。但可以確定的是,英特爾的壞日子很可能到那個時候,都還沒有看到盡頭的可能性。

(首圖來源:AMD)

延伸閱讀: