谷歌稱 TensorFlow 的 OpenCL 可以將推理性能提高一倍

本文最初發表於 venturebeat,由 InfoQ 中文站翻譯並分享。

Google 日前 發佈了一款基於 OpenCL 的移動 GPU 推理引擎,用於 Android 上的 TensorFlow 框架。它現在可以在最新版本的 TensorFlow Lite庫中使用,該公司聲稱,它提供了一個比現有的 OpenGL 後端加速兩倍的“合理大小”的人工智能模型。

OpenGL 已有近三十年的歷史,是一個平臺無關的 API,用於渲染 2D 和 3D 矢量圖形。OpenGL ES 3.1 增加了計算着色器,但 TensorFlow 團隊表示,向後兼容的設計決策限制了它們充分發揮設備 GPU 的全部潛力。另一方面,OpenCL 從一開始就是爲各種加速器的計算而設計的,因此與移動 GPU 推理領域更相關。這激發了 TensorFlow 團隊對基於 OpenCL 的移動推理引擎的研究並最終採用。

新的 TensorFlow 推理引擎提供了一個優化器,可以選擇合適的工作組規模來提高性能,從而在高通(Qualcomm)的 Adreno GPU 等硬件上比平均速度提高了 50%。它原生支持 FP16,並且需要加速器來指定數據類型的可用性,通過加速算法計算來減少內存和帶寬的使用以及訓練時間。(Google 指出,由於 FP16 的支持,某些較舊的 GPU,如大約 2012 年上市的 Adreno 305,現在可以以其全部能力運行了。)另外,OpenCL 能夠通過物理常量內存保持協同,從而大大超過 OpenGL 的性能。物理常量內存是像 Adreno GPU 這樣的芯片中的一項硬件功能,爲存儲常量數組和變量保留了 RAM。

在一次基準測試中,TensorFlow 團隊將所謂的神經架構搜索系統 MNASNet 1.3 的延遲從基於 OpenGL 的後端在 Vivo Z3 上超過 100 毫秒降低到使用 OpenCL 替代方案的 25 毫秒。在另一項使用目標檢測算法 SSD MobileNet v3 的測試中,該團隊將華爲 Mate 20 的延遲從近 100 毫秒降低到 25 毫秒以下。

Google 指出,OpenCL 並非標準 Android 發行版的一部分,因此一些用戶無法使用它。作爲一種權宜之計,TensorFlow Lite 現在可以在運行時檢查 OpenCL 的可用性,這樣,如果它不可用或無法加載,那麼庫就會退回到舊的 OpenGL 後端。

TensorFlow 軟件工程師 Juhyun Lee 和 Raman Sarokin 在博文中寫道:“當 TensorFlow Lite GPU 團隊不斷改進現有的基於 OpenCL 的移動 GPU 推理引擎時,我們也在研究其他技術。OpenCL 帶來了很多特性,讓我們可以優化我們的移動 GPU 推理引擎。”

作者介紹:

Kyle Wiggers,技術記者,現居美國紐約市,爲 VentureBeat 撰寫有關人工智能的文章。

原文鏈接:

https://venturebeat.com/2020/08/17/google-claims-tensorflows-new-opencl-inference-backend-can-double-performance/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章