ARM Nathan:遊戲品質拔高 硬件需升級

據報道/ 6月5日,2015年第三期據開放日‧虛幻引擎專場活動在上海正式舉行,此次活動由Epic Games與據聯合主辦。

Nathan li

在遊戲開時,要考慮到硬件結合、硬件加速,降低功耗等問題,隻有高端的硬件配置才能提升遊戲品質,很多技術方面的問題是無法通過軟件解決的。ARM作為微處理器的知名企業,在市場上有著很高的占有率。那麼如何通過ARM來解決功耗、軟件圖形解碼等方面的問題呢?此次活動,ARM公司Nathan li和Epic Games高級技術工程師王袮,詳細分享瞭ARM在硬件設計架構和用UE4A如何在ARM上進行引動平臺上進行軟件圖形處理。

隨著行業的發展,用戶對產品的品質要求越來越高,這意味著硬件配置急需升級。現在手機內存越來越大,32位顯得有些跟不上時代的腳步,未來的移動高端設備需要更高的配置和可塑性,不僅要在原先的基礎之上讓用戶感到容易上手,更要在功能上給與用戶更好的體驗。

“ARM前幾年就研發瞭64位的CPU架構。未來可能有一些高端的移動存儲設備,內部直接放一個ARM的SOC或者 CPU,能夠做非常快地加密、解密的運算,同時又給大傢提供靈活性,比起專用的VSP的相片來說的話,有更廣泛的擴展空間。為瞭給移動用戶最舒適、最平滑的體驗,我們在硬件上針對應用程序的梯度做出不同等級的產品,不同等級的產品整合在一起快速切換,給用戶平滑的體驗。” NathanLi 現場說道。

眾所周知,用手機硬件做圖形解碼會有許多問題,可是怎樣解決,EPIC高級技術工程師王袮解釋道:“ARM開發出瞭ASTC,從字面意義上理解就是適應性非常廣的,可以通過調整它的效果和壓縮率找到一個平衡的壓縮格式。”

以下是現場演講實錄:

Nathan liARM是做什麼的?ARM公司是一傢知識產權(IP)供應商,以隻向合作夥伴轉讓設計方案成為其最大特點。

移動設備內存增大  CPU升級

近兩年,ARM也有新的CPU和GPU產品出現。後面到底有什麼故事?對於廣大遊戲開發者來說,加一些新的產品或者新的移動設備意味著什麼?

80年代中期,ARM還未成立,在英國劍橋的一傢小公司Acorn的基礎之上慢慢變成瞭ARM(Advanced RISC Machines)的這傢公司。90年代中期,諾基亞大規模采用瞭ARM架構的CPU在手機上,伴隨著諾基亞的成功ARM的架構也流行起來。

ARM2

首先,最早從蘋果的設備上看到64位CPU的架構叫ARMV8—A,是ARM第一代的64位的CPU架構,這種架構的模式是直接從之前比較成功的Cotex—A32位的基礎上發展而來。

ARM之前的架構是“ARM—”加一個數字代表產品,後來用單獨的Cortex為產品命名,比如說Cortex-A15、Cortex-A17等,都是之前比較成功的。前2、3年問世的中高端手機或者平板上,會運用到這樣的一些架構。我們比較熟悉的是依據這樣的架構所制作的SOC,以及這款SOC來驅動的手機和平板電腦產品。如今手機內存越來越大,比如3G、安卓上面的標配,很快32位顯得有些跟不上時代的腳步,前幾年ARM就研發瞭64位的CPU架構。

內置SOC架構   靈活性、擴展空間兼備

ARM設計的AArch32,代表在V8向下兼容的一套方案,32位的應用程序操作系統都可以完美地運行。AArch32的架構是從64位裡攝取瞭一些新的思想,特別是對浮點數的支持。所以相較於真正的32位,在同樣的情況下執行速度可以更快一些,但這依賴於編譯器做出相應的優化。

ARM3

目前看來,64位的問世,蘋果和安卓陣營都在積極推進。所以在實測中,64位產品確實會比32位的產品在同樣的時鐘頻率下,達到更高一些的performance。

另外一方面是針對加密、解密的,ARM提供跟隨VA一起問世的指令級,專門用於處理加密的。經過實測,發現使用這樣的指令優化的程序,在做加密相同的工作的時候,可以達到3—10倍performance的提升。

未來可能有一些高端的移動存儲設備,直接內置一個ARM的SOC或者 CPU,能夠做非常快地加密、解密的運算,同時又給大傢提供靈活性,比起專用的VSP的相片來說的話,有更廣泛的擴展空間。

ARM開發大小核    組合CPU、GPU提升性能

如今移動設備上的應用程序和遊戲是分等級的,每種應用或是遊戲對系統的要求有一個梯度。最高端和最低端的產品,要求的使用頻率和使用核數也不盡相同。基於這樣的想法,ARM推出的大小核(Big.LITTLE)的技術。

ARM4

