GPU市場增長與Mali 技術的成功
2006年,,圖形處理器(GPU)總出貨量約為1.35億,,廣泛用于智能手機,、DTV和平板電腦等多種設備,。同年,ARM 完成對挪威Falanx公司的收購,,并獲得其移動GPU技術,,完成對原有IP技術的擴展,。10年后的今天,,僅智能手機的全球出貨量就已達到15億臺(據(jù)ARM內(nèi)部數(shù)據(jù)和Gartner數(shù)據(jù)顯示),;短短10年時間,ARM Mali技術也已成為全球出貨量第一的GPU,,2015年總計出貨量超過7.5億,。
本文將重點討論GPU市場、技術,、應用案例,,以及GPU爆炸式發(fā)展背后的深層原因。同時,,文章還將簡述ARM Mali GPU及其架構在過去10年的演進,,并介紹搭載全新Bifrost架構的Mali-G71。
API與制程節(jié)點開發(fā)
對圖形領域而言,,2015年振奮人心——全新應用程序接口(API)的出現(xiàn)允許開發(fā)商將基礎圖形硬件發(fā)揮至技術允許的最高水平,。
同年,Khronos團隊的工作引發(fā)有關Vulkan的熱烈討論,。Vulkan是新一代OpenGL API,為新一代圖形API設計量身打造,。Vulkan足以滿足全部需求,,并徹底終結了OpenGL ES和OpenGL作為API各自為政的時代。
Vulkan于2016年2月正式發(fā)布,,是首款按照開發(fā)商需求設計的Khronos API,。它由游戲引擎開發(fā)商、芯片提供商,、IP公司和操作系統(tǒng)供應商共同開發(fā),,以期打造兼顧各相關方需求的最佳解決方案。Vulkan API應運而生,,采用全新異構系統(tǒng),,不僅內(nèi)置多線程支持,,而且可以最大程度發(fā)揮硬件一致性的優(yōu)勢。Vulkan屬于底層API,,允許開發(fā)商自主決定硬件交互方式,,并通過底層接入以找到最佳平衡點。
上述特性對虛擬現(xiàn)實(VR)等新興應用尤為重要,,幫助開放商減少延遲,,優(yōu)化圖形流水線。
對聚焦GPU運算應用的開發(fā)商來說,,OpenCL 2的發(fā)布是一個重要節(jié)點,,多項全新理念進一步簡化了高性能GPGPU應用的開發(fā)流程。虛擬存儲共享概念的提出可以說最為關鍵,,允許CPU和GPU之間的虛擬地址共享,。與硬件一致性結合后,細粒度緩沖器共享成為現(xiàn)實,。該技術簡化了實現(xiàn)CPU和GPU工作負載共享所需的開發(fā)工作,,因為兩者間的數(shù)據(jù)雙向傳輸不再是必要條件。
半導體制造工藝也經(jīng)歷了巨大革新,。2014年,,臺積電與三星推出20納米工藝節(jié)點,標志著平面工藝節(jié)點的10年歷史終于落幕,。2015年,,三星在Exynos 7420上使用全新14納米FinFet技術,臺積電緊隨其后,,推出16納米FinFet工藝,,并搭載于蘋果A9芯片。2016年,,工藝節(jié)點獲得進一步完善,,成本降低,產(chǎn)量增加,。步入2017年,, 10納米工藝節(jié)點也不再是夢想。
從GPU的角度看,,工藝節(jié)點技術的進步對整個行業(yè)意義非凡,。首先,工藝節(jié)點越先進,,單位區(qū)域(或功耗)的晶體管密度就越大,。GPU屬于并行處理器,只要架構擴展,,性能就會隨之提升,。然而,,先進工藝節(jié)點對布線的擴展效果不如晶體管。恰恰相反,,Ergo 工藝制程從28納米優(yōu)化至14納米,,SoC設計師得以實現(xiàn)更高的晶體管密度,但卻不如布線的擴展,。這意味著,,如果設計10納米GPU時采用與28納米同樣的方法,設計結果必然會打折扣,,因為晶體管和布線各有權衡,,不盡相同。設計師常常需要妥協(xié),,使IP適應某個節(jié)點,,這種權衡隨著先進工藝節(jié)點數(shù)量的增加變得愈加重要。
深入探討高端移動GPU的性能如何繼續(xù)提高之前,,我們需要特別指出GPU性能從2011年到2016年提升了20倍這個有趣的事實,。由于手機同時變得更加輕薄,因此該數(shù)字并不能代表技術進步的全景,,但現(xiàn)代移動設備開發(fā)商對性能提升的渴求已經(jīng)可見一斑,。
移動設備開發(fā)商不斷完善現(xiàn)有用例,開發(fā)顛覆性的新用例,,以保持創(chuàng)新節(jié)奏,,并從新一輪的性能升級中獲益。
案例開發(fā)
隨著移動平臺的發(fā)展,,各類傳感器層出不窮,。憑借飛速提升的系統(tǒng)性能、不斷改善的屏幕精度和日益增加的電池壽命,,移動設備開發(fā)商已經(jīng)坐擁創(chuàng)新的最佳平臺,。
增強現(xiàn)實(AR)可以充分挖掘并展現(xiàn)智能手機的強勁性能。AR的原理并不復雜,,利用高級攝像頭捕捉圖像,,經(jīng)過CPU、GPU,、ISP、VPU和DPU,,最后顯示在高清屏幕上,。這個過程中,增強內(nèi)容將覆蓋實際影像,。根據(jù)應用目標的不同,,物體識別,、方位補償(使用電子羅盤和/或加速度計)或高級渲染技術都將各有用武之地。
一些人氣移動應用讓AR不再遠在天邊,,并一舉進軍大眾市場,,比如將濾鏡疊加在用戶臉部,然后生成圖片和視頻用于分享的Snapchat,;以及讓用戶在真實地點看到動畫人物的Pokemon Go,。無獨有偶,還有一些應用采取了更高級的AR技術,,比如將攝像頭捕捉與3D物體相結合,。這些創(chuàng)新用例層出不窮,并可以用于包括零售和高端游戲在內(nèi)的各行各業(yè),。舉個例子,,用戶可以使用移動設備查看家具是否與硬裝搭配,家具巨頭宜家就打算在2017年發(fā)布AR產(chǎn)品目錄,。
虛擬現(xiàn)實已經(jīng)不算新理念了,,但其核心技術卻仍在經(jīng)歷巨變。硬件設備已經(jīng)萬事俱備,,擁有足夠強大的性能運行炫目的VR內(nèi)容,;一個適合創(chuàng)新的大規(guī)模開發(fā)商生態(tài)系統(tǒng)也已經(jīng)形成。這一點在移動平臺的體現(xiàn)格外深刻,,因為人人都能用,,且其移動性自身便是重要優(yōu)勢。與臺式機和游戲機不同,,移動設備無拘無束,。當然,實現(xiàn)這一點需要在設備上安裝各類傳感器,。實際上,,VR領域的許多重大突破都是在移動設備上實現(xiàn)的——利用VR技術增強用戶體驗的云霄飛車就是高性能移動應用的一個典型案例。
盡管推陳出新的顛覆式應用不斷刷新智能手機的使用方式,,但我們經(jīng)常會忘記一點現(xiàn)實,,最普遍的移動應用情景依然是網(wǎng)頁瀏覽和游戲。近幾年,,屏幕分辨率和刷新率都得到提升,,用戶界面(UI)的視覺效果和使用體驗也越來越自然。這些優(yōu)化對GPU提出了更高要求,,成為成本導向型市場不小的挑戰(zhàn),。
移動設備已經(jīng)成為最主要的游戲平臺,由于移動游戲的便捷性,,玩家人數(shù)持續(xù)增加,,并進一步推動游戲數(shù)量的上升,。從免費的獨立游戲到數(shù)百萬美元投資的工作室游戲,現(xiàn)代玩家有豐富的游戲類型,、價格和質(zhì)量等級可供選擇,。隨著可選游戲數(shù)量的上升,視覺效果也得到顯著改善,。GPU剛剛引入移動設備時,,3D游戲簡單粗暴,不堪入目,。而現(xiàn)在呢,?游戲畫面豐富多彩,景色怡人,,動態(tài)感十足,,在上一代的手柄游戲機時代都是前所未聞的。
上圖是ARM演示團隊制作的三張示意圖,。我們先來看看相對簡單(以今天的標準)的3D內(nèi)容,,演示游戲為2010年推出的True Force,運行于2011年款的Galaxy S2,。每幀圖元16k,,片段處理每像素時鐘周期3.7次,基于OpenGL ES 2.0,。
3年后的2013年,,OpenGL ES 3.0正式推出,改善了GPU 對GPU運算的支持(并不是OpenGL ES 3.0 API的主打特色,,而隨OpenGL ES 3.1正式推出),;允許開發(fā)商使用更多高級渲染技術。結合基礎硬件后,,視覺質(zhì)量顯著提升,。將Trollheim演示與TrueForce比較一下便可一目了然,前者的復雜性比后者高了不少,。TrueForce的每幀圖元為16k,,而Trollheim為150k,TrueForce的片段處理每像素時鐘周期為3.7次,,而Trollheim則為16次,。
2016年,Vulkan正式推出,,API效率大幅提高,,與OpenGL ES相比能夠以更低的開銷幫助開發(fā)商更好地發(fā)揮硬件性能。當然,,硬件本身也快速發(fā)展,,比較一下Lofoten和Trollheim演示,我們即可清楚地看到復雜度的提升:每幀圖元提高了300%,,片段復雜度提高了150%,。
智能手機設計的挑戰(zhàn)與趨勢
使用場景的變化僅是一個方面,移動設備本身也經(jīng)歷大幅升級,。智能手機市場最初主打旗艦機型,,隨著智能化程度的不斷提高,很多 PC特性已經(jīng)可以實現(xiàn),,但通訊依舊是其主要功能,。然而,過去短短幾年間,,智能手機用途不斷擴展,,打電話已不再是智能手機的主要功能,圖像顯示成為了關注焦點,。
過去,,手機電池壽命一般用單次充電支持的通話時長來衡量,而現(xiàn)在的標準則是網(wǎng)絡瀏覽或高端游戲的續(xù)航時間,。GPU與顯示性能一起備受關注,。用戶希望體驗更高質(zhì)量的視覺效果,到目前為止,,這一目標都是經(jīng)由智能手機設計改善,,以及顯示內(nèi)容的美感和流暢性來實現(xiàn),一個證據(jù)就是屏幕邊框變得越來越窄,。市場的大致趨勢是朝著屏幕包裹設備的方向發(fā)展,,設計美感更多由UI而非硬件來實現(xiàn)。下圖中,,我們可以看出屏幕占整個設備的比例不斷增加,。這一趨勢在三星Galaxy S7 Edge等機型上體現(xiàn)得尤為明顯,已經(jīng)實現(xiàn)屏幕對設備的全包裹,。
除了打電話,,現(xiàn)代智能手機還能提供極為豐富的功能,如郵件,、社交媒體,、導航定位、支付,、瀏覽網(wǎng)頁,、游戲、拍照和視頻等等。用戶在期待功能升級的同時,,也希望電池壽命不斷延長,。但是,即便使用當前所有最先進的技術,,智能手機的電池容量還是要不斷增大,,具體變化趨勢見下圖。
除了電池容量變大,,智能手機還變得越來越薄,。一些機型的厚度甚至已經(jīng)達到了7毫米以下,考慮到現(xiàn)代智能手機的技術含量,,如此纖薄實在令人驚訝,。
這樣的發(fā)展方向并非完全沒有弊端。屏幕增大導致電池尺寸變大,,機身變薄,,設備散熱能力下降,因為屏幕的散熱效率不如金屬機身,。此外,,機身變薄后,用以散熱的表面積也會減少?,F(xiàn)代高端智能手機的性能上限很大程度上被散熱能力牽制,,如何保證機身內(nèi)部元器件不因為高溫而受損則因此成為另一大挑戰(zhàn)。
現(xiàn)代智能手機裝有多種耗電發(fā)熱的核心元件,,如攝像頭子系統(tǒng),、屏幕、調(diào)制解調(diào)器,、Wi-Fi,、非易失性存儲器、DRAM和主芯片本身(包括CPU,、GPU和其他處理器),。因為總功耗一致,所以其中任何一個元件功耗的減少,,都可以增加其他元件可以使用的配額,,這也是系統(tǒng)功耗配比由用例決定的原因。
現(xiàn)代GPU非常復雜,,嚴重依賴CPU運行驅動程序,,以實現(xiàn)基于軟件與應用程序進行交互。多虧了Vulkan這樣的現(xiàn)代API,,驅動程序的開銷下降了,,但是CPU依然需要運行驅動程序,,所以不能完全避免耗電。由于所有元件功耗預算共享,,因此在CPU中使用的,、用于GPU交互的功耗就是不能應用于GPU本身的功耗?;谏鲜鲈?,降低CPU功耗勢在必行,不僅是為GPU發(fā)展掃清瓶頸,,更是要為盡可能的提高GPU可用功耗鋪平道路。
與之類似,,在運行復雜3D游戲的現(xiàn)代系統(tǒng)中,,GPU會消耗大量DRAM帶寬。由于要處理大量數(shù)據(jù)(上述提及的Lofoten每幀處理600,000個三角),,消耗帶寬責無旁貸,,但DRAM的讀寫本身就是耗電的過程,也需要占用系統(tǒng)的總功耗預算,。減少DRAM帶寬可以降低其功耗,,并用于其他元件。
現(xiàn)代智能手機的設計和日益復雜的用例對GPU提出了前所未有的挑戰(zhàn),。下一章,,我們將介紹ARM新一代GPU和GPU架構是如何應對這些挑戰(zhàn)的。
為下一代設備打造的Mali-G71
Mali-G71是ARM最新推出的高性能GPU,,也是首款基于全新Bifrost架構的GPU,,性能和效率都獲得顯著提升。
Mali-G71是迄今為止ARM性能最高的GPU,。為滿足現(xiàn)代用例所需性能,,著色器核心數(shù)量從1擴展至32,幫助芯片制造商根據(jù)目標市場自主權衡性能和功耗,。出于這個原因,,我們認為Mali-G71將在各類應用中將大展拳腳。
如前文所述,,智能手機的很多性能都受到散熱的限制,,還有一些手機的限制因素則是成本,或者說是芯片尺寸,。為了實現(xiàn)更高性,,Mali-G71和Bifrost架構同時升級了能源效率(單位瓦特性能)和性能密度(單位芯片面積性能),幫助功耗與散熱性能遭遇挑戰(zhàn)的芯片制造商實現(xiàn)更高的GPU性能,。相似條件下,,Mali-G71的能源效率相較Mali-T880最多可提高20%,,性能密度最多可提高40%。此外,,外部存儲消耗的總帶寬降低20%,,進一步減少整體系統(tǒng)功耗。
Bifrost架構發(fā)展
為了進一步說明Mali-G71為何具備遠超歷代ARM GPU的性能,,我們首先來探討一下GPU架構本身,,以及實現(xiàn)這些性能的設計方法。
Bifrost是ARM的第三代可編程的GPU架構,,其研發(fā)知識與經(jīng)驗傳承自Utgard和Midgard GPU架構,。
ARM的前兩代GPU架構——Utgard和Midgard都取得了巨大成功。它們專為新興的移動GPU市場打造,,無論出貨量還是內(nèi)部科技的運用都可圈可點,。Utgard是ARM首款可編程GPU,支持GLES 2.x,,片段著色器與頂點著色器相互獨立,。Midgard則引入了統(tǒng)一著色器,支持GLES 3.x,,并可與OpenCL 1.x Full Profile協(xié)同實現(xiàn)GPGPU運算,。Midgard是一款前瞻性的GPU架構,甚至包括了一些可以支持Vulkan的功能特性,??紤]到這是5年前設計的架構,就足以成為了不起的成就,。
然而,,隨著內(nèi)容和用例的改變,架構本身也必須進行根本性的升級,,以適應各類下一代用例,。
從頂層設計看,與Midgard架構相比,,Bifrost的GPU內(nèi)核沒有明顯變化,。表面上依然包括多個可擴展的著色器核心、一個負責與驅動程序交互的任務管理器,、一個負責處理內(nèi)存頁表的MMU以及一個tiler(Bifrost 仍然是一個 Tile based 渲染架構),,但全部模塊都獲得了顯著提升。
通過AMBA ACE或AXI-Lite與外界交互的L2子系統(tǒng)為支持AMBA 4 ACE專門設計,,幫助Mali-G71徹底實現(xiàn)硬件一致性,,并在GPU和CPU等其他單元之間實現(xiàn)了基于硬件的細粒數(shù)據(jù)透明共享。
我們對tiler做了重新設計,,以支持一種全新的渲染流,,即索引驅動的位置渲染,。該技術的理念是將頂點著色分為兩部分以節(jié)省帶寬,因為無需讀寫屏幕上看不見的變化參數(shù)(varying)1,;而且由于無需寫回不可見位置,,帶寬可以得到進一步節(jié)省。
著色器核心本身的變化更為巨大,。ARM在Bifrost中引入全新指令集,,根據(jù)大量的內(nèi)容和趨勢分析以及長年的行業(yè)經(jīng)驗開發(fā)。現(xiàn)代GPU的總體趨勢是執(zhí)行越來越多的復雜可編程著色器,,通常通過算法完成并采用大量標量代碼,。作為全新引擎的一部分,Bifrost采用全新的算法單元,,以極高的效率執(zhí)行高級著色器核心,。它們更容易擴展,如果未來需求有增加,,該架構也可以輕松應對。
Bifrost的屬性(attribute)單元和變化參數(shù)單元相互獨立,,這些操作在圖形處理中極為普遍,,使用獨立的高度優(yōu)化硬件模塊更為合理。全新的指令集引入高效的四線程組以節(jié)省控制邏輯,,并通過四線程組管理器將線程組切換至執(zhí)行引擎,。我們還加入了一個控制架構以提高物理利用率。如上文所述,,此特性對現(xiàn)代工藝節(jié)點非常重要,。
Bifrost引入了名為子句著色器的概念,專門用于處理執(zhí)行引擎內(nèi)部的布線密度問題,。你可以將子句想象成一組連續(xù)自動執(zhí)行的指令,,也就是說,一個子句的執(zhí)行不能被中斷,,無論是分支(如分支只發(fā)生在子句邊界上)還是其他任何事件都無法中斷,。這意味著子句是可以預測的,數(shù)據(jù)路徑周圍的控制邏輯變得更容易,。比如說,,你無需在子句內(nèi)部更新程序計數(shù)器,因為GPU知道它會在執(zhí)行前(或執(zhí)行后)根據(jù)子句內(nèi)部的指令數(shù)量向前推進,。
對CPU而言,,這一行為并不可取,因為CPU必須迅速處理分支,,而且分支的出現(xiàn)并不偶然,。但恰恰相反,,對GPU而言,該技術又可以進一步優(yōu)化設計,。請想象一組指令集正在經(jīng)過,。連續(xù)的指令經(jīng)常使用上一條指令作為輸入(見下方一排中的多個ADD正在積累數(shù)據(jù))。如果你經(jīng)常觀察到這一現(xiàn)象,,而且你知道訪問暫存器組的代價非常高昂(因為這是一個巨大的存儲模塊),,有一種方法來緩解這個問題,那就是巧妙地使用臨時寄存器來減少寄存器組的訪問量,。由于寄存器是臨時的,,數(shù)據(jù)只會在一個時鐘周期中保留,所以要想實現(xiàn),,子句必須確保在子句內(nèi)部原子執(zhí)行,。
請參考下圖的簡單著色器程序,從指令集的角度了解子句著色器的工作原理,。需要指出的是,,這是開發(fā)者所看不到的,由編譯器完成的,。
總結
通過對Bifrost架構如何提高效率和性能的詳細解讀,,我們可以清楚地了解Mali-G71具備哪些根本性的創(chuàng)新技術,以實現(xiàn)萬眾期待的GPU性能升級,。通過支持全新的現(xiàn)代API(如Vulkan和OpenCL 2.0),,Mali-G71有助于實現(xiàn)出色的新興應用場景體驗。ARM將繼續(xù)研發(fā)Bifrost架構,,滿足下一代內(nèi)容的需求并超越行業(yè)期待,。2016年,更多新技術將現(xiàn)身ARM Mali 多媒體組件,。