来源:AI前线

本文长度为2000字,建议阅读5分钟

本文带大家了解Google新开源 TensorFlow RunTime。

4 月 30 日,谷歌宣布开源 TensorFlow RunTime (TFRT),这是其 TensorFlow 机器学习框架的一个新运行时,它提供了统一的、可扩展的基础架构层,在各种硬件上都具有高性能。TFRT 可以减少开发、验证和部署企业级模型所需的时间。并且,谷歌方面透露 TFRT未来有望取代现有 TensorFlow 运行时

现有 TensorFlow 运行时将被取代

TensorFlow 的根本意义,在于简化用户在多种设备之上构建以及部署机器学习模型的具体流程。但“构建及部署 ML 模型”的具体含义会随时间发生变化,并不断受到机器学习生态系统发展与演进的影响。

在 TensorFlow 堆栈的上半部分,持续出现的创新成果带来了更复杂的模型与部署方案。越来越多需要巨量算力的全新算法从研究人员手中诞生,并由应用程序开发者在跨边缘 / 服务器层面用于增强自己的开发成果。

而在堆栈的下半部分,由于摩尔定律逐渐失效,计算需求与计算成本增长带来的压力逼近各半导体厂商不得不针对特定 ML 用例开发新型硬件。时至今日,各大传统芯片制造商、初创企业以及软件公司(包括谷歌)都已经在投资研发自己的 AI 专用型芯片。

结果就是,机器学习生态系统的需求与 4 到 5 年之前 TensorFlow 刚刚诞生时完全不同。虽然我们从 2.x 版本开始就一直在保持项目迭代,但目前的 TensorFlow 堆栈才刚刚针对图执行进行过优化,且在分派单一操作时会产生不小的资源开销。

很明显,要延续当前发展趋势并在未来继续支撑各类创新举措,用户们迫切需要一套高性能的低级运行时。

因此,谷歌今天宣布开源了新的运行时 TFRT。

GitHub 开源地址:

https://github.com/tensorflow/runtime

作为新的 TensorFlow 运行时,TFRT 的核心目标,是为各类专用性质的 AI 硬件提供具有上佳性能水平的统一、可扩展基础架构层。TFRT 能够高效利用多线程 CPU、支持全异步编程模式,同时专注于低级执行效率。

谷歌表示,TFRT 将能够满足研究人员在急切模式下开发复杂的新模型时希望获得更快的迭代速度与更好的错误报告的需求,以及助力应用程序开发人员在模型的训练与生产支持过程中获得更好的性能表现。此外,它还能帮助硬件制造商以模块化方式将边缘与数据中心内设备整合至 TensorFlow 当中。

简而言之就是,TFRT 可以减少开发、验证和部署企业级模型所需的时间,调查显示,这种模型的时间从几周到几个月 (或几年) 不等。

它还可能击败 Facebook 的 PyTorch 框架。后者是 OpenAI、Preferred Networks 和优步 (Uber) 等公司广泛使用的框架。

TFRT 在 GitHub 上以开源的形式发布之前,在今年早些时候举行的 2020 TensorFlow 开发峰会上,TFRT 在一次关键的基准测试中加速了核心循环。

TFRT 产品经理 Eric Johnson 表示,TFRT 将取代现有的 TensorFlow 运行时。

TFRT 是什么?

TFRT 是一种新的运行时方案。它负责在目标硬件上高效执行内核(特定于某些设备的低级基元)。

通过以下 TensorFlow 训练堆栈简化图,可以看到 TFRT 在急切执行与图执行当中都扮演着至关重要的角色:

TFRT 在 TensorFlow 训练堆栈的图与急切执行中扮演的角色

请注意,所有灰色元素都属于 TFRT 的组成部分。

在急切执行时,TensorFlow API 会在 TFRT 中直接调用;而在图执行中,程序的计算图会转化为针对特定目标进行优化的专用程序,并被分派给 TFRT。

在这两种执行路径当中,新的运行时都会调用一组内核,这些内核负责调用底层硬件以完成模型执行,具体如黑色箭头所示。

设计要点

现有 TensorFlow 运行时最初是专为图执行与训练类工作负载所构建的;而在新的运行时中,急切执行与推理则成为核心负载类型,执行需求放在第一位,同时高度强调架构的可扩展性与模块化要素。

