從歷史脈絡理解 AMD 為何要雙軌化 GPU 發展路線

作者 | 發布日期 2020 年 03 月 10 日 16:23 | 分類 GPU , 科技史 follow us in feedly


最近 AMD 在 2020 年財務分析師大會,宣布讓人極度訝異但也不會太意外的「雙軌化 GPU 發展路線」:在 GPU「泛用化」基礎上,「遊戲優化的 RDNA」和「運算導向的 CDNA」分道揚鑣,「體內 DNA 不同的」兄弟登山,各自努力。老對手 nVidia 這幾年來也是分開專業與遊戲 GPU,但也沒有誇張到「讓上一代架構繼續枝繁葉茂」。

更諷刺的是,CDNA 並非「全新 GPU 架構」,而是回頭繼續發展第四世代的「南方群島系列」CGN 繪圖核心,這重大決定象徵 2006 年 7 月購併 ATI 的 AMD,融合 CPU 與 GPU 的「Fusion」與昔日 GPGPU 大戰略的野心終結,以及 AMD 對市場局勢的致命誤判。

當「運算」和「遊戲」分而治之:GCN 的 Vega 與 RDNA 的 Navi

套用現在市面產品,RDNA 和 CDNA 說穿了,分別是 AMD 現行同為台積電 7 奈米製程的「Vega」(織女星)和「Navi」(仙后座),分屬第四世代的 GCN(Graphic Core Next)與第五世代的 RDNA(Radeon DNA)。GCN 從 2012 年到 2019 年,製程橫跨 28 奈米、14 奈米、12 奈米 到 7 奈米,演進 5 個版本,唯一共同點只有從未實質威脅到 nVidia 的 GPU 霸業。

這兩者的設計理念也大相逕庭,GCN 是「追求 GPGPU 的泛用理想」而「Easy To Program For Performance」,「讓 ATI Radeon 的遊戲基因再度偉大」的 RDNA 則是「Easier Achieved Performance」,一個讓你寫程式做自己想做的事情,另一個讓你玩遊戲不需擔憂效能不足,差異不言可喻。很久以前就不乏「GCN 為運算而生,不太像為了遊戲的架構」的說法。

7 奈米 Vega 的弦外之音

2019 年 2 月發表台積電 7 奈米製程「Vega 20」核心的 Radeon VII,距離預定的全新 Navi 不到半年,外界第一時間會聯想到的可能性,大致如下:

  • 仿照英特爾的 Tick Tock 模式,用舊架構提前驗證新製程,降低出問題的機率。
  • 7 奈米製程的 Zen2 世代 APU 開案已久,可搭配的 Navi 核心趕不上時程。
  • 某「超級客戶」很習慣用 Vega。

但 Vega 20 相較三星 14 奈米製程的前代,有了飛躍性改進:

  • 晶粒面積大幅縮小,從 495mm² 削減到 331mm²。
  • 2 倍 HBM2 記憶體容量。
  • 2.1 倍 HBM2 記憶體理論頻寬。
  • 雙倍精確度浮點的效能從單倍精確度的 1/16 激增 4 倍到 1/4,但 Navi 卻沒有跟進。

順便一提,Navi 跑 OpenCL 不但沒 Vega 快,連 Navi 核心的 RX5700XT 還跑輸 GCN4 世代 Polaris(北極星)核心的 RX590。這些都是 Vega 即將「轉進」純運算應用的強烈訊號。

至於先前隨著 MacOS 測試版大量洩漏的 AMD GPU 代號與近來流竄坊間的謠言,也間接透露 AMD 的「雙軌共構大計」。

  • RDNA 2 的 Navi 21:台積電 7 奈米+(EUV)製程,晶粒面積 505mm²、80 個 CU、5,120 個 SP、GDDR6 記憶體。為了在遊戲市場與 nVidia 競爭,光跡追蹤(Ray Tracing)自然是需要盡快補強的功能。
  • 「全新 CDNA」的「Arcturus」(大角星):台積電 7 奈米+(EUV)製程,晶粒面積應該會大的恐怖,實際上的第六代 GCN 架構,核心規模高達 128 組 CU 單元,SP 單元更會多達 8,192 個,32GB HBM2E 記憶體,最大理論運算能力約為 26TFlops(FP32)與 105TOPs(INT8)。Infinity Fabric 的多 GPU 延展性,將是反攻超級電腦市場的關鍵武器,但能否像 nVidia 具備人工智慧需要張量(Tensor)運算單元,就不得而知了。

同場加映「好相好」nVidia下一代「Ampere」的旗艦晶片 GA100 的謠傳規格:台積電 7 奈米+(EUV)製程,晶粒面積是驚世駭俗的 826mm²,核心規模高達 128 組 SM 單元,SP(CUDA Core)單元 8,192 個,前代 2 倍數量的張量運算核心(Tensor Core),48GB HBM2E 記憶體,最大理論運算能力約 32TFlops(FP32)。

