派大星 · 2020年03月02日

嵌入式AI简报 (2020-03-02)

导读:本次内容20条。「业界新闻」Face++即将开源自己的深度学习框架,国产5G SoC新星虎贲T7520都值得关注,两家国外AI芯片边缘端创业公司,多多少少都与Cortex-M系列有关。压缩剪枝相关的「论文」有两篇,其中一篇采取无训练的剪枝非常有创意,还有篇「博文」讲的压缩实战很有意思,「博文」部分的《春秋到战国—论Nervana的倒掉》写的非常精彩,《使用自动代码生成技术TVM优化深度学习算子的一些思考》作者也结合自身经历写了一些体会!

最近,寒武纪计划A股上市、旷视港股IPO失效(上市进程仍在正常推进中,正在更新材料)。疫情这边,上个月说到安防系「最热」AI测温产业,这次,作为国产CPU的代表,龙芯也在捐款200万后,再捐赠20台基于龙芯CPU的医疗自助终端抗击疫情,希望疫情尽快结束,不会有世界范围的爆发。

微信公众号:NeuroMem
Editor: https://github.com/ysh329
Project: https://github.com/ysh329/awesome-embedded-ai

业界新闻

摘要:来自旷视 Brain++的 核心深度学习框架即将于 3 月底开源。旷视将通过开源和开放的形式将其强大的算力、各类 SOTA 模型和框架资源赋能给所有开发者和高校师生使用。根据旷视内部研发人员介绍,MegEngine 的架构先进且支持训练推理一体化,开发者可以利用最新的技术、最合理的 API、最好用的展现方式实现自己的构想,在性能、易用性等方面都有独到的特点。
在运算速度上,旷视 MegEngine 具备高性能计算核心,动态静态结合的内存优化机制运算速度更快,且占用更少的内存资源;其次在易用性上,MegEngine 封装了平台细节,且接口兼容 PyTorch,新人用户可快速上手;最后,MegEngine 还支持多种硬件平台和异构计算,整个框架既可用于训练又同时支持推理,实现模型一次训练,多设备部署,能够免除了不必要的转换流程导致的性能下降和精度损失。
除以上性能,MegEngine 据称也为 IoT 和视觉任务进行了特别的优化,广泛支持各种芯片。通过领先的量化计算支持,其可以通过统一量化模型来支持多种设备,同时支持低于 8bit 的网络推理。

摘要:@袁进辉:如果说tensorflow 是主打lazy, 偏functional 的思想,但实现的臃肿面目可憎;pytorch 则主打eager, 偏imperative 编程,但内核简单,可视为支持gpu的numpy, 加上一个autograd。JAX 像是这俩框架的混合体,取了tensorflow的functional和PyTorch的精简,即支持gpu的 numpy, 具有autograd功能,非常追求函数式编程的思想,强调无状态,immutable,加上JIT修饰符后就是lazy,可以使用xla对计算流程进行静态分析和优化。当然JAX不带jit也可像pytorch那种命令式编程和eager执行。JAX有可能和PyTorch竞争。

摘要:去年7月,高通正式发布骁龙855 Plus SoC,作为骁龙855的升级版,用于下半年的旗舰手机。
日前,据博主@数码闲聊站消息,骁龙865 Plus版本确定,暂定今年Q3上市,大概过两个月会有工程机参数。
他还透露,小米下半年将采用这颗升级版的旗舰SoC。
按照此前的升级可以猜测,骁龙865 Plus预计是以骁龙865做出升级,其中CPU频率或会提升至2.96GHz(骁龙865为2.84GHz),GPU也会有所提升。

摘要:紫光展锐推出了旗下首款5G SoC——虎贲T7520,采用了和麒麟990 5G一样的SoC单芯片设计,在一颗芯片内整合了包括CPU、GPU、ISP、NPU和基带等单元。
和我们熟悉的其他5G SoC相比,虽不能指望虎贲T7520一上来就能跟骁龙865、麒麟990、Exyno 990和天玑1000这种定位顶级的前辈比拼,它的实际定位属于中端偏主流,也就是和骁龙765、Exyno 980、天玑800等5G SoC掰一掰手腕。
虽然工艺最先进,但虎贲T7520的架构就稍显落伍了。它的CPU架构选用了ARM在2018年主推的Cortex-A76,由4颗Cortex-A76+4颗Cortex-A55构成,但主频未公布。虎贲T7520的GPU架构选用的是4个计算核心的Mali-G57MP4,这是ARM在2019年10月底最新发布的GPU IP,它虽然隶属Mali-G5系,但却采用了和最新Mali-G77相同的Valhall架构。

