華為榮耀GPU Turbo技術猜想 | Digecture
來自專欄 Digi史記
#include<頭部函數聲明:以下內容僅授權鳳凰網科技轉載引用>
在閱讀這篇猜想前,請大家首先記住一個大前提是:GPU Turbo需要在控制功耗平衡的前提下提升圖形處理性能。
其次Turbo具備一定普適性,因為華為說搭載960/659的中低端機型也能用。也就是說,這項GPU加速技術不受硬體型號限制,基本是可復用的純代碼層面優化。
我們還是以970舉例,GPU型號為ARM Mali G72,有12個Core(核心)。
以CPU睿頻理論比對,實現Turbo加速的原理無非有種兩方式:1.大幅度提升單核激活主頻 2.開多核進行動態智能超頻。第一種方式顯然違背了功耗平衡的大前提,所以很嚇人的GPU Turbo技術原理就是「多核動態智頻」?
如果僅停留在Core層面的超頻調度,技術實現難度並不是很深也不夠嚇人。所以我們還要繼續「剖開Core」,去分析GPU內部架構。
Mali G72基於Bifrost圖形處理架構,其最大的優勢在於:由「指令級」並行矢量處理進化為「多線程」並行標量處理,從而提升Shader ALU(著色器算術邏輯單元)處理效率。
這裡需要給大家講一下著色器(Shader)相關概念。著色器是用來替代固定渲染管線的可編輯程序,一般分為頂點著色器(Vertex Shader)和像素著色器(Pixel Shader)。
著色器通俗講就是可以直接在GPU(單元)上運行的代碼,然後在渲染時通過API(例如Vulkan)執行指令載入到硬體,最終控制顯示在Display上的渲染效果以及像素位置。
對這裡順便說下API:Vulkan(或者OpenCL2.0),這是定義開發人員與底層硬體交互方式的協議,或者說通過軟硬體介面提高圖形渲染效率的方法。
在介紹完理論基礎後,我們結合實際的遊戲場景需求繼續分析。
在智能手機初級階段,類似Steam上絕地求生這種大型遊戲,幾乎不可能以吃雞手游的形態出現在移動性能平台上的。因為在實時高特效渲染環境下,需要滿足高耗電量、並行指令、複雜運算、以及數據存取速度等要素。
那麼面對這些要素,Turbo能夠去優化的變數就顯而易見了。
首先還是開頭說的大前提,電量是不可能多耗的,而且還要幫CPU省電;那麼華為很可能去「重寫指令」,也就是我們上面介紹的著色器代碼。然後針對複雜運算優化演算法,例如最頻繁使用的互反平方根;同時增加緩存區塊(主要是L2 cache),以提升數據存取速度。
其中最需要華為去投入大量研發成本的,主要集中在「重寫著色器代碼」這塊兒。當然,這也只是我對GPU Turbo的一個猜測,不一定準確。萬一只是「多核動態智頻」,豈不是又要被人說啪啪打臉。
另外在這些操作的基礎上,還可以進一步增加L1 cache、提高回寫緩存、優化指令緩存邏輯,在保持使用面積與耗電量不變的情況下提升整體協同處理效率。
最後,970集成的NPU或許還能發揮機器學習方面的作用,幫助GPU進行所謂的AI Turbo優化加速。
推薦閱讀:
※購買華為榮耀9和v9注意事項有哪些?
※榮耀V9和榮耀9,哪個更值得購買?
※華為手機千元左右哪一款好?2017年華為千元機大全
※The Verge:讓美國人失望了,P20 Pro不僅超級棒而且還買不到
※iPhone8 Plus和iPhone7 Plus有哪些區別?