先不論 AMD「兩顆打一顆」的策略是否有奏效,但唯一可確定的是,AMD 已用實際行動,承認投資多年的 GCN 無力兼顧遊戲市場,也沒顧好原先鎖定的應用,這些問題的種子,早在 AMD 購併 ATI 時就已種下,還綻放出如火紅鮮豔的災難之花。

AMD 對 Fusion 的怨念註定一連串亂局

2006 年耗費 54 億美元購併繪圖晶片巨頭 ATI 的 AMD,不但仿照擁有低功耗小核心 Atom 的 Intel,同時研發兩種應用截然不同的 x86 CPU 核心,並很快就以融合 CPU 與 GPU 的「Fusion」為未來戰略主軸,APU(Accelerated Processing Unit)則是成果──雖然一開始就出師不利。

AMD 公開 Fusion 大戰略時,剛好是英特爾對 AMD 發動帝國大反擊的關鍵時刻,或多或少讓人感覺到 AMD 大事不妙,但因仰仗 K8 的豐功偉業而讓 AMD 的 CPU「餘威猶存」,nVidia 沒有 x86 CPU,Intel 繪圖核心的效能和技術有多糟糕就更著毋庸議,所以當時外界普遍看好 AMD 結合自家 CPU 與 ATI GPU 的高性能單晶片解決方案,更吸引了眾多投資者目光。

隱藏在 Fusion 戰略背後的是 AMD 更巨大的野心:讓走上泛用化之路的 GPU,成為 AMD 無法被撼動的絕對優勢。試想一個情境:假若 GPU 足以在現實生活的應用,完全取代現有 CPU 的浮點運算,甚至某部分整數運算,又和 CPU 融合為一,這天大的好事一旦發生在 2010 年初期的 AMD,那英特爾和 nVidia 真的都要閃一邊去了;也因此 AMD 拚命鼓吹「異質運算」(Heterogeneous Computing),吹得很大很用力,企圖創造「CPU 與 GPU 共同的勝利」。

這也是 AMD 在後 K8 時期的 x86 處理器架構轉向叢集多執行緒(CMT,Cluster-Based Multi-Threading)的深層緣由,兩個簡單的整數運算核心共用一個「模組化」浮點運算單元,一方面拚帳面核心數量,另一方面假以時日將浮點運算器「狸貓換太子」成萬事皆備的 GPU,Fusion 大戰略就此功德圓滿,雞犬升天。

從享有中間位置的地利之便變成兩頭皆空

AMD 2020 年財務分析師大會再度扶正的 GCN,是在這個時空背景下誕生的產物。

2009 年底到 2010 年初,正是喊了很久的 GPU 泛用化侵入 CPU 領域的第一步:支援 IEEE 754 浮點數規範。但舊有 ATI 體系的第三代 TeraScale,超長指令集(VLIW)架構的程式真的比較難寫,已證明無力在 GPGPU 抗衡「引領 nVidia GPU 更大幅接近主流泛用 CPU 的 Fermi」,源自純正 AMD 血統、多執行緒 SIMD 化的 GCN 自然是理所當然的救世主,然後 2012 年初登場就被 nVidia 的 Kepler 華麗打爆,從此一蹶不振。

備多力分的 AMD 也開始在執行面諸事不順,叢集多執行緒的推土機(Bulldozer)核心一再延宕,讓初代 APU「Llano」只能沿用老舊的 K10 核心,而整合的 GPU 也是性能不太夠力的舊世代 TeraScale 2,導致倍受期待的 Llano 淪為市場定位不上不下、高不成低不就的尷尬產品,不僅讓 AMD 在 2012 年第二季營收下滑、股價下跌,第三季被迫打消價值高達 1 億美元的 Llano 庫存呆帳,演變成不甘利益受損的投資者群起控告 AMD,最後 AMD 花了 2,950 萬美元補償投資者損失的悲慘結局。

後面接連數年的劇情就如各位所見,無論 CPU 還是 GPU,AMD 就被英特爾和 nVidia 一路狂扁到 2018 年,像德國一樣在歐陸享有「中央位置」地利之便的 AMD,反而弄巧成拙遭兩面夾殺。

更重要的是,GPGPU 的軟體生態系統遲遲沒有成長到 AMD 十多年前樂觀預期的水準,加上英特爾積極擴張 SIMD 指令集(最具代表性的是 2011 年 Sandy Bridge 的 AVX)穩定提升 x86 CPU 的浮點效能,「GPU 越俎代庖,替換 CPU 的浮點運算器或大部分功能」根本毫無美夢成真的條件,當下保證網路瀏覽器能有效藉由 GPU 加速就不錯了。

