TensorFlow为M1芯片提供7倍加速,还新增了GPU支持

极市平台

共 3470字,需浏览 7分钟

 · 2020-11-24

↑ 点击蓝字 关注极市平台

作者丨青暮
来源丨AI科技评论
编辑丨极市平台

极市导读

 

今年的TensorFlow不仅发展迅猛,还已经被部署到许多丰富的场景当中。近日,TensorFlow宣布为M1芯片提供7倍加速,还新增了GPU支持。最新发布的TensorFlow2.3也解决了输入管道瓶颈,我们更加期待TensorFlow2.4的到来。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

TensorFlow官方宣布,对苹果开发的最新M1芯片提供TensorFlow加速支持。

与此同时,苹果也在GitHub上发布了名为“tensorflow_macos”的项目,包含forked版本的TensorFlow 2.4和新的ML Compute框架,其针对MacBook上的TensorFlow进行了优化。

项目地址:https://github.com/apple/tensorflow_macos

1、7倍加速

这项更新对于喜欢使用Mac又纠结于训练速度的用户来说,真是个天大的好消息。

ML Compute是苹果今年推出的新框架,可直接在Mac上训练TensorFlow模型,优化后的TensorFlow 2.4则可以大幅加速MacBook的ML模型训练,无论是配置了M1芯片还是Intel芯片。

在更新之前,Mac上的TensorFlow仅支持CPU训练,而新的ML Compute将支持GPU的训练。

谷歌表示,这些改进,加上苹果开发人员能够通过TensorFlow Lite在iOS上执行TensorFlow,展示了TensorFlow在支持苹果硬件高性能机器学习的广度和深度。

forked版本的TensorFlow 2.4应用的是更高级别的优化方法,例如融合神经网络的层,选择合适的设备类型,以及将计算图编译并执行为由CPU上的BNNS、GPU上的Metal Performance Shaders加速的图元。

具体加速效果如何呢?据TensorFlow在推特上发布的消息,“可以在配置M1芯片的13英寸MacBook Pro上获得多达7倍的训练加速。”

下图展示了2020版13英寸MacBook Pro的三种配置在多种TensorFlow模型上的训练时间。其中灰色为优化前的版本(Intel),黄色(Intel)和橙色(M1)为优化后的版本。

可以看到,通过优化,配置了M1芯片的Mac达到了数倍加速的效果,配置了Intel芯片的Mac则得到了少量优化。但这只是2020版的测试结果,在2019版上,配置了Intel芯片的Mac得到了大幅加速。

配置了Intel芯片和M1的13英寸MacBook Pro的加速训练效果,数字越小表明训练时间越短(second/batch)。

测试结果表明,MobileNetV3在新配置(M1)的训练时间仅为1秒,相对而言,如果是配置Intel芯片和旧版TensorFlow,则需要2秒。

此外,在配置Intel芯片和新版TensorFlow的2019 Mac Pro上训练风格迁移算法可以在大约2秒钟内完成,而在旧版TensorFlow版本上则需要6秒。

配置了Intel芯片的2019 Mac Pro的加速训练效果,数字越小表明训练时间越短。

苹果和谷歌表示,用户无需更改现有的TensorFlow脚本即可将ML Compute用作TensorFlow的后端。在不久的将来,两家公司计划将TensorFlow 2.4的forked版本集成到TensorFlow master分支中,使用户更容易获得更新。

2、背景介绍 2020年的TensorFlow

今天恰好也是谷歌开发者大会的TensorFlow主题日,一起来回顾一下今年的TensorFlow都有哪些新进展吧。

如今,TensorFlow已经被部署到丰富的应用场景中。比如蔚来汽车的车载人工智能NOMI背后就使用了TensorFlow来训练模型,并用TensorFlow Lite来部署人机对话等AI系统;网易伏羲实验室使用TensorFlow实现分布式训练,结合实际游戏工业场景,开发了用于线上游戏的强化学习AI,并上线到了《逆水寒》,其中最高难度AI对战人类玩家的胜率可达到90%。

今年以来,TensorFlow依然发展迅猛,下载次数超过1.37亿,教程和指南观看次数超过4500万,博客文章阅读次数和在YouTube上的观看次数分别超过了800万和830万。

在3月份的TensorFlow开发者峰会上,谷歌宣布了TensorFlow2.2的新功能,此次版本更新强调了性能的重要性,与TensorFlow生态系统其余部分的兼容性,以及在核心库中的稳定性。

在峰会中,谷歌还发布了性能剖析器,从而提供了模型性能概览和更易用的调试指南。他们还更新了数十个附加组件和扩展程序,如今大多数的库都已经支持TensorFlow2.x。另外还有一些实验性质的新库,比如可以帮助研究人员探索和构建混合量子和经典机器学习的TF Quantum。

针对工业界的用户,TensorFlow2.2也有一些实用的更新。TensorFlow Lite现在已经支持大量的移动端机器学习模型,如下图所示。

在TensorFlow Lite中,谷歌提供了最佳的加速器性能,并在不需要修改模型的前提下,大大缩短了模型延迟。谷歌还集成了Android Studio和支持库,从而能够便捷生成TensorFlow Lite模型的Java Classes。此外,全新的TensorFlow Lite转换器可以支持更多的模型类,Model Maker让开发人员可以微调现有的模型,而无需做复杂的机器学习操作。

在TensorFlow.js中,谷歌发布了两个新的模型,分别是FaceMesh和MobileBERT,FaceMesh可用于定位人脸关键点,并进一步开发好玩的AR应用。

此外,Hugging Face的NPM软件包适用于在Node.js中提供问答功能,新的WebAssembly则用来提升CPU性能。

7月份的开发者峰会上,谷歌发布了TensorFlow2.3,该版本使用户能更轻松地进行数据预处理,并解决输入管道瓶颈。这是通过tf.data中的两个新的API即Service和Snapshot完成的。此外,TensorFlow2.3还新增了TensorFlow Profiler功能,其可随着时间推移可视化模型内存使用情况,并且能跟踪模型中的Python函数调用,从而发现性能瓶颈。

在即将到来的TensorFlow2.4中,重点是分布式训练,这将使具有镜像策略的多工作器同步训练更加强大;而在tf.Keras中,将提供对参数服务器训练的实验支持。

TensorFlow2.4还将增加对CUDA11的支持,从而支持英伟达最新的GPU。tf.numpy则允许在numpy代码中使用TensorFlow API。


参考资料:

https://blog.tensorflow.org/2020/11/accelerating-tensorflow-performance-on-mac.html
https://machinelearning.apple.com/updates/ml-compute-training-on-mac



推荐阅读





    添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

    △长按添加极市小助手

    △长按关注极市平台,获取最新CV干货

    觉得有用麻烦给个在看啦~  
    浏览 30
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    评论
    图片
    表情
    推荐
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报