華為GPU Turbo技術原來是這樣的黑科技
來自專欄技宅空格
昨天華為在發布榮耀 Play 的同時一同發布了華為內部據稱研究了很久的「嚇人的技術」 —— GPU Turbo,這個技術的存在使得華為的手機不僅僅能打平其它 Android 旗艦機,它甚至可以讓 Android 和 iOS 一較高下。
這個 GPU Turbo 在推出的時候由於只適配部分遊戲,這引起了外界對華為這個技術的猜測。有網友懷疑是不是華為向遊戲廠商交了保護費所以才有了這樣的優化,但事實上多方證據表明華為並沒有給任何手機廠商付保護費。
筆者在知乎逛了一圈,得出了一個結論,華為確實是做了一個黑科技。
Vulkan
GPU Turbo 目前還沒有公布具體的細節,但網路上有兩種說法。第一種是華為從底層換用了 Vulkan,並且由於 Mali GPU 是公版的,所以華為對這個 GPU 的驅動進行了魔改,從底層提升了 GPU 的效率。
Vulkan 是一個新的圖形 API,Vulkan 在 Android 系統中的地位和 DirectX 在 Windows 上的地位是一樣的,它是一個更優的選擇,可以在降低手機功耗的同時提升遊戲畫面的質量。Vulkan 能對手機的硬體資源進行更好的利用,所以像虛幻 4 這樣支持 Vulkan 的引擎可以通過 Vulkan 打造出非常逼真、豐富的畫面,例如虛幻 4 面向手機做的一個技術 Demo —— Zen Garden。
實際上你會發現 Vulkan 對手機遊戲的提升和 GPU Turbo 是很相似的,所以華為非常有可能在底層使用了 Vulkan。
和 Windows 類似,Windows 除了 DirectX 還有一個傳統的 OpenGL,由於 Windows 上的 OpenGL 相當縮水,導致同樣的遊戲在 OpenGL 和 DirectX 下有很大的差距,如果你有興趣的話可以在 PC 上運行 OpenGL 版的《Dota 2》,二者有比較明顯的差距。
圖形介面的基準水平可以通過跑 3DMark 來測試,左邊是高通驍龍 845,右邊是 GPU Turbo 後的麒麟 970,我們看到華為的 GPU Turbo 確實是一個全局優化,Vulkan 分數上浮了大概 1000 分。
OpenGL ES 是目前手機上最常見的圖形介面,如果你熟悉《王者榮耀》你就會發現 Vulkan 和 OpenGL 有很大的差距,不論是耗電還是幀率。考慮到目前支持 Vulkan 的遊戲只是少數,所以華為不太可能只基於 Vulkan 來實現這些東西。
有拿到實機的網友表示《崩壞 3》的遊戲體驗也有提升,但《崩壞 3》是一個基於 OpenGL ES 的遊戲。這意味著華為還做了其它的優化。
驅動
驅動筆者個人猜測鐵定是被魔改了的,這個魔改涉及兩方面。
一方面是這個驅動會對 OpenGL ES 介面的遊戲進行優化,微博上炮神 @ioncannon 的猜測是這樣的:
筆者認為華為把單線程 OpenGL ES 的遊戲通過驅動方面的手段強制跑成多線程是可以做到的,遊戲怎麼調用圖形介面確實是遊戲決定的,但是,驅動程序的許可權是大於遊戲本身的,所以驅動程序可以強行決定遊戲的運行方式。這可能是一個優化的點。
其次,@楠爺 給出的猜想也讓人信服,筆者覺得這個是相當可能是 GPU Turbo 效果驚人的主要原因,筆者先前的猜測也有一部分和 @楠爺 的觀點不謀而合。
如果你用過 Nvidia 的顯卡,你會發現 Nvidia 的顯卡驅動里可以強行無視掉遊戲設置來對遊戲的畫質進行調節,那麼華為可能在遊戲設置全高的情況下通過驅動程序來強行降低貼圖、模型的渲染質量,並通過計算量更低的 HDR 等重重濾鏡來補償畫面質量強行降低導致的畫面損失,使得玩家的體驗並不會產生太大的差距。
網上也有網友給出小米 8 和榮耀 Play 在玩「刺激戰場」的時候同樣的畫面設置同一個地方二者貼圖精細程度不同的圖。
【修正】
評論區指出華為麒麟970用的Mali不支持各向異性過濾,和Adreno有區別,故二者遊戲時貼圖渲染質量有區別。
實際上如果顯卡驅動強制決定了遊戲的配置,且不告知玩家,那麼玩家會因為心理作用把畫面設置到最高之後就會認為遊戲的畫面達到了最高,實際上並沒有。
這也可以解釋為什麼華為要對不同的遊戲進行一一適配,不同的遊戲玩家對畫面質量的要求是不一樣的,所以華為要調整「閹割配置」來確保玩家的遊戲體驗不會出現太大的偏差。
黑科技
有網友深挖了華為的專利技術,發現華為確實是有一個黑科技的,@淡綠 給我們展示了一個這樣的專利:
首先 GPU 運算核函數可以在這個專利的技術加持下可以得到優化,同時華為還擁有一個加速 GPU 讀取內存數據的專利,這意味著 GPU 的運行效率可以得到進一步的提升。
在 @淡綠 的答案中,有一段話特別關鍵:
專業點分析,在 15 年以後設計的麒麟晶元 GPU 里都設計了用於全局變數寄存器,同時為了保持專利申請到位前的應用,保留了 GPU 大外寄存格局...(55 億晶體管你們都幹了什麼?)現在專利申請到了,就一步位給 15 年以後設計的晶元全都上了這個技術,適配應該是簡單的機型適配。
這表示麒麟 SoC 的 GPU 區塊可能加入了比較大的寄存,在新技術的優化下寄存數據的存取可以變得更快、更高效。反映在單獨的計算單元上這個可能並不能帶來很大的提升,但對於 Mali 這樣的 GPU 來說,這個技術帶來的提升可能會很顯著。
由於這個技術也需要針對不同的 GPU 負載場景進行優化,所以 @淡綠 的說法也能站得住腳。
在筆者看來這三種說法的任意一種單獨拿出來都達不到 60%的提升效果(雖然這個 60%存在水分),所以華為這個東西更有可能是這三種說法的一個綜合,剛好,軟硬都湊齊了。
實際上普通消費者基本上不關心華為是怎麼實現 GPU Turbo 的,他們關心的東西很簡單 —— 最直觀的實際體驗。實際上不管 GPU Turbo 怎麼實現的,它打起遊戲來爽、快、穩,甚至可以超越 iPhone 和高通驍龍 845,那麼華為就已經成功了,就算 GPU Turbo 只是一個交保護費搞出來的東西,那麼華為也成功了。
榮耀 Play 的發布有兩個重要的意義,第一個是華為 GPU Turbo 的實現意味著華為確實有能力讓 Android 變得更好、更易用,華為自己研發 SoC 確實相交於其他廠商有著無法比擬的優勢,第二個是,榮耀 Play 是一個千元產品,華為 Mate RS 是一個萬元產品,這兩個東西用的 SoC 是同樣的,這意味著華為似乎已經找到了旗艦機配置公式化下讓手機擁有層級差異的新道路,而其他廠商似乎都還在摸索中。
文章首發於微信公眾號【技宅空格】(konggetech)。
讀者交流(催更)群:296770564
技宅空格 專欄,專註原創,
熱衷於科技、數碼、互聯網、動漫、遊戲、電音,
歡迎你關注我們。
推薦閱讀:
※如何看待殲15已經成功進行上千次電磁彈射試驗?
※來自09年微軟未來Vision的可摺疊屏幕 ,比你們期待的還要好,這是你心目中的Surface Phone嗎?
※純線性單細胞基因組擴增技術:LIANTI
※有哪些看起來很初級的技術其實原理很高端很厲害?
※Apple Watch 上有哪些官網沒有說的黑科技?