當前位置:
首頁 > 科技 > 剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

本月月初,Imagination Technologies在上海進行了一次宣稱是「15年來最重要的GPU IP發布」。這次發布的GPU IP新品名為A-Series,沒有沿用早前以數字為系列代號的傳統,而且似乎還弱化了PowerVR在產品名中的存在……

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

打開今日頭條,查看更多圖片

這次的產品發布頗令人意外之處在於,實際上Imagination於2017年才宣布推出最新的GPU架構"Furian"——這個架構的正式版本,即PowerVR Series9XT則是到2018年年底才出現的。在Imagination的常規操作中,某個彈性架構實際是可以應用多年的。比如Rogue架構(最著名的產品就是蘋果的A系列SoC)沿用了將近7年時間,Furian才誕生。

所以A-Series的出現,很有Imagination內部「革新」的意味,這不僅體現在性能方面相比前代的飆升,以及架構層面(A-Series產品的架構名稱似乎叫做Albiorix,不過Imagination並沒有在會上提過)和市面已有GPU競品的很大差異,還體現在Imagination PowerVR產品執行副總裁Steve Evans表示明年、後年還會相繼有B-Series、C-Series這樣的新品問世,而且預計每年性能攀升30%——這在現如今的移動GPU行業並不是小數字,一年一步進也不像Imagination往常的風格。

拋開私募基金凱橋收購Imagination之類的問題不談,我們期望通過這篇文章,對A-Series架構層面的部分剖析,來理解Imagination現如今和過去究竟發生了多大的變化,以及嘗試推斷這種變化的原因在哪裡。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比


A-Series的「性能暴漲」

首先還是簡單回顧一下這次發布的新品是什麼,以及相比前代和競品,外顯的性能與能效差異如何。按照Evans的說法,A-Series是耗費超過2年時間打磨的——這恰在Furian誕生時間點前後,或許A-Series的內部變革計劃是從那個時間就提上日程的。A-Series GPU IP總共三個系列,分別是AXE、AXM和AXT,簡單說就是低中高端的差別,這和PowerVR過往產品的定位傳統一致。值得一提的是,其中定位小尺寸、低功耗的AXE系列應該是基於前代的Furian架構——不過它同樣應用了最新的部分技術。

Evans表示,A-Series核心代表的是迄今為止最快的GPU核心(fastest GPU cores ever created),無論是相比前代產品還是市面上既有的其他競品,且在PowerVR家族內是一次超乎尋常的飛躍(exceptional leap)。其中AXT系列「快了2.5倍」,這個時代的性能上升2.5倍仍然是個驚人的數字。這裡的比較,針對的應該是上一代的PowerVR Series 9,但Evans並沒有說是Series 9中的哪個系列或哪個產品。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

從Imagination後續在技術對比中的更多解讀來看,2.5倍指的的應該是相比更早的Rogue架構(Series 9既有採用Furian的型號,也有採用Rogue架構的型號)。在更多的性能對比數字方面,Evans還提到了ALU單元數量增加4倍,AI性能提升8倍,功耗則低了60%——通常功耗的降低數字是指,在達到與前代相同性能的同時,功耗降低了這麼多。

在相對具體的產品層面,Evans總共列出了四款產品,分別是AXT 64-2048,AXT 32-1024,AXM 8-256,AXE 1-16。前面的字母是對應上述產品系列的,後面的數字實際也很容易理解。

比如AXT 32-1024,這裡的「32」指的是紋理填充率(texture fill rate)達到32 GigaPixel/s(實際上這裡的Pixel應該是指Texel,即每個時鐘周期採樣32個雙線性過濾texel);1024則指1.0 TeraFLOPs(也就是每個時鐘周期1024次FP32 FLOPs);另外,相關的AI性能則是在這個數字的基礎上翻4倍,AXT 32-1024的AI性能就是4 TOPs(INT8推理)。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

這樣一來,其他幾款產品的性能參數以此類推也就大致很清楚了,比如上圖的AXT 64-2048。AXT 64-2048顯然是這個家族中性能最彪悍的一款,Evans表示,這款產品「為Imagination開啟了全新的應用市場,包括數據中心應用」;而AXT 32-1024定位於高性能圖形計算,「可應用於未來幾年的高端智能手機中」。

AXM 8-256用Evans的原話說是一款中端定位的「sweet spot」GPU,這句話應該是指其能效比在A-Series家族中可以達到最佳,應用場景包括了汽車、數字電視、機頂盒、平板等;AXE 1-16是A-Series家族中最小的一款。