更具体地讲,TFRT 在设计当中包含以下关注要点:

  • 为了获得更高性能,TFRT 采用无锁图执行器。该执行器能够以较低的同步开销支持并发操作执行,并可凭借经过简化的急切操作调度堆栈异步执行急切 API 调用,同时显著提高执行效率。

  • 为了降低 TensorFlow 堆栈的扩展难度,TFRT 将设备运行时与主机运行时(分别负责驱动主机 CPU 与 I/O 工作负载的核心 TFRT 组件)区分开来。

  • 为了保证行为一致性,TFRT 在急切执行与图执行之间使用通用抽象定义,包括形状函数及内核等。

借助 MLIR 的力量

TFRT 亦与 MLIR 紧密集成。例如:

  • TFRT 利用 MLIR 编译器基础架构为运行时执行的计算图生成针对特定目标经过优化的表示。

  • 利用 MLIR 的可扩展类型系统,TFRT 得以在运行时中支持任意 C++ 类型,消除了以往只支持特定张量的局限性。

TFRT 与 MLIR 的结合,将改善 TensorFlow 的统一性、灵活性以及可扩展性。

初步成果

从结果来看,推理与服务用例的初步性能表现令人振奋。

作为 TensorFlow Dev Summit 2020 基准测试研究的一部分,谷歌将 TFRT 与 TensorFlow Serving 集成起来,并测量了向模型发送请求并返回预测结果的具体时长。

在测试中,谷歌选择了通用型 MLPerf 模型 ResNet-50,并将批处理大小设定为 1,数据精度设定为 FP16,借此保证将研究重点放在与运行时相关的操作调度开销身上。

谷歌表示,在性能测试中,TFRT 将训练过的 ResNet-50 模型 (一种流行的图像识别算法) 在显卡上的平均推理时间与 TensorFlow 当前运行时相比提高了 28%。

TFRT 产品经理 Eric Johnson 和 TFRT 技术负责人 Mingsheng Hong 在博客中表示,“这一早期结果验证了 TFRT 的不俗实力,我们希望它能大大提高性能”,“高性能、低水平的运行时是实现当今趋势和推动未来创新的关键,TFRT 将使广大用户受益“。

下一步目标

据了解,TFRT 已经被集成在 TensorFlow 当中,初步以可选形式启用,确保开发团队能有时间继续修复错误并进一步完成性能调优。

目前,TFRT 仍处在早期开发阶段,目前对 TFRT GitHub 存储库的贡献有限,且在稳定的 TensorFlow 版本中尚不提供 TFRT。但谷歌表示,它将很快通过一个 opt-in 标志实现。

最终,TFRT 将成为 TensorFlow 的默认运行时。

延伸阅读:

https://blog.tensorflow.org/2020/04/tfrt-new-tensorflow-runtime.html

编辑:于腾凯

校对:林亦霖


招聘信息

岗位: 开发运维工程师

职能:研发团队支持——配合多个研发组,搭建、维护、优化Jenkins、禅道、数据库、大数据平台等,开发、支持持续集成(CI-CD)脚本和流程、软件发布管理,提高各个研发组的开发效率。深入研究运维相关技术以及新型软硬件技术,包括运维自动化技术,虚拟化技术,监控技术,网络技术等。对外提供数为软件系统的云服务和培训服务设施等。

招聘要求:本科学历、带有大数据系统(Hadoop、Kafka、ES、MongoDB、Jenkins等)使用经历

入职单位: 清华大学软件学院 大数据系统软件国家工程实验室 (工作地点:双清大厦)

简历投递地址:zifanwang@tsinghua.edu.cn
招聘日期:即日起至2020年7月16日

