隨著我們對移動設備的依賴越來越強,手機游戲、移動應用越來越多的參與到我們的日常生活中,而賦予這些產品精美的UI設計、良好的用戶體驗、炫酷的游戲畫面以及優異的性能表現,都能夠幫助開發者更好地獲取用戶的青睞,為此在2017年8月Qualcomm在深圳、北京、上海舉行了三場“探索移動圖形圖像處理——Qualcomm開發者公開課”,全面向開發者介紹深層次的移動端圖形圖像的優化之道!
Qualcomm資深產品市場經理溫宵凱:Qualcomm平臺優勢及優化工具。
會間溫宵凱介紹到,Qualcomm在移動領域已經耕耘了超過三十年了,最早從modem開始,要最早先解決互聯問題,隨著最近智能手機發展,Qualcomm也是非常快地投入了大量的研發精力,放到多媒體處理器的研發上面,所以到現在,可以很自豪地講,Qualcomm是在移動多媒體互聯處理器里邊的世界第一的半導體廠商,特別是在移動互聯方面,是現在的3G、4G 的modem的領軍廠商,同時也同時投入了大量的人力和物力,在進行更新的5G的連接,在wifi方面也是有非常深地積累。
同時他也介紹到驍龍835處理器是全世界第一顆基于10納米芯片制造技術所制造的半導體芯片,所以你會看到它的尺寸變得非常非常的小,旁邊是一顆我們中國的一元人民幣的硬幣,所以在這樣一個非常小的面積內,它事實上集成了大量的多媒體和modem的處理器件,這個是傳統領域完全想象不到的,同時包括小米的米6,還有中興的nubia Z17,還有像一加的一加5,和HTC的U11,這些優秀的產品都是用了基于Qualcomm的驍龍835芯片,另外它也被用到了像ODG R8這樣的一款AR眼鏡里面。他同時向在場的開發者介紹了驍龍835處理器的相關技術參數及優勢。
筆者了解到,基于Snapdragon 835處理器是專為移動游戲設計的一款處理器。
具體參數如下:
- Qualocmm? Kryo? 280 CPU up to 2.45GHz
- Qualocmm? Adreno? 540GPU
- OpenGL ES3.2, Vulkan
- HDR10 with 60x more color
- Gigabit LTE
- Tri-band Wi-Fi
- Low latency
- Qualocmm? Quick Charge? 4.0
- 基于10nm制程
同時Adreno540比上一代產品提升了25%圖形性能,同時支持10bit色,它能夠支持64倍于之前的8bit色的色彩。另外Qualcomm在生態建設方面也是投入了巨大的精力,所以我們跟很多行業界的重點的公司,像重點的引擎提供商,像Unity和ePeak都有非常緊密的合作,來保證它的兼容性,和它最新的特效能夠最早地部署在這樣的高端手機上。
Qualcomm高級工程師李彩琴:移動平臺圖形技術進化史
首先她展示了一張在Mobile上渲染的一張特別真實的圖片,同時介紹了渲染出如此逼真圖片所需要的特效。以及在OpenGL的API上的技術及渲染過程。不論從模擬幾何角度、紋理坐標、法向量、顏色,還是到GPU中處理、定義視景體,甚至fragment shader對于像素的處理的過程都做了詳細的介紹。
其次她介紹到Qualcomm有基于tile的一個rendering的方案,因為考慮到mobile上面,它的帶寬是有限的,而且它是需要考慮到功耗的,不像電腦上面它有帶寬很夠用,然后它的功耗也是,它插電源,不需要考慮功耗的問題。在mobile上的話Qualcomm就需要在這兩方面來考慮一個很好的方案,來實現又有高性能然后又可以盡量少耗功耗的一個效果。
最后她與會者現場介紹了一些實際的案例。詳細介紹了Qualcomm圖形圖像處理中更多的使用GPU來進行操作,進而減少CPU的工作量同時在節約用電的同時給大家帶來更好的圖形圖像體驗。
Qualcomm高級資深工程師經理文艷山:次世代圖形圖像API
首先他介紹了Vulkan的發展史,從2012年的GLcomment,再到2014年AMD的Mantal,再到2016年Vulkan1.0
之后其介紹了Vulkan的一些特性。
- 首先Vulkan它是一個新的API,不僅包括Graphics也包括Compute,
- 然后Vulkan它是為現代的GPU設計的
- 是一個跨平臺的設計
- 同時支持多種操作系統
那作為開發者我們為什么要用Vulkan?
如果你希望你的APP是可以做Bit化的,希望你的APP能夠用到當今多核的優勢,希望你的APP的行為是可預測的,你應該用Vulkan。如果你要全新開發一個游戲,在你選擇游戲引擎的時候,建議比如你要用Unity或者建議用Unity 56以后的版本,從56開始,Unity支持Vulkan。因為可能你在5.5上開發了很久,開發出來,到時候它不支持Vulkan,然后想試Vulkan版本做升級的話,大家都知道游戲引擎上做升級是非常麻煩的一個事情。你需要做很多工作,修很多Bug。Android好像是從UE 4開始支持Vulkan。所以在選擇游戲引擎的時候,你應該先了解下這個游戲引擎是否支持Vulkan。你如果自己寫引擎呢,那你在引擎里面應該考慮加入Vulkan的支持。
同時文艷山也建議開發者使用Vulkan里面的Pipeline cache,它可以巨大提升你Pipeline創建速度,并且做了詳細的介紹
最后他向與會者介紹了Vulkan的memory的部分,VULKAN每個分配memory的函數,你所有的Memory都可以自己分配,因為你自己擁有的分配權,所以你自己就可以管理,這對于開發者來說也是極其有益的。
Qualcomm高級工程師李娟:基于驍龍Snapdragon Profiler的應用開發性能優化
Snapdragon Profiler的設計,設計的理念就是希望能很簡單的運用,但是有很多功能,提供同樣的界面便于用戶使用。可以分析CPU上的數據、GPU上的數據和DSP上的數據,可以分析VR的APP、OpenCL也支持。它具有多種功能多種模式,有實時的種模式,有trace的模式,就是靜態的一段到另外一段時間系統所發生的事件。有Frame Capture。主要針對圖形應用,可以抓住這一幀所有的資源,你的API,各種draw call list怎么畫的。
進而又在此延展進行相關案例的介紹,包括如何去分析它們。
-Augmented Reality App Realtime
-Snapchat – Trace
-Augmented Reality App – Snapshot
-Virtual Reality App
Qualcomm資深工程師杜博:移動應用開發優化精髓
如何有效的進行移動應用開發的優化呢?
其間他介紹到,第一個是要盡量減少我們渲染的像素,第二個我們要減少draw call的個數,第三盡量的減少帶寬的使用,第四個是關于VBO使用的優化,然后關于FOB使用的優化,第六個就是我們要去排序的優化,第七個是我們在shader使用過程中,我們對精度的控制,我們建議把默認的精度方式設成中等,在需要提升的情況下,對于你的shader需求,需要提升,我們可以設置成high,但是默認的話,我們都是中等,然后在shader運算的過程中,我們盡量減少參與運算的component的個數,只要夠我們的使用情況,我們不需要把所有的component都加入運算,這也是從性能和功耗上面都有好處的。第九,如果在我們render結束了以后,像這種Depth Buffer, stencil Buffer 我們通過gllnvalidate 把它discard,這樣可以避免不必要的數據拷貝,也是從性能和功耗上面都有好處。后面有三點都是和tessellation相關的,我們在做tessellation的過程中要盡量避免對亞像素三角形的計算,因為這個對于后面光深化的模塊帶來不好的性能。然后是背面三角形的一個剔除,我們要在tessellation階段盡可能的提早的把背面的三角形這種畸形的給它終止掉。然后在tessellation過程中我們對不使用的這種狀態我們也盡量不要把它enable起來,這樣都是在性能和功耗方面得到一些改善。后面我們還有講compute shader和fragment shader的可替換性上,在我們某些應用場景上面,如果我們可以用fragment shader,可以實現相同的compute shader 功能的情況下,我們建議大家就用fragment shader,這樣避免在GPU內部狀態的一個切換。還有就是在我們的compute shader或者向open cl的刻度運行的時候,我們需要對運行的參數進行優化,這里面我們著重講的就是這個workgroup size。Workgroup size這個大小的變化對這種運算,像compute shader, open cl 的這種運算帶來它的性能影響特別大。最后我們會推薦大家用剛才李娟介紹的這個snapdragon profiler 對你的應用做profile,那么可以得到你這個應用的哪些地方的性能還不夠好,我們可以進行進一步的優化。同時對這些優化點逐一進行展開介紹。
Qualcomm高級工程師李娟:利用驍龍Symphony優化應用功耗
其間她介紹到這個SDK就是幫助開發者能夠應用SoC上的所有運算資源,包括大小核,GPU和DSP。并且它給應用開發者提供了一些API可以控制功耗。并且指定你的任務是在哪個核上運行,在大核或者小核,或者GPU或者DSP上運行。簡而言之,它能夠幫助用戶并行地利用Soc上各個運算資源,并且提供了一套control API來控制你的功耗,已達到performance和功耗的平衡。
Symphony是什么呢?它其實是C++應用層的一些API,它提供給用戶一個庫文件,調用庫文件的一些接口,然后編譯到你自己的程序中,就可以實現并行,實現將任務分配到你的mobile設備上,實現power control各個CPU或者GPU的frequency。它是在用戶層的。用戶層可以來control power,這個還是蠻powerful的一個工具。因為,多數來講,要想控制功耗,很多只能從系統層,這個工具在develop.qualcomm.com/ software/symphony-system-manager-sdk可以下載,里面有很詳細的use guide,還有Sample Code。
同時李娟女士又根據具體的案例進行相關驍龍Symphony的許多優化技巧及介紹
在這三場活動中,Qualcomm不僅為開發者帶來了真真正正的干貨分享,也帶來了精美的Dragonboard 410C開發板贈送給與會者!
移動端APP的圖形圖像開發不斷影響著,技術產業的革新與發展,而與此同時Qualcomm也愿與我們的開發者們,共同前行,一起創造美好的未來!
評論
查看更多