如果我們單看這些數字,實際就已經是不錯的成績了。但沒有量級概念的話,還是需要對比一下競品。Evans也在現場對比了同代競品的實際性能、功耗、面積,也就是PPA。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

同代比較知名的競品就屬驍龍855的Adreno 640了,另外Evans並沒有具體說對比的Arm Mali競品是哪個型號,die shot也看不出來。不過PPT上標註了MP12,亦即這是個12核GPU,市面上比較新、而且符合該特徵的產品就是Exynos 9820了,其GPU為Mali G76MP12,所以猜測Evans對比的這款GPU正是Arm Mali G76。如果將Adreno 640的性能、佔地面積視作100%,則「Arm需要額外84%的佔地面積,才能達到相同的性能水平,也就是說功耗必然也更高」,「而Imagination達到和高通相當的性能,在晶元面積和功耗方面都要小得多。」即便是達到175%的性能水平,佔地面積和能耗依然更小。

這個數據當然是非常好看的,不過實際上這種對比可能並不公平,因為一方面Exynos 9820和驍龍855在製造工藝上就有差別,而且G76也並非Arm Mali最新的GPU IP。今年年中,Arm就在Computex大會上宣布了Mali G77的問世。推測A-Series的實際GPU晶元產品至少也要2020年才能面市,所以A-Series首波真正要應戰的應該是Arm Mali G77,以及高通剛剛發布的Adreno 650。

好在Mali G77在宣傳中提到性能密度(performance density)相比G76也就提升為30%;而高通則宣稱Adreno 650性能提升25%;就Imagination公布的數字來看,A-Series即便與這兩者同場競技也完全有充沛的餘力一戰,而且基本是無壓力的狀態,主體上還是要看Imagination令IP實體化的速度和表現。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

Imagination PowerVR產品執行副總裁Steve Evans


為什麼「性能暴漲」?

那麼達成這種性能暴漲的原因是什麼?Imagination PowerVR產品管理和技術營銷高級總監Kristof Beets在接受我們採訪時,首先提到的就是「完全重構的ALU(算術邏輯單元),我們對其進行了大量精簡,現在其內部就是相當簡單、乾淨的MAD管線(MAD是指乘法累加單元)」,執行單元從過去的2個MAD單元,變為現在的1個MAD(而且還拋棄了Furian架構中的MUL乘法單元),也就是說每個時鐘周期單條管線的執行能力實際是下降的——這也是ALU拓寬的重要前提。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

A-Series在架構上也因此有了「128條ALU管線同時並行」,也就是128-wide ALU。128線程寬度是什麼概念呢?早前的Rogue架構採用的是32線程寬度wavefront(wavefront是GPU代碼的最小可執行單元,SIMD過程中數據處理的最小單元,在所有線程中同時執行同一指令,Nvidia稱其為warp),不過單個SIMD僅支持16-wide;Furian架構則真正加寬到了32-wide,即單個時鐘周期執行32-wide wavefront。

作為對比,Arm Mali G77的SIMD寬度是16-wide,這還是相較G76的一倍拓寬。所以A-Series單就ALU結構來看,顯然是獨佔鰲頭的。這也表明Imagination真正開始從指令級並行徹底轉往線程級並行(TLP),實現ALU的更高利用率。這麼做理論上能夠極大提升性能密度。Beets補充說由於管線精簡,「compiler也大幅簡化了,它只需要在管線中找乘法累加實現100%運算即可,架構中也更容易實現高利用率,是設計中實現性能密度和能效提升的重要組成部分。」

不過有這麼寬的ALU,如何改進整個架構的前端,去餵飽這麼寬的執行單元就成為一個問題了。前端調度效率低的話,這麼寬的ALU管線只會出現大量閑置,以及效率的下降。

針對這部分,Beets在演講著重介紹了data master(數據管理)——各種不同的data master將工作負載分配到GPU中去,比如有Geometry Data Master負責幾何數據管理;還有2D Data Master、3D Data Master,以及Compute Data Master(負責通用型計算數據管理)。這些不同的data master基於內存的命令隊列中讀取數據,驅動任務負載進入GPU。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