摘要:AI芯片初创公司Eta Compute推出首款量产的边缘AI芯片ECM3532,以仅100µW的功率可实现物联网中的在线图像处理和传感器应用,号称能效是其竞品的100-1000倍。
ECM3532为双核(Arm Cortex-M3和NXP CoolFlux DSP)SoC,可支持用于电池供电或能源采集设计的微瓦级传感器融合应用。超低功耗的一个关键因素是混合多核架构,基于Arm Cortex-M3 MCU内核和NXP CoolFlex DSP内核的组合。它们可以在不同的电压和频率下运行,以最大程度地减少能耗。工作负载可通过软件在内核之间分配。此外,也针对性地对特定应用的神经网络优化,相比标准TensorFlow框架的设计,它可将电源效率提高一个数量级。ECM3532的样品现已上市,预计将于2020年第二季度开始量产。

摘要:xcore.ai芯片配有400Gb/s带宽的1MB内存、16个逻辑内核,支持标量、浮点和矢量指令运算,多达128个低延迟、可互连的软件可编程I/O引脚、集成式USB 2.0 PHY和MIPI接口,可用于摄像机、ToF传感器、雷达芯片之间的跨设备数据收集和处理。另外,xcore.ai还具有用于加密功能的高性能指令集。
xcore.ai可用C语言编程,配有机器学习库,支持FreeRTOS(FreeRTOS是已被移植到35个微控制器平台上的嵌入式设备实时操作系统)。
xcore.ai拥有一个TensorFlow转换器,并针对低功耗设备进行了优化,可实现AI模型的原型设计、部署。
XMOS声称,与Arm用于低成本、高能效微控制器的32位RISC处理器内核相比,xcore.ai的整体AI性能提高了32倍,I/O处理性能提高了16倍,信号处理性能提高了15倍。

论文

文章:https://arxiv.org/abs/1911.11907
代码:https://github.com/huawei-noah/ghostnet
摘要:本篇仍旧是针对嵌入式设备的小网络。一般来说,CNNs中特征图的冗余性是保证精度的关键,但网络冗余性却鲜有研究。作者提出通过减少诸如CNNs中的卷积核数量等来减少所需的资源需求。说通俗点,就是某一层featuremap的某个个通道可以通过对另一个通道的特征图做简单变换,来近似得到。这些相似的特征映射对,就类似彼此的虚像,作者用Ghost表示,十分形象。
作者引入的Ghost模块,旨在通过更少的参数生成更多更丰富的特征。具体来说,Ghost模块将传统的卷积层划分为两部分。第一部分:数量会受到严格的限制的常规卷积,将第一部分得到的特征图作为固有卷积,应用一系列的线性变换生成更多特征图。在不改变输出特征图尺寸的情况下,与普通卷积神经网络相比,Ghost模块的参数总需求和计算复杂度都有所降低。GhostNet就是在Ghost模块的基础上建立的。
作者首先在基准神经架构中替换原有的卷积层来证明Ghost模块的有效性,然后在多个数据集上验证GhostNets的性能。实验结果表明,所提出的Ghost模块在保持相似的识别性能的同时,能够有效降低计算成本,并且GhostNets精度超越目前最先进的MobileNetV3,适用于移动计算。

地址:https://arxiv.org/pdf/1812.06127.pdf
摘要:在这篇文章中,作者提出了 FedProx--一个解决联邦学习固有的系统和统计异质性问题的优化框架。FedProx 允许在设备之间局部地执行可变量的工作,并且依赖一个修正项来确保方法的稳定性。作者对一组联邦数据集的实证评估验证了其理论分析,并证明了 FedProx 框架可以显著改善现实异质网络中联邦学习的收敛行为。

标题:Dynamic Network Pruning with Interpretable Layerwise Channel Selection
摘要:动态剪枝网络可以通过根据不同的输入动态决定推理路径,实现实时线上加速目的。作者提出通过显示建模离散权重通道决策来实现动态剪枝算法。具体来说,针对每一计算层(如CNN的卷积层),附属一个决策单元,用以输出对应于一组有限通道选择掩码的概率分布。该分布决定了哪一组通道选择掩码用了提取权重,进行实际上的运算过程。在实验中我们发现该方法可以提供明确且可理解的动态模型决策过程。针对不同输入,模型各层决策单元产生的决策特征与输入类别语义高度相关。
同时还发现正常样本和对抗样本在动态网络中有着明显不同的决策路径。基于此也提出一种高效的对抗样本检测方法。实验表明动态剪枝网络不仅可以减少模型实时计算量,提高模型预测准确性,还可以有效防御对抗样本攻击,构建更为鲁棒的模型。

标题:Pruning from Scratch
摘要:我在这里改了下标题,原文标题有点问题,一般来说,网络剪枝的传统方法遵循固定流程:先训练冗余的大网络,之后用各种剪枝策略将次要权重通道删除,最后再微调提升性能。
作者研究发现,无需利用预训练及冗余参数即可得到有效的压缩网络结构,完全可从随机初始化权重即可得到剪枝结构。而且,直接从随机初始化权重即可以剪枝得到更多样且最终性能更好的剪枝结构

