Categories
程式開發

谷歌称 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 的 OpenCL 可以将推理性能提高一倍 1

在一次基准测试中,TensorFlow 团队将所谓的神经架构搜索系统 MNASNet 1.3 的延迟从基于 OpenGL 的后端在 Vivo Z3 上超过 100 毫秒降低到使用 OpenCL 替代方案的 25 毫秒。在另一项使用目标检测算法 SSD MobileNet v3 的测试中,该团队将华为 Mate 20 的延迟从近 100 毫秒降低到 25 毫秒以下。
谷歌称 TensorFlow 的 OpenCL 可以将推理性能提高一倍 2

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/