比如3D Data Master,還執行一些其他的固定功能預處理,包括HSR(隱面消除,是GPU的核心技術之一)、針對shader的工作負載生成。隨後進入到「Triangle Task Merging」(三角形合併)——Beets表示這是一個關鍵模塊;PDS(Programmable Data Sequencer,可編程數據定序器)再對資源進行分配管理,為工作負載和管理任務預留寄存器空間——這個組件能夠針對未來的線程從cache中預取數據。

接下來是指令scheduler(調度器)和decoder(解碼器),分發解碼後才正式進入到執行單元。然後就是128-wide的ALU了,這裡值得一提的是,在主ALU管線之外還有一個副ALU線路方案(Secondary ALU),如上圖所示。這部分管線僅有主ALU管線1/4的寬度,每周期並行執行32個線程,不過有一些更為複雜的指令,執行任務包括各種操作與迭代、數據轉換、超越指令等。Beets表示,在更低的速率上工作,是基於對真實應用場景各種工作負載所做的權衡。「針對ALU結構,我們分析了大量應用,去理解其中的平衡點,實現最高的效率。」


彈性化擴展

以上是對單個ALU簇的大致理解,也是A-Series獲得性能暴漲的主要原因。我們往更高層級看一看其架構變化。在多年前的Rogue架構分享中,Imagination曾有一度將每個USC(Unified Shading Cluster)算作一個核心。到A-Series看來,大概已經不能這麼算了,因為其性能擴展方式比較「模塊化」。

前文談到的這樣一個主體128-wide ALU管線實際就是一個USC。這樣一個USC,加上周邊的固定功能單元,比如TPU(紋理處理單元)、HSR(隱面消除)、各種針對不同數據的管線(如針對幾何數據處理、光柵處理、混合處理等),以及可實現更高層級共享的cache,也就共同組成了一個真正意義上的「核心」,只不過這個核心比較大型。下面這張圖就是一個完整的核心,在A-Series的彈性架構中構成真正的、完整的一個IP方案。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

在AXM 8-256方案中,這樣的一個GPU「核心」內部有一個ALU簇(即一個USC),一個TPU紋理處理單元,以及其他專用單元。而在更高配置的AXT 16-512產品中,一個「核心」則包含了兩個128-wide的ALU簇(達成每個時鐘周期512次浮點運算),兩個TPU(達成每個時鐘周期採樣16個雙線性過濾texel)。

作為對比,Mali G77標稱每個時鐘周期 64 FLOPs、2 texels,也就是說一個AXM 8-256核心就相當於8個Mali G77核心的性能水平。這其實也表明了Mali仍在走GPU的小核心、多核心路線,而Imagination在走寬核心路線。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

而如果是性能更高的AXT 32-1024,就是將這樣一個GPU核心「複製」一份,實現性能翻番;那麼達到最高配的AXT 64-2048實際上就是四個這樣的核心。與此同時,針對各種單元的調度和監控,有一個小型的固件處理器(firmware processor),這一點將在後文中進一步提及。

Beets說這樣的彈性架構,可以方便地選擇性能提升,或者通過減少並行管線、紋理單元的方式,實現符合自身應用所需的配置。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

尤為值得一提的是,他特別列舉了各種操作類型在流經GPU時的全套邏輯。比如上面這張圖就是幾何圖形處理過程(geometry processing flow)的例子,綠色模塊表示的是需要處理這些數據和操作所涉及的模塊,箭頭則表示整個流程方向:GPU獲取到內存中的命令結構,Geometry Data Master首先檢查內存中的命令隊列,獲取命令並將工作負載推到GPU內部;隨後讀取幾何圖形,各種各樣的三角形就會填充到cache中,再進入幾何圖形管線(geometry pipeline),之後流經ALU,返回的結果還需要進入到Tiling Engine(因為Imagination的GPU IP是典型的Tile-based Rendering基於塊渲染的架構),將這些三角形轉換至應用於屏幕不同的tile區域,最終輸出到內存。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

不同類型的操作,整個流程及涉及的模塊會有差別,比如像素處理對應3D Data Master,後續要做隱面消除、計算像素渲染等;還有比如一些內部操作(housekeeping operations)、2D操作等等。上圖是像素處理流程(Pixel Processing Flow),以紫色示意。


全棧並發的HyperLane技術

以上提到的這些各類別操作,可以通過一種名為「HyperLane」的技術做硬體級並行,這也是Imagination這次隨同A-Series GPU IP發布的一種技術。這種技術對內存做完全隔離,多任務同時提交給GPU,實現GPU的多任務執行,或者說GPU硬體的「全棧並發」。典型的比如說圖形計算和AI計算同時進行。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

