Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍

标签: geek | 发表时间:2018-12-29 00:00 | 作者:
出处:http://itindex.net/relian
方栗子 发自 凹非寺
量子位 出品 | 公众号 QbitAI

640?wx_fmt=png

Facebook发布了一个开源框架,叫 QNNPACK,是手机端神经网络计算的加速包。

官方表示,它可以 成倍提升神经网络的推理效率,几乎比 TensorFlow Lite快一倍。

这个框架,能够为很多运算加速,比如 DW卷积 (Depthwise Convolution) ,许多先进的架构里面都用得到。

目前,QNNPACK已经是 PyTorch 1.0的一部分,在Caffe2里就能直接使用。

其实,Facebook手机应用里面,已经部署了这个QNNPACK。也就是说,数以亿计的手机都在用了。

从哪个角度加速?

QNNPACK,这个名字眼熟么?

两年前,Facebook就推出过一个加速包,叫做 NNPACK,Caffe2Go用的就是它。

基于Winograd变换和傅里叶变换,有效减少卷积计算里的乘加运算 ( Multiply-Add) 。这样一来,3x3卷积可以只比1x1慢一倍,而不会慢8倍。

不过,世界变化很快。现在的计算机视觉 (CV) 神经网络里,用到的很多卷积类型, 已经沾不到NNPACK的光

比如,1x1卷积,分组卷积 (Grouped Convolution) ,Strided Convolution,扩张卷积 (Dilated Convolution) ,DW卷积 (DepthWise Convolution) ,适用于精度/存储带宽受到限制的 (移动端等) 场景。

而CV神经网络,大部分推理时间,都花在卷积和全连接运算上。

640?wx_fmt=png

这样的运算,和 矩阵乘法密切相关:

大内核的卷积,可以分解成im2col和一个矩阵乘法。

所以,有高效的矩阵乘法,才能有高效的卷积网络。

于是,QNNPACK出世了。

怎样加速矩阵乘法?

640?wx_fmt=jpeg

矩阵乘法,A x B = C。C里面的每一个元素,都可以看成 A中某行B中某列的点乘。

但直接在点乘基础上计算的话,一点也不快,会受到存储带宽的限制。

640?wx_fmt=png

如果,能同时计算 A中多行B中多列的点乘,即 MRxNR,就能给运算速度带来猛烈的提升。

不需要太多,这样细小的改变就够了。

节省内存和缓存

模型训练,可能更需要高精度。但在训练完成后, 推理部分对精度的需求可能就没有那么高了。

低精度的计算,有时对推理的 准确性不会产生明显的影响。

而这样的运算,不需要太大存储,并节省能源,有助于把AI部署在移动端。

QNNPACK用的线性量化 (Linear Quantization) 方案,与安卓的神经网络API兼容。

它假设量化值q[i]是用8比特的无符号整数 (Unsigned Integers) 来表示的,以及q[i]与真实值r[i]相关,关系如下:

640?wx_fmt=png

与其他库不同,QNNPACK把矩阵A、B都放进一级缓存 (L1 Cache) ,目标是把所有对运算过程并不非常必要的内存转换 (Memory Transformations) 都删掉。

QNNPACK可以在一次微内核调用 (Microkernel Call) 里,处理A和B。

不需要在微内核之外,累积32位的中间结果,QNNPACK把32位的中间值融合进微内核,然后写出8位值,节省了存储带宽和缓存。

赢了TensorFlow Lite

开发团队用谷歌的视觉框架MobileNetV2里面的 图像分类模型来测试。

TensorFlow Lite做对手,和 QNNPACK比了一场。

640?wx_fmt=png

结果是,QNNPACK比TensorFlow Lite几乎快一倍,不论是在高端智能机,还是普通智能机身上。

所以,各位也去试一下?

GitHub项目页:
https://github.com/pytorch/QNNPACK

