移動設備GPU 性能優化對玩家游戲體驗至關重要。侑虎科技 UWA 一直專注于游戲和 VR 應用的性能優化,移動設備 GPU 優化是其關注的重點,為了更好地滿足開發者針對不同 GPU 芯片的性能測評與優化,日前他們在全新升級的UWA SDK 2.4.8版本中,推出了 GPU 性能測評工具—UWA GOT Online GPU 模式。這也是 UWA 繼去年GPU Counter 功能更新增加Imagination PowerVR GPU 芯片支持后的一次重要升級。
全新的UWA GOT Online GPU 模式帶來了更全面的GPU 性能優化方案。在 UWA 官方公開的 GOT Online 支持設備列表中,可以看到對多款Imagination PowerVR GPU的支持:GE8100、GE8200、GE8300、GE8310、GE8430、GE8320、GE8325、GE8340 等,并且會持續刷新支持Imagination PowerVR GPU的型號,表中還列出了GPU耗時均值、GPU著色、GPU帶寬、GPU圖元處理、GPU負載等多個評測優化維度。Imagination 將與 UWA 持續合作幫助開發者對GPU 進行更好地優化。
現在,讓我們一一介紹這些重要功能。
- 性能簡報:該頁面可以快速地幫助開發者把控項目的GPU性能壓力情況
- GPU分析:分別從渲染和帶寬兩個角度,對GPU性能壓力進行分析
- 渲染資源分析:開啟紋理和網格資源分析功能,定位這些資源的具體使用情況
- Overdraw快照:更便捷地定位Overdraw壓力來源
GPU溫度:快速判斷設備發熱的原因是否主要來自GPU
性能簡報
如下圖,UWA列出了測試時的FPS、GPU Clocks數據,并用淺紅色背景標注了GPU Bound幀。GPU Bound表示GPU性能高壓區間,此時GPU計算耗費的時鐘周期數過高,可能無法支持滿幀運作。
同時,UWA也在圖表下列出了GPU性能、渲染統計、紋理資源分析和網格資源分析4個模塊的參數情況和對應的優化任務隊列。
簡報的目的是幫助大家在茫茫多的性能指標中,快速篩選出高優先級的優化任務。如需要針對某些指標做更為深層的下探,就可以使用下文中的各個功能進行分析。
GPU分析
在指標匯總下,展示了測試過程中獲取到的各項GPU參數。同時,UWA也根據這些指標間的關聯,分別從渲染和帶寬兩個角度,幫助開發者對GPU性能壓力進行具體分析。
1. 指標匯總
GPU TimeGPU Time即每幀的GPU耗時。GPU耗時的推薦值和CPU耗時一樣,當項目需要維持在30幀時,GPU耗時應低于33ms(UWA推薦控制在28ms更佳)。同時,UWA也列出了渲染耗時Fragment Time和頂點處理耗時Non-Fragment Time數據作為補充。
Clocks
GPU Clocks表示渲染一幀耗費的GPU時鐘周期數,和GPU Times一樣,也是用于衡量GPU性能的主要指標。通過GPU Clocks,開發者可以快速定位項目的GPU壓力主要來自哪些場景,并結合其他GPU參數對GPU壓力情況進行具體分析。
GPU Utilization
Fragment Utilization和Non Fragment Utilization分別表示圖元處理和非圖元處理任務處于活動狀態的時間百分比。
當Non Fragment Utilization高時,開發者可以從面片數、面剔除、模型復雜度等角度著手進行優化;而當Fragment Utilization高時,則考慮項目中是否存在Overdraw過高、Fragment Shader過于復雜等問題。
GPU Shaded
在GPU Shaded下,可以獲取到相關的Fragment shaded、Vertices shaded、Cycles/Pixel指標數據。
其中Cycles/Pixel表示平均每個像素耗費的GPU時鐘周期。當畫面的Shader復雜度過高/或者Overdraw過高時,GPU需要消耗大量的時鐘周期對Shader進行運算,容易造成GPU耗時變高,造成卡頓。通過Cycles/Pixel,即可快速定位高Cycles的場景,需要進一步判斷場景的GPU壓力是否是由于Shader復雜度過高還是Overdraw過高造成,進行有針對性的優化。
Fragment shaded表示每幀Fragment shader執行了多少次,用Fragment shaded數除以設備分辨率,可以側面反映項目的Overdraw情況。
當Overdraw較高時,容易引起發熱和能耗方面的問題。我們可以通過降低半透明粒子特效的粒子數量、使用不規則面片代替矩形面片渲染粒子特效或UI等方式,減少項目的Overdraw層數,降低GPU壓力。
而Vertices shaded則表示每幀Vertex shader執行了多少次。使用Vertices shaded除以輸入圖元數,即可得到平均每個圖元進行了多少次Vertices shaded。UWA推薦平均每個圖元執行次數應控制在1.5次以下。
GPU Bandwidth
和CPU一樣,GPU Bandwidth也是芯片耗電的重要指標。當GPU持續進行高負載外部讀寫時,掉電就會過快。UWA的GPU Bandwidth模塊統計了測試過程中單幀的讀寫帶寬總量,通過查看GPU Bandwidth模塊,可以快速定位測試過程中帶寬較高的場景和原因,并進行進一步測試優化。
GPU Memory Bus Utilization
GPU Memory Bus Utilization,即每幀GPU內存總線負載。它表示當前GPU帶寬消耗占總可用帶寬的百分比。當GPU Memory Bus Utilization持續較高時,說明GPU訪問內存的頻率過于頻繁,可以通過減少紋理資源與網格資源的大小和數量控制GPU緩存的占比。
GPU Primitive
渲染面是產生GPU壓力的重要因素之一,渲染面過多可能是模型過于復雜;也可能是地形、大建筑物等大面積模型沒有進行適當的拆分,導致進入視域體的面片可能不多,但提交GPU的渲染面依然很多。
對于這種情況,我們可以通過GPU Primitive下的各項參數來進行初步判斷。
Input Primitives:提交到GPU端的圖元總數,該數值基本等同于引擎端統計的渲染面片總數。
Visible Primitives:在GPU端通過各種裁剪之后,留下的參與渲染的三角面。
Culled Primitives:因為在視域體外而被裁剪的三角面,因為朝向而被裁剪的三角面。
GPU圖元處理數量過多會對設備的帶寬和能耗造成較大的影響,應盡量在程序端完成剔除,并減小送往GPU的圖元數。在3D場景中,比較理想的情況下,可見圖元的數量應該接近或高于 50%(對于大部分模型,有一半三角面會因為朝向被裁剪)。如果某些角度下,可見圖元的比例非常低,則很可能存在上文提到的第二種情況,從而可以針對性地檢查和優化場景中,這個角度下,被提交到GPU的大面積模型。
2. GPU渲染分析
GPU Clocks是衡量GPU性能的主要指標,結合該曲線,開發者可以快速判斷各個場景中的GPU壓力。
同時,UWA也展示出了GPU Shaded、GPU Primitive指標的均值和性能走勢。當某個場景中的GPU Clocks較高時,通過這些指標的推薦值和性能曲線,開發者就可以快速判斷是哪些參數造成的GPU渲染計算壓力,并采取相應的優化方案。
3. GPU帶寬分析
由于GPU讀、寫帶寬較高時都會造成大量的發熱和耗電,需要開發者重點關注。
在相關參數中,也展示了GPU Memory Bus Utilization、GPU Primitive參數。比如當GPU Primitives較高時,就說明提交到GPU端的圖元總數較多,可能引起較高的帶寬壓力。
渲染資源分析
當參與渲染的紋理和網格資源越多、采樣越多時,資源內存會變高,GPU帶寬和GPU Clocks也會相應上漲。為了保證讓參與渲染計算的資源物盡其用,開發者可以手動開啟紋理和網格資源分析功能,定位這些資源的具體使用情況。
紋理資源分析
在紋理資源分析頁,除了紋理資源的內存、數量、尺寸等參數外,我們還可以查看紋理渲染利用率、是否開啟Mipmap和Mipmap采樣率等數據。
通過紋理渲染利用率,開發者即可快速定位到一直在內存中但從未參與過渲染的紋理資源,以此排查是否存在場景中不可見的渲染物體、不合理的打包和加載策略等可能造成此種浪費的因素。
而通過Mipmap 0層采樣率是否較低(低于20%),則可以判斷哪些紋理資源的尺寸過大,開發者就可以通過降低這些紋理資源分辨率緩解內存和GPU壓力,同時也不會影響畫面效果。
網格資源分析
在網格資源分析頁,除了和紋理資源相似的資源渲染利用率外,我們也可以查看網格的最大屏占比和最小渲染密度數據。渲染利用率為0的網格資源和紋理資源優化方式相似,而網格最大屏占比和最小渲染密度則可以用于排查網格資源的精度是否合理。
當網格的最大屏占比小于0.02%時,說明網格在手機屏幕中只占很小的一部分,可見性較低。如果同時網格的復雜度較高,就說明網格的精度過高,開發者可以考慮使用更低精度的模型進行替換。
渲染密度則表示在平均每一萬像素中網格的頂點數,如果該值大于1000,則說明我們在很小的畫面中繪制了過于復雜的網格。因此,當此網格的渲染密度最小時,該數值仍然高于1000,那么此網格的頂點數大概率是過高的,開發者可以考慮對這些網格資源進行減面操作,或使用LOD分級處理。
Overdraw快照
Overdraw表示項目運行過程中單幀中整個屏幕被填充的倍數。在游戲運行過程中,場景中半透明物體的重合會使得同一個像素點在一幀中會被繪制多次,容易造成Overdraw過高,引起設備發熱。
在Overdraw快照模塊,UWA通過Fragment Shaded(渲染像素總數)與設備渲染分辨率,換算得到了Overdraw的計算值,以幫助開發者對項目的Overdraw情況進行排查。
在測試GPU模式時,開發者可以手動Dump采集場景中具體的Overdraw情況。
在Overdraw快照模塊,即可查看Dump幀各個相機的Overdraw情況。其中Overlay-UI(UWA)相機展示的是UGUI中Overlay部分的Overdraw信息,即所有沒有掛在任何相機下UI的Overdraw信息。
在柱狀圖下方,還可以查看所選柱狀圖的Overdraw熱力圖,其中顏色越紅,表示該處像素在當前幀中被填充的次數較多,Overdraw較高,GPU的壓力就越大。
開發者可以結合報告截圖和Overdraw熱力圖,更便捷地定位項目的Overdraw壓力來源。
GPU溫度
GPU壓力較高時容易引起設備發熱。UWA統計了設備的GPU、CPU、電池溫度,以便開發者判斷設備發熱的原因是否主要來自GPU。
若確認是由于GPU壓力導致發熱,接下來可以進一步排查與GPU溫度情況有關的參數,譬如FPS、GPU Clocks、GPU bandwidth。而功率則會和GPU溫度相互影響,也是反應能耗和發熱問題的重要參數。
這里特別建議大家:由于CPU和GPU芯片位置較近,當CPU壓力較大產生發熱時,也可能帶動GPU一起發熱。所以在優化GPU發熱問題時,也要適當結合CPU壓力情況進行排查分析??偟膩碚f,當項目存在耗電快、溫度高的現象時,開發者可以從GPU性能壓力、GPU帶寬、CPU主線程、CPU子線程等方面著手,優化發熱問題。
UWA提供的性能測評工具更進一步地拆分和細化了項目的GPU壓力成因,為您帶來前所未有的優化體驗。UWA的目標是讓您更便捷、高效地定位項目的GPU壓力來源,告別盲目猜測,擁抱精準優化。
-
芯片
+關注
關注
459文章
52323瀏覽量
438252 -
gpu
+關注
關注
28文章
4923瀏覽量
130859 -
vr
+關注
關注
34文章
9670瀏覽量
152304
發布評論請先 登錄
【「算力芯片 | 高性能 CPU/GPU/NPU 微架構分析」閱讀體驗】+NVlink技術從應用到原理
英諾達推出RTL功耗優化工具
芯原推出新一代高性能Vitality架構GPU IP系列
《CST Studio Suite 2024 GPU加速計算指南》
南方測繪多款實景三維軟件產品通過官方測評
Cincoze德承推出兩款全新GPU嵌入式工控機
英諾達推出兩款全新靜態驗證EDA工具

評論