實際針對前文提到的各種不同類型的操作,HyperLane可將GPU的所有任務負載切分成(subdivide)幾份,這其中不僅包括了物理層面的隔離切分(模塊層面的並發),還包括按照時間切分做負載資源切換。不同的Data Master可以同時保持活躍狀態,在整個GPU硬體資源之間進行動態的工作執行,每個時鐘周期不同的模塊可以執行不同的任務,ALU可以做Compute操作、像素操作、幾何圖形操作、2D操作等。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

多種顏色表示HyperLane激活的多種操作正在同時進行

另外,HyperLane還有優先順序機制,Evans說:「比如有客戶希望,在同時執行任務的時候,確保圖形計算性能不會受到AI工作負載的影響,那麼就可以調高圖形計算優先順序,即便晶元正在處理複雜的AI任務,圖形性能也能被保護起來。」這部分操作需要借用到這次IP架構中的固件處理器(即前文提到的firmware processor)。

HyperLane技術包含了動態的8路切分(eight way split/multi-tasking),也就是至多8條hyperlane。「所有工作同時進行,在硬體層面完整隔離和實現虛擬化,硬體級別的高級調度機制實現靈活性。」

HyperLane的一個副產品是內容保護,每條hyperlane都是隔離的,彼此之間的內容就能實現隔離。Evans說:「比如有個流視頻應用,帶DRM,那麼內容在整個GPU中都是完全隔離起來的,在多任務環境中受到保護。」這也算是種安全防護方案了。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

Imagination PowerVR產品管理和技術營銷高級總監Kristof Beets


更多架構變化

我們認為,這次GPU IP改進中的一個亮點應該就是前文多次提到的固件處理器(firmware processor)了(似乎還是RISC-V架構)。即GPU內部有個小型的微控制器,它位於全局最高層級,完全可編程,以實現GPU整體任務執行的靈活性。「相關數據流、執行、優先順序等各種GPU內部的活動,任何事件、任何決策,都通過固件處理器來控制和決定。這樣一來就大大減輕了CPU的工作,而且還更有彈性。」

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

一般來說,GPU的這部分工作是由CPU驅動執行的,而Imagination則把這個活兒攬到了自己手裡。這項改進似乎在Imagination的宣傳中成效還挺大。典型的就是它能夠應用於GPU更好的DVFS調節(動態電壓平率調整)——這項工作原本是由內核GPU驅動負責的(所以以後驅動更新都是寫入到這枚處理器固件中?)。Beets提到:「固件處理器能夠全面感知GPU核心中發生的一切,這對於調度機制很有幫助,它甚至可以用來幫助開發者理解,如何獲得GPU的更多性能。」

「如果我們能夠了解GPU的工作調度、優先順序,查看所有的參數,那麼就能夠知道何時需要更高的頻率,或者可以在某個時間點降低頻率。為此,我們的固件中有大量直接的GPIO信號回寫,針對功耗控制做同步。GPU直接寫回給系統到底發生了什麼,這比CPU快多了。這樣一來就能實現更出色的DVFS演算法,可了解工作負載甚至預測所需的頻率。」

這枚小型處理器,還有一些特別的工作場景,比如說「如果GPU執行出現問題,我們可以通過固件記錄有關GPU的信息,快速發現問題在哪裡。控制獲取信息,寫回到內存,給予我們在GPU真實應用中debug的能力,而不是通過模擬去進行。這是分析問題非常出色的工具,如果應用在汽車系統中,還能進行錯誤分析。」

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

除此之外,A-Series在架構層面還有一些比較重要的變化,體現在紋理單元上(Texturing Unit),相關於將圖像放到屏幕上的。比如說L0 cache的位置發生了變化,新架構的位置是在處理與線性過濾階段之間。原本Rogue架構中,包括紋理解壓(texture decompression)、gamma、YUV轉換等操作都是在L0 cache之後進行的,這樣一來某些相同的任務會被多次重複執行處理。而L0 cache位置調整後,可儲存處理階段時候的輸出,數據可復用——多項異性過濾的時候,texel不需要再重複採樣。