标题:Long Short-Term Sample Distillation
摘要:作者提出了Long Short-Term Sample Distillation(LSTSD)方法来从两方面提升深度神经网络的效果。
一方面,LSTSD将历史训练过程的信息分为两部分:长期信号和短期信号。长期信号来自于n(n>1)训练周期之前,并在较长的一段时间内保持稳定,从而保证学生模型和老师模型之间的差异性。短期信号来自于上一个训练周期,并在每个周期都更新为最新的信息,从而保证老师模型的质量。另一方面,每一个样本的老师信号都来自于不同的历史训练时刻,因此在训练的每个时刻,模型都是同时向多个历史时刻的模型学习,集百家之所长,从而得到更好的训练效果。
作者在NLP和CV上多个任务上的实验结果,表面了LSTSD的有效性。

开源项目

项目:https://github.com/nihui/srmd-ncnn-vulkan
摘要:ncnn成功移植SRMD超分网络,现已打包成一个通用图片超分辨率工具。提供源码以及Windows 版 exe 下载,适用于 intel/amd/nvidia GPU。

项目:https://github.com/andreasfertig/cppinsights
摘要:C++ Insights is a clang-based tool which does a source to source transformation. Its goal is it to make things visible which normally, and intentionally, happen behind the scenes. It's about the magic the compiler does for us to make things work.

项目:https://github.com/ARMmbed/mb...
摘要:Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices. Mbed OS provides a platform that includes:

  1. Security foundations.
  2. Cloud management services.
  3. Drivers for sensors, I/O devices and connectivity.

项目:https://github.com/jwfromm/Riptide
摘要:Riptide is a collection of functions, scripts, and tools that enable ultra low-bitwidth neural networks to be easily trained and deployed at high speeds.
Riptide is built on top of Tensorflow for training and TVM for deployment. Riptide models uses a novel operator called Fused Glue to replace all floating point operations inside of a binary neural network. By combining Fused Glue layers with other optimizations such as Bitpack Fusion, Riptide is able to generate models that run 4-12X faster than floating point equivalents on the Raspberry Pi. For full implementation details see our paper, which was presented at MLSys 2020.

博文

摘要:作者复盘了Intel收购并关停Nervana的始末和收购Habana事件,或许会成为AI芯片历史上重要事件的思考,作为case study供大家参考。最后也写下Nervana带来的启示:
Habana不是一个完美的例子,以色列团队传统也是硬件强,软件偏弱,但人家毕竟在没有把产品卖出去的情况下先把自己卖了,从思路到执行力还是值得好好研究的。
Nervana的倒掉,在作者看来,标志着AI芯片的竞争即将从从春秋进入战国阶段。虽然皮衣教主还有着绝对的统治力,但无可否认越来越多资金雄厚的玩家会更加重视这个市场,面对几百亿美元的大市场,资金、技术、产品能力还有眼光缺一不可。

摘要:去年年底OPENAI LAB的视频课程活动,从介绍自家的推理引擎Tengine开始,包括不限于Winograd计算流程理解、Winograd算法为什么能加速卷积计算、Tengine的Winograd加速效果等。

摘要:本文是作者的压缩论文实践小总结,作者研究重点在结构性剪枝,并选取了比较简单的layer dropout来实践验证其有效性。参考论文:Reducing Transformer Depth on Demand with Structured Dropout
layer dropout 属于结构化剪枝方法的范畴。非结构化剪枝包含目前比较经典的weight pruning,即通过对部分权重进行mask计算,间接得对权重进行剪枝。非结构化剪枝会改变模型原有的结构,在某些情况下反而会降低模型的计算效率。因此与此相对的,结构化剪枝正在逐渐被人们关注,结构化剪枝专注于对于相关的结构进行整体的剪枝,以确保最大限度保留模型原有的架构。

摘要:海思35xx系列芯片对比起nvidia TX2、Intel Movidius神经计算棒等一众边缘计算产品,有其惊艳的地方,因其集成了强大的算力模块,集成度和功能模块齐全,最重要的是成本低,成为了安防行业的首选芯片。作者使用海思NNIE,进行Mobilefacenet量化部署,本篇文章记录了这一完整流程。

摘要:作者首先说明什么是算子优化,后以mmdetection里的delta2bbox函数为例,说明算子手动优化和深度学习框架的实现相比,为什么能够获得加速。最后结合个人的经验。以GPU平台为例,谈一些算子优化的体会。1)op融合;2)借助高效的计算库;3)自动代码生成和auto-tuning;4)手动实现。



往期回顾


本作品采用知识共享署名-相同方式共享 4.0 通用许可协议进行许可。
欢迎关注公众号,关注模型压缩、低比特量化、移动端推理加速优化、部署。
嵌入式AI.jpg
推荐阅读
关注数
16328
内容数
1218
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息