AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

谷歌称 TensorFlow 的 OpenCL 可以将推理性能提高一倍

  • 2020-08-21
  • 本文字数:1035 字

    阅读完需:约 3 分钟

谷歌称 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/


2020-08-21 14:242793
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 559.3 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

在线文档的开发难度与突破

葡萄城技术团队

分布式协同 SpreadJS 在线文档

程序员的晚餐 | 5 月 24 日 咖喱鸡块

清远

美食

别在发愁写页面了,强烈推荐几款傻瓜式扒网站神器!!

公众号:V5codings

ARTS第一周

困到清醒

ARTS 打卡计划 起跑

手把手透析C语言堆内存申请malloc及扩容realloc

卓丁

c 堆内存管理 heap memory malloc realloc

Implement Stack using Queues

onee

LeetCode

人工智能学习心得--人工智能分类

岛乾坤

AI

学会推销自己

一尘观世界

创业 程序员 外包 销售 接项目

ziliqa生态打造区块链技术实体应用新标杆

极客编

从 Node 到 Deno

寇云

node.js deno

回“疫”录(24):开始了就不算晚

小天同学

疫情 个人成长 回忆录 个人感想 日常思考

思考:如何打造一个优秀的研发体系?

菜根老谭

研发管理 研发效能 研发体系

利用树形结构辅助实现去重算法

卓丁

算法 algorithm tree Deduplication

Rust 遇上 C/C++ (一):数组操作

Coding Fatty

c c++ rust 编程语言

列个清单-《清单革命》

Jack Hong

ARTS打卡第一周

落曦

重学 Java 设计模式:实战抽象工厂模式

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

20200518-20200524朋友圈思考汇总

罗小布

日常思考

坚持ARTS(week-1)

王钰淇

ARTS 打卡计划

绿宝这条宝藏街,夜宵也太太太太太好吃了吧!

极客编

JUC整理笔记二之聊聊volatile

JFound

最优组合问题-贪心算法

Geek_k6ry2n

python实现·十大排序算法之归并排序(Merge Sort)

南风以南

Python 排序算法 归并排序

Spring事务@Transactional底层原理

Geek_k6ry2n

spring 事务 hiber

理解这八大优势,才算精通单元测试

禅道项目管理

测试 单元测试

ARTS打卡第一周

Tom

Refcard,近300份技术大咖总结的cheat sheet

KAMI

学习 开发 分享 作弊卡

Cassandra集群架构及算法剖析

老任物联网杂谈

大数据 分布式 Cassandra 时序数据库

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)

图雀社区

node.js vue.js Vue

ARTS 打卡 WEEK1

编程之心

ARTS 打卡计划

DDD 中的那些模式 — CQRS

Joshua

领域驱动设计 DDD 事件驱动 CQRS Event Driven

谷歌称 TensorFlow 的 OpenCL 可以将推理性能提高一倍_AI&大模型_Kyle Wiggers_InfoQ精选文章