三星手機上的AMD GPU有多厲害?
三星即將推出的Exynos晶片繪圖性能,據說其3DMark Wild Life跑分達到8,134分。這個性能成績比高通Snapdragon 888的Adreno 660高出大約50%,至於和蘋果A14比,有媒體提到8134這個得分和iPhone 12 Pro Max相似…

三星(Samsung)即將推出的Exynos晶片繪圖性能,據說其3DMark Wild Life跑分達到8,134分。這個性能成績比高通Snapdragon 888的Adreno 660高出大約50%,至於和蘋果(Apple) A14比,有媒體提到8,134這個得分和iPhone 12 Pro Max相似,也有媒體提到iPhone略勝或iPhone在這項測試中無法達到8,000分。
無論如何,這應該是三星Exynos晶片首次在GPU絕對性能上大幅領先高通,且與蘋果差不多。如果消息可靠,那麼這也意味著三星的新一代Exynos晶片在手機平台上基本可以壓倒其他競爭對手(麒麟9000的Mali G78MP24這個項目的得分大概是6,000分出頭)。
這也並不奇怪,前年AMD和三星共同宣佈多年戰略合作,以及今年年初三星宣佈下一代旗艦Exynos晶片會搭載AMD最新的RDNA架構GPU,到上個月的Computex大會上AMD宣佈RDNA 2會出現在高性能手機市場上。AMD表示,「很高興宣佈我們即將把客製繪圖IP帶到三星下一代旗艦SoC,且將支援光線追蹤和可變速率著色(VRS)。」
預計明年的三星旗艦手機(Galaxy S22)上就會看到AMD的GPU。這還是AMD的GPU首次以很明確的方式出現在手機平台上——當然,這得拋開當年高通從ATI (現屬AMD)手中接過Imageon行動GPU業務,成就現在的高通Adreno GPU這件事。這顆AMD GPU在手機上出現之前,來發(sui)散(bian)地談談AMD GPU應用於手機平台的可行性,畢竟AMD之前都只有桌上型PC平台高性能GPU的經驗。
有關三星與AMD的合作方式
2019年,三星與AMD明確將進行「多年戰略合作」之時,雙方的合作就顯得相當有趣。三星獲得的是AMD的繪圖IP授權——就像Arm先前把Mali GPU授權給三星、華為、聯發科(MTK)那樣,AMD並不負責製造GPU。
與此同時,2019年簽署的協議已經明確,只允許三星在「與AMD不發生競爭關係的領域」使用AMD GPU IP,比如說手機、平板等。這基本上意味著三星授權得到的IP,並不會出現在PC這樣的平台上——這對高通而言可能是個好消息,畢竟高通Snapdragon SoC已經開始廣泛應用於筆記型電腦平台了,而三星與AMD的合作可能很難對高通產生什麼正面衝擊(雖然高通可能還需要考慮聯發科與Nvidia的合作問題)。
另外一點值得探討的是,雙方的合作究竟是以何種方式展開。一方面AMD和Arm還是不同的:AMD雖然也有IP授權業務(屬於這家公司的Enterprise、Embedded and Semi-Custom業務),但這不是AMD的主營方向,更少見GPU IP直接授權。AMD與客戶合作更在意、在行的其實是半客製(semi-custom),如索尼(Sony) PS、微軟(Microsoft) Xbox遊戲機上的處理器就屬於AMD的半客製業務。AMD今年第一季財報還特別提到,其半客製產品銷量巨幅提升。
另外,三星SLSI此前似乎早就對Mali GPU不滿意了,曾立志自主研發GPU (先前稱為SGPU計畫)。雖然三星的CPU/GPU自主研發計畫都受挫了,但研發的「遺產」應當還是有的,而且之前也有多年研發Arm Mali行動GPU的經驗。加上AMD其實並沒有製造手機GPU的經驗,雙方的這次合作很可能會是相互促進做更有效的客製的方案,而不是像Arm那樣做簡單的IP整套授權——先前的模式下,三星的發揮餘地也相當有限。
雖然AMD在2019年發佈RDNA初代架構時,就強調了其可擴展性,不過真的要讓RDNA適用於手機這樣的低功耗裝置恐怕也沒有那麼簡單。
AMD的RDNA架構GPU
AMD總裁暨執行長蘇姿丰在Computex明確指出,三星的下一代Exynos會採用RDNA 2架構的GPU。在AMD的產品路線圖上,RDNA是GCN (Graphics Core Next)的演進架構(GPU微架構與指令集)。2019年7月發佈的Radeon RX 5000系列GPU (代號Navi)是應用RDNA初代最早的產品,當初AMD在發佈RDNA時似乎就提到了,其適用範圍包括智慧型手機、筆記型電腦,以及超級電腦,可擴展性實現全應用涵蓋。
RDNA二代產品Radeon RX 6000系列是去年年末問世。簡單看看所謂的RDNA架構,到底是什麼,以及將其應用於手機平台的可行性。
RDNA相比GCN一個比較大的變化就是wave32。GCN架構之時,shader編譯器創建的wavefront寬度是64,而RDNA架構的平行寬度收窄到了32執行緒。wavefront是執行緒分組的一個名詞,比如每32個執行單元分成一組來跑同一指令,意即一個wavefront寬度為32執行緒。不過不同的廠商對執行緒分組的稱謂不同,AMD稱其為wavefront,而Nvidia稱其為warp。wavefront可認為是GPU的最基本可調度單元,亦有說法是「程式碼的最小可執行單元,可在所有執行緒中,同時執行同一指令,亦可謂SIMD過程中資料處理的最小單位。
以前AMD GPU的wavefront普遍是64,也就是每64條執行緒分組平行(不過GCN事實上是16-wide SIMD,所以wavefront要以16通道分組作4週期來執行)。RDNA架構將其收窄為32(wave32)有三方面的考量。
其一是當代GPU程式設計程式碼已經不只是一系列簡單指令了,會有更多的迴圈、分支。比如在程式碼有分支的情況下,更寬的執行緒分組會造成資源利用率的低下——一般一個wavefront一直在執行相同的指令,如果出現分支就會出現divergence,wavefront中的更多核心會閒置。而更窄的分組平行寬度,在遭遇迴圈和分支時,相比以前就能提升效率。
而且更窄的wavefront本身對於資料訪問佔用更少資源、完成更快,比如使用一半的寄存器——在更快速完成工作之後,寄存器更快地釋放出來,也就達成了更高的資源利用率。其次,wave32是將任務切分成更小的資料流程,事實上可達成更好的平行度,提升性能和效率。
與GCN相比,RDNA其他改進還包括,單週期發射4條指令到每一組SIMD——GCN每4個週期發射1個指令的wavefront,而RDNA則是每個週期就能發射32執行緒wavefront給執行單元。RDNA的另外一個主要改進是引入了所謂的Workgroup Processor (WGP),WGP就是以前的CU (compute unit),即shader內部的基本構成單元,每個WGP包含2個CU,單WGP可實現更大的運算力和記憶體頻寬。
RDNA2應用於手機的可行性
RDNA2則是RDNA的演進架構,是在去年年末發佈。先前AMD曾經提到過,RDNA2相比RDNA實現了54%的每瓦性能提升,也就是更高的能效——這可能是RDNA2可應用於低功耗產品的基礎。事實上RDNA2並沒有換用更新的製程,單靠架構改進實現54%每瓦性能提升感覺也是很厲害。另外RDNA2也提升了頻率和IPC,且在特性上開始支援硬體加速的即時光線追蹤、Infinity Cache、mesh shader、sampler feedback和VRS——也就是對DirectX 12 Ultimate的支援。
不過RDNA2這55%的效率提升,真的是為手機準備的嗎?其實簡單看一看AMD公開有關RDNA2的更新就會發現,應用於桌上型的RDNA2 GPU所實現的「54%每瓦性能提升」,和手機可能關係並沒有那麼大。首先RDNA2的核心架構相比RDNA並沒有什麼大變化。不過RDNA2在電源管理方面的確下了不少功夫,包括更加精細化的時脈閘控策略;而且重新研發CU的資料路徑——也就是降低資料移動的功耗開銷,減少傳輸能量開銷。
另外,AMD在幻燈片上還提到了比較激進的「aggressive pipeline rebalancing」,不過具體不知道是怎麼rebalance法。這幾項改進固然很有價值。
不過在功耗降低的問題上,這代架構比較大的一個變化應該是導入了Infinity Cache。Infinity Cache是GPU的片內快取。從AMD的說法來看,它很像CPU上的L3快取,作為與顯示記憶體之間的緩衝地帶——感覺這兩年AMD特別喜歡在快取上動心思。AMD方面表示,因為Infinity Cache的存在,也就完全不需要顯示記憶體位元寬做到384bit (此處應該是在嘲笑Nvidia),峰值頻寬超2倍,功耗卻只要90%。
這招固然有效,但要應用到手機上恐怕難度很大。Navi 21核心配的Infinity Cache是128MB SRAM,要耗費的電晶體是巨量的——這一項能效上的巨大改進很難用於手機SoC。筆者認為,Infinity Cache的加入極有可能是RDNA2在PC平台實現54%每瓦性能提升的最關鍵要素。
RDNA本身的彈性化規模擴展特性呢?來看看RDNA的核心情況。前面已經提到,RDNA的每個Workgroup Processor包含2個CU。AMD日常在宣傳中會提GPU上有多少個CU單元,這一代架構上的CU是成對出現——每兩個CU (也就是每一個WGP)作為GPU的基本運算建構模組存在,這也是相比GCN架構一個比較大的變化。
RDNA的CU構成大致如上圖所示(上面一個CU,下面另一個CU)。在這樣一個Dual Compute Unit中,一共有4組SIMD,每個SIMD包含32個算數邏輯單元(ALU)。這兩個CU之間會共用一些資源,比如各種快取、紋理過濾單元、紋理映射單元等。
到具體的GPU產品上,針對筆記型電腦的Radeon RX 6600M採用了28個這樣的CU;鎖定桌上型PC的6700XT內包含了40個CU,而更高階的6900XT則有80個CU (519mm2 die size,超過260億個電晶體)。
上面這張結構圖展示的是6900XT的Navi 21核心,每20個CU (10個WGP)構成一個Shader Engine;每個Shader Engine除了CU之外,還有一些共用的硬體單元,如光閘單元,相關深度、stencil、alpha測試、畫素blending等的渲染後端(RDNA 2事實上在這部分也有的提升)等。在Shader Engine之間當然也需要一些公共單元,如L2快取、幾核引擎等。從這裡不難看出,在這個層級的抽象中,CU屬於AMD GPU的最小單位——兩個CU組成WGP,多個WGP組成Shader Engine,多個Shader Engine組成GPU。
上面這些是針對PC有高繪圖運算力需求的GPU產品,這種規模當然不可能應用到手機上。PowerVR目前主要是鎖定手機這樣的行動產品,以此可以看看手機和桌上型PC端的GPU在硬體規模上有著怎樣的差距。
上述三款不同規格的AMD GPU,其TDP功耗設定分別在100W (6600M)、230W (6700XT)、300W (6900XT)。手機SoC的功耗吃不消這麼大的數量級,之前華為麒麟9000在跑一些高負載的遊戲測試時,能達到10W的整機峰值功耗,就已經相當驚人了。
不過既然CU可以彈性擴展,那麼如果(不負責任地)推算一下,不考慮顯示記憶體、GPU核心頻率、CU本身規模縮放、渲染其他階段功耗之類的問題,那麼用TDP功耗來除以CU數量,則每個CU被「分配」到4~6W的功耗。
雖然這個計算方法很不可靠,不過似乎如果不做CU本身規模的縮放,手機上大概能塞進RDNA 2架構的一個完整的WGP,或者說Dual Compute Unit。不過手機端的GPU頻率也不可能達到2GHz(比如Adreno 660的shader頻率最高可能在800MHz左右),而且手機GPU沒有專用的顯示記憶體,CU規模、渲染管線也都可能調整,產品問世前的變數還很大。
一些猜測和疑問
另外一個眾所周知的事實是,像手機這樣對功耗、頻寬都格外敏感的裝置,不大可能用桌上型那種大手大腳進行數據存取操作的傳統IMR (Immediate Mode Rendering)立即渲染結構。對於桌上型GPU而言,傳統IMR是以整個訊框為單位繪製的,在畫素著色(pixel shading)階段,因為有大量畫素要處理(相比頂點要多很多),依賴外部儲存的讀寫操作會比較頻繁。
所以手機或行動GPU最早改進採用TBR (Tile-Based Rendering)架構,就是所謂的分塊渲染。就是將整個螢幕顯示分成若干區域,每個區域都是一個tile;GPU可以一個tile一個tile地渲染。GPU再搭配片上快取,就能顯著減少讀寫外部儲存的時間。Arm Mali、高通Adreno、蘋果GPU等普遍在用TBR渲染結構。
不過極有可能2014年Nvidia Maxwell也開始採用基於tile的光閘化和分組(binning)操作;2017年AMD在vega上開始作這種應用(Draw Stream Binning Rasterizer_,想必頻寬的節約也頗有經驗。與此同時,蘋果、Imagination (Arm也有可能)普遍在用一種名為TBDR (Tile-Based Deferred Rendering)渲染結構,以「進一步」的「延後」,更早地弄清楚畫面中哪些部分被前景遮擋,真正避免畫面的overdraw,也就不需要處理被完全遮擋的幾何體,更大程度地節省頻寬和資源。
這些可能都是AMD需要針對行動平台考慮的問題,雖說AMD極可能在這方面已經具備了經驗。就像前面提到的,三星Exynos要應用的RDNA2,是否還是完整形態的RDNA2或者只是規模彈性縮減,或要在核心規模上做大改?這些都是比較有趣的問題。
此外,蘇姿丰在Computex上提到未來的三星SoC會攜光線追蹤和VRS登場。VRS其實沒什麼大不了,高通Adreno 660也已經實現了VRS——這項技術本來就在致力於最佳化硬體資源利用率(Arm先前也預告過正在研發VRS和光線追蹤,不過不知道何時問世)。
至於光線追蹤,它要實現的是更真實和符合直覺的畫面光照效果。這項技術的力推者其實是Nvidia,而Imagination在行動端也在推——不過Imagination這兩年所推IP的實際應用可能算不上成功。
光線追蹤目前是對硬體資源有貪婪需求的技術,桌上型PC的推廣都尚且未全面展開,AMD也是在RDNA2上才開實踐光線追蹤。一般光線追蹤需要額外的專用硬體單元來做加速,比如Nvidia的RT cores。
AMD這一代的GPU的確也加入了一個所謂的光線加速器(ray accelerator),每個CU中都有一個光線加速器——這個硬體是用於檢測BVH包圍盒中的光線與畫素相交,另外用shader來做BVH遍歷並對場景做著色。像BVH遍歷這種負載,算是儲存敏感型任務,所以Infinity Cache在此也能發揮作用。
只不過AMD似乎並未交代過光線加速器硬體的具體規格和構成,起碼Radeon RX 6000系列GPU的光線追蹤性能,和Nvidia GeForce RTX 3000系列還是有差距。
於行動端而言,思路應該也會比較類似,Imagination之前介紹行動端應用光線追蹤的方案,也是加專用的光線追蹤單元。只不過行動端的光線追蹤必然在規模和效果上,無法與PC平台相提並論。明年要問世的Exynos晶片,可能會是最早應用光線追蹤技術的手機晶片。
與蘋果相比如何?
要說和蘋果比起來如何,如前面所述已曝光的3DMark Wild Life跑分8,134分和iPhone 12 Pro Max的A14是比較接近(略勝或略差)。不過Twitter上的爆料者表示,這個跑分是基於Cortex-A77 CPU核心,僅供參考。也就是說明年新推的Exynos晶片,預計這個專案的跑分還會更高,只不過蘋果今年要推的A15,GPU性能還會有提升,所以鹿死誰手仍無法下定論。
而且跨平台跑分這種東西看看就好,更何況還是小道消息,也無人知曉其跑分環境如何。而且像蘋果A系列這樣的高性能晶片,雖然有不錯的突發性能,但從歷史來看,它在手機上的持續性能也實在不怎麼樣;另外也需要考慮功耗的問題。AMD在手機上做GPU也跳脫不了功耗與發熱這樣的基本命題。
蘇姿丰的大鑽戒。
不過筆者仍然很樂意看到,手機晶片市場出現可與蘋果一較高下的新品,並促使其他競爭對手的和共同努力是有價值的。若能讓高通、聯發科這些市場競爭者都感受到壓力,那麼AMD GPU出現在三星手機上也就值得鼓勵了。
本文原刊登於EE Times China




訂閱EETimes Taiwan電子報
加入我們官方帳號LINE@,最新消息一手掌握!