谷歌今天为其Android上的TensorFlow框架启动了基于OpenCL的移动GPU推理引擎。它现在可以在TensorFlow Lite库的最新版本中使用,并且该公司声称它使用“合理大小”的AI模型在现有OpenGL后端上提供了两倍的加速。

OpenGL已经使用了将近30年,它是一种平台无关的API,用于渲染2D和3D矢量图形。OpenGL ES 3.1中添加了计算着色器,但TensorFlow团队表示,向后兼容的设计决策限制了它们无法发挥设备GPU的全部潜能。另一方面,OpenCL从一开始就是为使用各种加速器进行计算而设计的,因此与移动GPU推理领域更加相关。这激发了TensorFlow团队对基于OpenCL的移动推理引擎的调查,并最终采用了它。

新的TensorFlow推理引擎具有优化器,该优化器选择合适的工作组大小以提高性能,从而使高通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进行的另一项测试中,该团队将等待时间从Huawei Mate 20上的近100毫秒减少到不到25毫秒。

Google指出,OpenCL不属于标准Android发行版,因此某些用户无法使用。作为权宜之计,TensorFlow Lite现在在运行时检查OpenCL的可用性,以便在不可用或无法加载OpenCL的情况下,库退回到旧的OpenGL后端。

TensorFlow软件工程师Juhyun Lee和Raman Sarokin在博客中写道:“虽然TensorFlow Lite GPU团队不断改进现有的基于OpenGL的移动GPU推理引擎,但我们也一直在研究其他技术。”“ OpenCL带来了很多功能,这些功能使我们能够优化移动GPU推理引擎。”