Google开源新TensorFlow运行时TFRT,将取代现有进行时相关推荐

  1. Google开源新AI模型,语音区分准确率92%创新高 | 论文+GitHub

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一个AI音箱,认得每一个说话的对象. 所谓"千人千面",此之谓也.小孩说话,它就依照小孩的喜好和模式,老人票友,它的智 ...

  2. 【小睿精选·第四期】谷歌开源更快、更高效的 TensorFlow 运行时 TFRT

    [小睿精选] [小睿精选]第四弹来啦,本期共收录6条嵌入式资讯信息,希望可以帮到你.欢迎大家在文末留言,唠一唠你关注的话题,说不定下期就有你想要的惊喜! 1.中科蓝讯与阿里"平头哥" ...

  3. 开源微服务运行时 Dapr 发布 1.0 版本

    作者 | Dapr 社区 译者 | 敖小剑 来源|阿里巴巴云原生公众号 Dapr 是 2019 年 10 月开源的分布式运行时.早在 Dapr 开源初期,阿里云就开始参与 Dapr 社区建设和代码开发 ...

  4. 开源微服务运行时 Dapr 1.0 版本

    简介:Dapr 是 2019 年 10 月开源的分布式运行时.早在 Dapr 开源初期,阿里云就开始参与 Dapr 社区建设和代码开发,目前已有两位 Dapr 成员,是 Dapr 项目中除微软之外代码 ...

  5. AI一分钟 | 蔚来赴美IPO,开盘跌破发行价;TensorFlow开源新库TFDV

    图片来源:腾讯汽车 ▌蔚来汽车挂牌纽交所,12 位车主"替"李斌敲了钟 美国当地时间9月12日上午9点,在提交招股书不到一个月的时间后,蔚来汽车正式挂牌纽交所,股票代码为「NIO」 ...

  6. 揭秘TensorFlow:Google开源到底开的是什么?

    [本文作者李理 ,人工智能科技公司出门问问NLP工程师.] 这两天发现朋友圈被Google开源深度学习系统TensorFlow的新闻刷屏了.这当然是一个很好的消息,尤其对我们这种用机器学习来解决实际问 ...

  7. 可以抛弃 Python 了?Google 开源 Swift for TensorFlow 意味着什么

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! Google开源Swift for TensorFlow无疑是对热衷于喜爱Swift编程语言 ...

  8. “迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战

    戳蓝字"CSDN云计算"关注我们哦! 作者:稻农 来源:阿里系统软件技术 稻农(叶磊) 阿里云智能事业群高级技术专家 参与主导容器运行时及网络创新工作:目前的工作侧重于基于进程虚拟 ...

  9. Google 开发新的开源系统 Fuchsia

    google 最新os 下载 https://github.com/fuchsia-mirror/magenta 本文转自:http://www.oschina.net/news/76094/goog ...

最新文章

  1. C++11中Lambda表达式的使用
  2. 机器学习泰斗- Michael I.Jordan最新演讲:机器学习前景与挑战
  3. 精品软件 推荐 ACPsoft PDF Converter 免费的多功能 PDF 转换器
  4. Spring vs Seam
  5. dedecmsmip_织梦MIP文章内容页图片适配百度MIP规范
  6. PHP学习系列(1)——字符串处理函数(2)
  7. 去除le-table表格的hover效果
  8. HTML5 响应式图片
  9. ArcGIS Server开发的一些小经验
  10. Python细节面试题--小整数对象池和大整数对象池
  11. 在旭日X3派开发板上使用USB Wifi来提高网络速度
  12. java: 找不到符号 报错
  13. 20189320《网络攻防》第八周作业
  14. bgp 服务器 验证,什么是所谓的BGP协议_BGP服务器指什么?
  15. 在校园暴力中成长的孤僻少年,如何逆袭剑桥,成为一代科学大师
  16. Connectionist Text Proposal Network
  17. 判断虚拟键盘是删除键的方法
  18. 台式计算机能装蓝牙吗,台式机安装蓝牙方法推荐
  19. poj 1608 dp(Banal Ticket)
  20. #{}和¥{}的区别?

热门文章

  1. python可以计算复杂积分吗_python中二重积分的正确计算
  2. 实验进行中:.NET WebAssembly支持
  3. 第一款支持容器和云部署的开源数据库Neo4j 3.0
  4. 25%的游戏通过Steam支持Linux系统
  5. 微信支付提示 缺少$key0$错误
  6. C#获取当前日期时间(转)
  7. 我开发共享软件的三次经历(中):我赚到了十万块
  8. echarts柱状图x轴文字换行_深入 echarts 如何设置 Label / axisLabel 换行及自定义格式 / 自定义样式? 结合 canvas 如何实现文字换行来理解...
  9. java异常类型和基本处理原则_Java异常控制机制和异常处理原则
  10. 计算机与智能化专业课程,人工智能专业课程有哪些 大学本科课程设置