百万个冷知识百万个冷知识

百万个冷知识
一起学习百万个冷知识

Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍(facebook的发展现状)

方红豆 丽翔 凹非寺

物理位 公司出品 | 社会公众号 QbitAI

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数学模型,大部分逻辑推理时间,都花在传递函数和全连接演算上。

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

大内核的传递函数,能分解成im2col和两个矩阵乘法。

所以,有高效的矩阵乘法,才能有高效的传递函数互联网。

于是,QNNPACK出世了。

怎样快速矩阵乘法?

矩阵乘法,A x B = C。C里头的每两个元素,都能看成A中某行B中某列

的点乘。

但间接在点乘基础上排序的话,一点也不快,会受到储存频宽的限制。

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

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

节省内存和缓存

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

低精确度的排序,有时对逻辑推理的准确性不能产生明显的影响。

而这样的演算,不需要太大储存,并节省能源,有助于把AI布署在终端端。

QNNPACK用的线性量化 (Linear Quantization) 方案,与安卓的数学模型API兼容。

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

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

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

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

赢了TensorFlow Lite

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

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

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

所以,各位也去试一下?

GitHub项目页:

https://github.com/pytorch/QNNPACK

博客原文:

https://code.fb.com/ml-applications/qnnpack/

加入社群

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

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

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

活动策划招聘

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

物理位 QbitAI · 头条号签约作者

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

未经允许不得转载:百万个冷知识 » Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍(facebook的发展现状)
分享到: 更多 (0)

百万个冷知识 带给你想要内容

联系我们