移動設備上最關鍵的,除瞭性能,對用戶體驗很重要一點是發熱和電磁受敏,所以研究功耗非常重要。因此ARM想到,在硬件上針對應用程序的梯度做出不同等級的產品,不同等級的產品整合在一起快速切換,給用戶平滑的體驗。當用戶在處理一些要求不是很高應用時(上網、瀏覽網頁、打字),隻需要小核運行。某些產品不需要大核也能運行,可以由多個小核組合,同樣也能達到運行要求。

但是對於重度遊戲,特別是對於做虛幻引擎開發的同學來說,可能想用一些更加吸引人的、高端的content,這時候大核就能體現出價值瞭。對於應用程序,因為ARM提供額外的輔助,使得用戶做編程的時候更加簡單,同時更好的發揮多核的優勢。

隨著時間的推移,未來的用戶能夠從系統級別上會看到更多針對多核的優化,比如說EPA層次(蘋果推出Metal),實際上OpenGL將來會變成Vulkan,新的EPA都是想盡可能減少software的overheat,使大傢更好地發揮CPU多核的優勢,在同樣的GPU的情況下,甚至能夠達到50%performance的提升。按照這樣的想法,可以把CPU和GPU看成一個整體,更好的組成在一起。

Mali架構支持OpenGL ES3.0以上 減少內存搬運

ARM的GPU並不是很多人都瞭解,不過提到CPU很多人都知道,當然CPU是公司成立之初就開始做的。在安卓市場上,我們是No.1的GPU的授權。就拿ARM的合作夥伴三星來說,他們的制程技術比較先進,在最近的高端手機S6和S6Edge上,三星用最新的7420做的SOC,也是第一個在做14nm GPU的產品。

ARM對外部的Mali架構,一般都是支持到OpenGL ES3.0以上的標準。Task  Management的組件,是一個放在GPU裡面縮微的高度簡化的CPU部分,它負責任務的調度,其它多個核之間的共同工作。

在移動設備上是Tile-based rending,簡單來說把屏幕分成小塊,就像馬賽克的網格一樣,每次是針對某一個小塊進行渲染,但是這個渲染內容有必要更新到屏幕上,把內容寫到memory裡面去。在移動設備上,內存搬運是很耗電的,為瞭減少內存搬運,其他的時候都是做高度緩存,這樣我們會減少很多內存搬運。

目前市面上還沒有T880的高端設備,最高端的是三星的一款T760產品。其實T880和T760(雜核)之間的架構差不多,隻是T880有更高的使用頻率,性能更好一些。在終端產品上,Mali72的GPU上隻有兩條流水線,這是根據不同產品定位劃分的。

自研引擎用戶可獲技術支持

實際上一個Shader  Core支撐256個並發的線程,如果經過一些優化可以更好,也就是不必發生很多數據的等待。Epic對這方面做過不少工作,如果是自研引擎的用戶,或者對引擎深度優化的用戶會瞭解很多支持,ARM也會提供支持。

ARM有一款中低端設備產品Mali400和Mali450,但是這款產品的功耗性能很高,最高是支持到OpenGL ES2.0。在這種架構產品裡面,硬件實現性方面是分離的,這樣兩個不同的單元各司其職,工作起來相互不幹擾。缺點是設計的這種容量的同時可能就是一種浪費,因為遊戲中不一定能用上。

Mobile平臺存在獨有特點  

在應用程序方面,光照是遊戲裡最最關鍵的視覺效果如果使用Deferred Shading的技術去渲染場景裡的光照,先產生一個G-Buffer,再算difuuse、Normals等,最後把這些結果合並起來。

ARM5

對於遊戲開發者來說,粘性技術並不是非常陌生,特別是在PC和Console的平臺上發展比較完善。但是PC、Console平臺和移動平臺有什麼區別呢?其實最重要的區別就在於帶寬,高端典型的PC和Console內存帶寬可能達到Mobile平臺上的的上百倍。如果用同樣的技術,在高端平臺上跑起來非常流暢,效果很好,但是將同樣的技術放在Mobile平臺就完全不可以接受。

Mobile跟PC、Console比起來可能算是低端平臺,但並不是低端平臺就一定低,Mobile平臺存在獨有的好處和特點。在移動平臺上,可以渲染很多小塊,128—bit一個Pixel  data,表示同一個象素可以采樣4次,在Mali的GPU上面並不會受到任何性能損失。

ARM6

針對這些特色ARM做瞭拓展,提供給用戶一個新的feature叫Pixel local storage。在這個基礎上開瞭一條新的通道,也就是可以直接去訪問已經存好的數據,而且數據結構可以通過一個擴展的Sharder定義它,這樣可以完全控制的高速緩存。

王袮

ASTC對軟件圖形解碼適應性廣 

王袮:手機硬件做軟件圖形解碼,問題有兩個。一是耗費GPU,二是最終送給GPU的圖像不是隨機尋址的壓縮方式,還是轉換成RGPA的原始格式,所以內存占用非常大。

ARM8

ARM9

一般來說是由GPU來做硬件支持的壓縮格式,類似PBR、EGC,但多多少少都有一些問題。所以ARM開發出瞭ASTC,從字面意義上理解就是適應性非常廣的,可以通過調整它的效果和壓縮率找到一個平衡的壓縮格式。

Comments are closed.