博客原文:
https://code.fb.com/ml-applications/qnnpack/

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群( 自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

活动策划招聘

量子位正在招聘活动策划,将负责不同领域维度的线上线下相关活动策划、执行。欢迎聪明靠谱的小伙伴加入,并希望你能有一些活动策划或运营的相关经验。相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

640?wx_fmt=jpeg

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


相关 [facebook 开源 移动] 推荐:

Facebook 开源 Detectron

- - 最新更新 – Solidot
Facebook 在 Apache 2.0 许可证下 开源了它的目标识别平台 Detectron, 源代码托管在 GitHub 上. Detectron 用 Python 开发,基于 Caffe2 深度学习框架. Facebook 同时公开了超过 70 个预先训练的模型. Detectron 项目始于 2016 年,实现了一系列最新的目标识别算法如 Mask R-CNN,该软件平台在社交巨人的视觉感知系统的进步上扮演了重要角色.

Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍

- - IT瘾-geek
方栗子 发自 凹非寺. 量子位 出品 | 公众号 QbitAI. Facebook发布了一个开源框架,叫 QNNPACK,是手机端神经网络计算的加速包. 官方表示,它可以 成倍提升神经网络的推理效率,几乎比 TensorFlow Lite快一倍. 这个框架,能够为很多运算加速,比如 DW卷积 (Depthwise Convolution) ,许多先进的架构里面都用得到.

Facebook开源闪存数据库RocksDB

- - IT经理网
本周四Facebook宣布开源其嵌入式数据库 RocksDB(一种嵌入式Key-value存储系统),该数据库能够充分利用闪存的性能,大大提升应用服务器的速度. Facebook用RocksDB来驱动一些面向用户的应用,这些应用由于需要通过网络访问外部存储而性能低下,此外Facebook还用RocksDB来解决固态硬盘IO利用率不高相关的一些问题.

Facebook开源的真正原因

- - 外刊IT评论
在OSCON的第三天,来自Facebook的James Pearce带来了一场主题演讲,我也有幸在场. Pearce解释了Facebook为何大规模开源其软件. 他告诉我们,Facebook每个月都会发布数个开源项目,并且有数百个工程师会持续地支持这些项目——他们参与全世界的各个开源社区,改进软件的体验.

Facebook 投资人 Roger McNamee 聊移动互联网

- lingate - 爱范儿 · Beats of Bits
Roger McNamee 是一名摇滚音乐人,同时还是 Elevation 和 Facebook 的投资人. 在最近的一次亮相中,他对于移动互联网工业发表了一些自己的看法:. Google 为其自身成功所牵绊:它的搜索业务受到了 SEO 的影响(污染). Windows 无法再为企业带来可观的投资回报率,于是企业会把这部分花销用于别的产品或服务;这其中蕴含巨大的机会.

Facebook倡导HTML5 期望成为移动市场领军者‎

- - HTML5研究小组
北京时间4月9日消息,据国外媒体报道,科技博客Gigaom撰文称,Facebook将向移动领域过渡,倡导HTML5成为移动应用开发标准,HTML5平台对于Facebook的未来至关重要. 一阵风掠过这片广袤的土地,这里曾是科技公司Sun Microsystems的总部,它见证了Sun的沉浮. 如今,Facebook终于入主这片土地.

Facebook头号敌人并非谷歌:移动应用成软肋

- - GetFreeware.Net
导语:美国科技博客网站BusinessInsider今日撰文指出,社交网站巨头Facebook目前面临的最大威胁不是来自于谷歌或Twitter,而是像iPhone应用Instagram这样的移动应用创业公司. Facebook倘若不能消除在移动领域的软肋,恐怕会重蹈Friendster覆辙. Facebook面临的最大威胁不是谷歌或Twitter,而是一家鲜为人知的创业公司,这家公司能够让人们从事他们可能在Facebook想做的事情,只不过更便捷、更快速.

Opera发布移动网络状态报告 Facebook仍占主导

- - 博客园_新闻
挪威浏览器开发商 Opera 今天发布了最新一期的《移动网络状态报告》(State of the Mobile Web Report),对 Opera Mini 移动浏览器在 10 月份访问社交网站的数据进行了统计. 报告显示,在过去的 10 月份中,有1.94亿用户通过 Opera Mini 至少访问了一次社交网站,其中访问 Facebook 的用户数占到 50.6%.

Facebook网站所使用的开源软件一览表

- dylan - ITeye资讯频道
Facebook是全球首屈一指的社交网络平台,该网站采用了很多开源软件,Facebook采用的编程语言包括:Java, Ruby, PHP, Python, Objective-C. 下面是Facebook正在使用或者贡献的开源软件详细列表和介绍:. Apache Cassandra是一套开源分布式Key-Value存储系统.

红帽CEO:没有开源就没有谷歌和Facebook

- 幻幽 or A書 - cnBeta.COM
美国科技博客BusinessInsider近日对红帽CEO吉姆・怀特赫斯特(Jim Whitehurst)进行了采访,怀特赫斯特称,如今开源应用几乎无处不在,科技公司、银行和股票交易所等都是使用. 没有开源,谷歌和Facebook根本不可能继续存在.