TensorFlow採用OpenCL後端使GPU推理效能加倍 - iThome
文章推薦指數: 80 %
OpenCL的設計更適合用於各種計算加速器,因此以OpenCL後端處理行動裝置GPU推理工作負載,比OpenGL後端效能好上許多.
移至主內容
文/李建興
|
2020-08-20發表
TensorFlow團隊以異構平臺開發框架OpenCL為基礎,在Android開發了新的行動GPU推理引擎,在適當大小的神經網路上,以及足夠的GPU工作負載,其執行的效率是現有OpenGL後端的2倍。
目前常用的GPU推理引擎是以OpenGL開發,是一種渲染圖形API,雖然在OpenGLES3.1版本加入了運算著色器(ComputeShader),可用來計算任意的資訊,但開發團隊提到,其為了要向後相容的API設計,限制了GPU的運算能力,因此TensorFlowLite(TFLite)GPU團隊在繼續發展基於OpenGL行動CPU推理引擎的同時,也在尋求各種可能性。
DuoApp中的AR效果,使用OpenCL後端處理
而同樣可用來發展機器學習應用的OpenCL(OpenComputingLanguage),一開始就是為各種計算加速器設計,更適合用於行動GPU推理,所以TFLite開發團隊便也投入資源,研究基於OpenCL的推理引擎,發現其確實能用來最佳化GPU推理工作負載。
TFLite開發團隊提到,與OpenGL相比,最佳化OpenCL後端要簡單許多,因為OpenCL提供良好的分析功能,利用概要分析API,開發團隊能夠精確地量測核心調度效能。
OpenCL能夠良好地支援用於高階Android行動裝置的高通AdrenoGPU,但是AdrenoGPU對於工作組大小非常敏感,配置適當大小的神經網路工作組可以提高效能,錯誤大小的工作組,卻會降低效能,雖然在具有複雜記憶體存取模式的複雜核心,要找出適當的工作組大小並不容易,但是因為OpenCL具有完整的效能分析功能,因此可被用來最佳化工作組大小,使平均運算速度提升50%。
而且OpenCL還原生支援16位元浮點數精度,即便是在2012年推出的Adreno305老舊GPU,都夠完全發揮GPU的效能,另外,OpenCL具有常數記憶體(ConstantMemory)的概念,高通在GPU加入的實體記憶體非常適合用於OpenCL的常數記憶體,這使得OpenCL在高通GPU的效能大幅超過OpenGL。
TFLite開發團隊將常用的2個行動機器學習模型MNASNet和MobileNetv3,拿來比較CPU、OpenGL和OpenCL的效能表現,無論是在MNASNet(如下圖)或MobileNetv3,新的OpenCL後端延遲都是最低的,約是OpenGL後端的2倍,而且在標有SD字樣使用AdrenoGPU的裝置上,OpenCL後端效能表現特別好。
開發團隊提到,使用OpenCL推理引擎的主要障礙,是OpenCL不包含在標準Android發布版中,即便有一些Android裝置廠商在系統函式庫加入OpenCL,但是部分用戶還是可能因為缺乏OpenCL必要元件,則必須回退使用OpenGL後端。
為了簡化開發人員的工作,TFLiteGPU一開始會檢查OpenCLRuntime的可用性,當不可用或無法載入時,便會切換使用OpenGL後端,開發團隊提到,從2019年中期開始,OpenCL後端就進到TensorFlow存儲庫中,並整合進TFLiteGPU委託API裡,因此現有TFLiteGPU程式可能已經透過委託回退機制,使用到了最新的OpenCL後端。
熱門新聞
俄國殭屍網路程式CyclopsBlink瞄準華碩路由器
2022-03-18
微軟更新自有Linux發行版
2022-03-21
Fintech周報第209期:玉山金控揭露今年科技發展策略,將來銀行3月底開業,純網保最快8月開放申請
2022-03-20
維護者破壞熱門node-ipc套件抗議俄羅斯入侵烏克蘭
2022-03-21
微軟再示警IE11將在6月停用,企業用戶應及早汰換
2022-03-21
美國、歐盟警告衛星通訊的網路攻擊風險
2022-03-21
【資安日報】2022年3月18日,近20款華碩家用路由器產品遭到CyclopsBlink殭屍網路鎖定、駭客組織UNC2891鎖定ATM系統下手
2022-03-18
【資安週報】2022年3月14日至18日
2022-03-18
Advertisement
專題報導
跟Google學ML系統SRE
大型企業IT如何技術出海
科技翻轉照護在榮家
別再使用PPAP傳檔!
百倍爆量挑戰!Uber超大數據省錢術
更多專題報導
延伸文章資訊
- 1TensorFlow採用OpenCL後端使GPU推理效能加倍 - iThome
OpenCL的設計更適合用於各種計算加速器,因此以OpenCL後端處理行動裝置GPU推理工作負載,比OpenGL後端效能好上許多.
- 2OpenCL 學習筆記(ㄧ): 第一個OpenCL 程式 - HackMD
目前最火紅的GPU 語言為CUDA 和OpenCL,本文將只探討OpenCL 要如何使用?早期的GPU 是專注在圖形運算,如果要用GPU 作運算必須利用繪圖介面,例如OpenGL ,雖然不是不能...
- 3【課程十五】OpenCL 高效能平行運算上機課程(兩日)
OpenCL (Open Computing Language)是基於C及C++語言,以同一種語言實現跨越CPUs、GPUs、CELL、DSP等異質(heterogeneous)執行平台,使其同...
- 4OpenCL Overview - The Khronos Group Inc
OpenCL™ (Open Computing Language) is an open, royalty-free standard for cross-platform, parallel ...
- 5[OpenCL]OpenCL 總整理 - HackMD
[OpenCL]OpenCL 總整理=== ## 安裝[install packets](https://askubuntu.com/a/850594/655911) ## 編譯[what is.