這年頭「會做很多事情,有多重專業」的「斜槓」是非常流行的「激勵鬥志的心靈術語」,但不是每個人都有本事畫出那條斜線,角度一沒抓好,就變成「刪除線」了。

記憶體頻寬仍是 GPGPU 效能的瓶頸,尤其是 AMD

相信不少人一看到 AMD 的雙軌化 GPU 路線,馬上想到的第一個主因是「兩邊用的記憶體不一樣,一邊 HBM、一邊 GDDR,nVidia 目前計算用主力產品 Volta 也是 HBM,人工智慧推論仍是 GDDR6 的 Turing」。

在 GPGPU 進入平常百姓家的漫漫長路,「每個運算可分配到的記憶體頻寬穩定下滑」一直是看不見的痛,高效能浮點運算和人工智慧亦同,要提高效能,絕非增加幾個矩陣計算和人工智慧特化導向指令那麼簡單,頻寬不足就發揮不出效能。相對於增加指令多佔用的執行單元布局空間,運算可用頻寬的配套措施,會更讓 GPU 廠商感到頭痛。

高效能浮點運算或深度學習專用的 GPU 勢必搭配 HBM 記憶體這件事,Google 自家 TPU 就是最好例證。如果用不起昂貴的 HBM,只能亡羊補牢,從 GPU 內部的快取記憶體架構壓榨出一絲一毫頻寬。AMD 在 Navi 的快取記憶體大興土木,原因就在此,過去所有歷代 GPU,這部分更是不可或缺的重頭戲。

不過一說到記憶體頻寬這檔事,不禁讓人回憶起 nVidia 早從 2004 年 NV40 時代,記憶體控制器就內建壓縮傳輸機能,相關技術持續推陳出新,並據聞都已申請專利。過往十幾年,AMD 的 GPU 要達到相同效能水準所需的記憶體頻寬,都比 nVidia 高出許多,這難道就是「這些年來,我們一起納悶不已的怪現象」之完美解答嗎?絕對不是,應該不是,也許不是,希望不是。

看不見的商業現實:記憶體「期貨」的潛在利潤

優秀技術不見得見容於商業的現實,顯示卡用的記憶體當然也是。

AMD 早在 2015 年就在第三代 GCN 的 Fiji(Radeon R9 Fury X)率先在 GPU 導入 HBM,後來也在第五代 GCN 的 Vega 放了 HBM2,看在記憶體飢荒方興未艾的份上,應可合理預期越來越多 GPU 與 HBM「送作堆」。但這些年來也未見 HBM 比較普及,連 nVidia 也將 HBM 限定在高階計算用產品,除了成本和產能考量,「擋人財路」恐怕也是主要因素。

這年頭價格起起伏伏的記憶體早就成為某種形式的「期貨」,記憶體的漲跌價差也是顯卡廠商可透過採購策略取得的獲利來源,當 GPU 直接包記憶體,就等於斬斷這條賺錢管道,產品也難以做出差異化。換言之,唯有包裝成高單價利基產品的運算卡,保留更多利潤給客戶,才能有幸一親芳澤,AMD 硬推 HBM 繪圖產品就顯得相當一廂情願,或可視為對市場生態的錯誤判斷。

總之,假如連 CPU 也沒機會雨露均霑,看來將有很長一段時間看不到 HBM 出現在一般個人電腦內部,也沒可能看到「像 Radeon R9 Nano 或 Vega 56 Nano 這種可塞入 Mini-ITX 專用機殼的超小型旗艦級顯示卡」,真是可喜可賀。

雙軌放兩邊,應用擺中間,Fluid Motion 就這樣死透了嗎?

總之,AMD 想搞多少條軌道建設,外人無從置喙,但倒是有兩件事值得大家多多關注:

  • 外界盛傳 AMD 的新型 GPU 會對應 Google 制定的「指數小於 FP32 而動態範圍大幅縮減的 BF16(bfloat16)浮點格式」,以「強化人工智慧應用的競爭力」,請問是 RDNA2 還是 CDNA 或兩者皆有?畢竟並不是每個想學習人工智慧的人,都有足夠預算購買貴鬆鬆的運算卡。
  • 原本有 Fluid Motion 的 GCN 因轉戰專業運算,遲早消失,那連 RDNA2 都沒有的話豈不就徹底死透了?請 AMD 行銷人員多多內部關切 Fluid Motion 這好東西的存亡啊,還是請哪位大恩大德趁著 Mac 顯卡還是 Vega 的時候,去說服蘋果動動 Fluid Motion 的腦筋?

(首圖來源:AMD

延伸閱讀:

關鍵字: , , , , , ,