還有針對一些陳年舊演算法的改進,比如說各項異性過濾(anisotropic filtering)以前一直是基於DirectX的——早年Imagination有參與過桌面GPU市場混戰,當時這項特性自然是緊跟微軟的參考演算法的。所以這次「我們徹底重構了紋理採樣方式」,「現在更加不依賴於角度(more angel-independent),採樣更少但實際(各項異性過濾)質量更高。」這種演算法的提升,實質也是減少帶寬、增加能效的重要方案。」

此外,Rogue架構在合併(blending)操作上用的是shader。更早之前這種操作會有個專用單元去執行,Beets說Rogue採用軟體的方式來執行合併操作雖然具備了很大彈性,而且節省空間,但這樣一來系統會複雜化。「由於合併操作(shading a blending)越來越複雜,我們還是需要額外的指令來更高效地執行合併操作,所以A-Series又回歸了專用合併單元。這樣可以釋放shader周期,減少數據搬運量。」

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

最後值得一提的是AI Synergy,實際也是本次Imagination技術發布的重點,不過它的實質是讓A-Series GPU與Imagination的神經網路專核NX NNA產品做協同的,在GPU和AI專核之間實現AI負載的共享——GPU可以負責模型更多可編程層面的工作,NNA則針對全連接層處理的固定單元做任務處理。這部分不是我們針對圖形計算要探討的重點。

搭建生態是當務之急

實際上,還有一些特性是Imagination並沒有著墨於A-Series的,比如當代GPU比較常見提升帶寬效率的framebuffer圖像壓縮技術。Imagination的壓縮方案名為PVRICv4,不過這套方案的最新版本實際已經在Series 9產品中得以應用。針對有損與無損壓縮有單獨的管線。Beets這次說Imagination持續加強了其HDR壓縮率。

就這些技術來看,的確可以認為是Imagination近15年來「最重要的發布」,它已經充分凸顯了Imagination做策略轉變的決心,而且至少就Imagination自己的紙面數據來看,在能力上是優於競爭對手的。不過這並不能表明Imagination未來就可以在GPU市場上輕易獲勝。

開發者生態此時變得極其重要,究竟有多少客戶會採用A-Series GPU IP?這和生態的成熟度、市場價值有很大關聯。

針對開發者軟體部分,Imagination也下了一番功夫,包括跨操作系統,對各種行業標準API的支持,對各種遊戲引擎的完整支持。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

面向開發者的有一項特性值得一提,即如上圖所示,Imagination為開發者構建了「heatmap」:「很多開發者都在苦苦進行性能優化,尤其是圖形計算方面。或許性能計數器(performance counter)會告訴你ALU限制、紋理限制,但對你的幫助其實真的不大,所以我們增加了一個新特性,生成圖形計算畫面的熱圖(heatmap),它會告訴你GPU在屏幕上的某個tile上面花了多長時間做渲染。我們的工具要做到這一點很容易。開發者能夠很方便地搞清楚某些tile的渲染開銷很大,花了最多的shader周期、最多的帶寬等等,這樣一來就能真正幫助開發者獲得性能上的優化。」這其中的實現似乎與硬體上的固件處理器也有關係。

剖析Imagination的A-Series GPU新架構:和高通Adreno和Arm Mali比比

Evans勾勒了來年的產品路線圖,2020年是B-Series,2021年C-Series,包括2022年的D-Series,要比今年的A-Series性能提升90%。光線追蹤架構也即將到來,「我們也在開發新領域的圖形計算方案,圍繞光線追蹤(ray tracing),移動領域的光線追蹤架構,作為技術做授權方案,未來我們很快在GPU中引入光線追蹤。」

Imagination當前面臨的局勢並不算很好,尤其是在主流手機SoC製造商普遍傾向於採用自研GPU IP的情況下。Furian架構在推出後就沒有在市場上激起火花,這可能是A-Series在較快的時間內出現的原因。至少A-Series的確比過去更理想,也是Imagination很重要的轉型之作。

我們在活動現場看到了Imagination的一些合作夥伴前來站台,包括全志科技、睿悅信息、紫光展銳等,看起來Imagination現如今的重要市場已經放到了中國。尤其在獲得中資背景以後,其中的合作自然水到渠成,也是在當前國際環境下一個雙贏的局面。即便如今的手機市場已經不是當年Imagination叱吒風雲的時代了,行業如今的發展重心本來就在偏移,面向更多應用領域的GPU、AI產品卻也充滿機遇。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 國際電子商情 的精彩文章:

傳下一代iPhone將採用高通超聲波指紋辨識技術
新一代汽車照明應用,TI已經準備好了