TensorFlow採用OpenCL後端使GPU推理效能加倍 - iThome

文章推薦指數: 80 %
投票人數:10人

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超大數據省錢術 更多專題報導



請為這篇文章評分?