嵌入式AI简报 (2020-06-17)

关注模型压缩、低比特量化、移动端推理加速优化、部署

导读:本次18条。「新闻」ARM中国剧情不停反转,ARM正式断供华为,高通6月17日上午新品发布,AMD移动处理器X1+A78及GPU性能惊人;「论文」中两篇TransFormer压缩的文章分别出自MIT Han Song团队和微软团队,ICLR2020满分文章解读梯度裁剪为何能加速模型训练,针对轻量网络的动态卷积方法,及精度不输EfficientNet的FBNetV3;「开源」腾讯优图开源端侧CPU和GPU性能精心调优的深度学习推理框架TNN,Uber开源Server端深度学习推理引擎Neuropod;「博文」两篇讨论发展架构的文章:从A78浅谈ARM架构发展、Arm Mali GPU四大架构概述,嵌入式AI推理框架Tengine从架构到部署定制算子全解析,从A100 GPU浅谈细粒度结构化稀疏方法,最后是一篇关于X86 Intel CPU上做算法优化的步骤讲解与分析(从逻辑到SSE到AVX)。

注:个别链接打不开,请点击文末阅读原文跳转

业界新闻

  • ARM正式断供华为 | 半导体行业联盟
    摘要:ARM与华为的合作关系正式终止。虽后者已获ARMv8指令集授权,后续也可基于该指令集研发新一代的手机处理器,但对ARM未来新推出的CPU内核IP等新指令集架构授权,包括新Mali系列GPU和多媒体IP授权也无法获得。
  • AMD搅局移动处理器:Cortex-X1+A78,规格数据惊人 | EETOP
    摘要:AMD 将有望发布一款全新的移动 SoC 芯片:AMD Ryzen C7。
    曝光信息显示,这款芯片将配备两个基于3.0Ghz Cortex-X1 的 Gaugin_Pro mobile 内核、两个基于2.6Ghz Cortex-A78 的 Gaugin_Mobile 内核、四个2.0Ghz Cortex-A55 内核、AMD Radeon RDNA 2 移动 GPU以及联发科 5G UltraSave 调制解调器。曝光信息还透露 Ryzen C7 将与联发科携手合作,引入最新的 MTK 5G 基带。
    AMD Radeon RDNA 2 移动 GPU包括 4 个 CU,最高 700 Mhz,支持光线跟踪、可变速率着色技术、2K × 144 Hz 显示技术以及 HDR10 + 技术,综合性能超骁龙865的 Adreno 650 约 45% 左右。
  • 高通新品发布会官宣 | 安兔兔
    摘要:6月12日下午,高通宣布将于6月17日上午10点召开线上新品发布会。
    在邀请函中,高通表示“5G商用第二年,5G网络建设和中端产业取得的成绩有目共睹。5G不仅快速地走进了消费者的生活,也开始为各行各业赋能产生重要影响,带来全新的机遇。”
    由此来看,本次发布会的主角可能和5G有关,但具体有待官方揭晓答案。从时间点来推测的话,高通本次发布的应该并不会是旗舰级平台,很有可能是此前传闻中的骁龙600系列5G平台,面向中端,有望进一步拉低5G手机的售价。
  • 如何看待 ARM 中国上演「抢公章」, CEO吴雄昂被免职后公司马上申明罢免无效 | 知乎
    摘要:安谋中国(Arm China)和安谋公司(Arm Limited)围绕吴雄昂先生的“争论”引起了行业人士的高度关注。近日,安谋中国各部门高管共同署名发布了《星辰山海不负韶华 凝芯聚力砥砺前行》的联名信,在联名信中高管团队表示,作为公司管理团队,绝大部分都是与Allen(Allen Wu,吴雄昂英文名)共事十年以上、彼此深入了解的同事,他们对于近期媒体报道中对Allen的莫须有的指控感到非常震惊和气愤。

论文

  • [ICLR2020] MIT韩松等人提出新型Lite Transformer:模型压缩95% | 机器之心
    标题:Lite Transformer with Long-Short Range Attention
    链接:https://arxiv.org/abs/2004.11886v1
    摘要:MIT 与上海交大的研究人员提出了一种高效的移动端 NLP 架构 Lite Transformer,向在边缘设备上部署移动级 NLP 应用迈进了一大步。该论文已被人工智能顶会 ICLR 2020 收录。
    其核心是长短距离注意力(Long-Short Range Attention,LSRA),该架构分别捕获局部和全局上下文。其中一组注意力头(通过卷积)负责局部上下文建模,而另一组则(依靠注意力)执行长距离关系建模。最后为了进一步减少计算量,普通卷积被替换为由线性层和深度卷积。
    在资源有限的情况下(500M/100M MACs),Lite Transformer 在 WMT’14 英法数据集上的 BLEU 值比分别比 transformer 高 1.2/1.7。Lite Transformer 比 transformer base 模型的计算量减少了 60%,而 BLEU 分数却只降低了 0.3。结合剪枝和量化技术,研究者进一步将 Lite Transformer 模型的大小压缩到原来的 5%。
  • 预训练语言模型 Transformer 通用压缩方法MiniLM助你模型小快好 | 微软研究院AI头条
    标题:MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers
    链接:https://arxiv.org/abs/2002.10957
    摘要:本文介绍了基于 Transformer 预训练语言模型的通用压缩方法:深度自注意力知识蒸馏(Deep Self-Attention Distillation),深度迁移“老师”模型最后一层自注意力知识。
    该压缩方法核心思想是迁移大模型自注意力知识,以让小模型自注意力模块的行为和大模型尽可能相似。但只迁移大模型最后一层的自注意力知识。因为若每一层都做知识迁移,那就需手动设计大小模型间的层对应关系来完成迁移。相较而言,只迁移最后一层知识简单有效,训练速度更快,而且不需要手动设计大小模型的层对应关系。
    深度自注意力知识蒸馏的方法,主要由两种知识迁移构成,第一种就是自注意力得分/分布迁移(Self-Attention Distribution Transfer),主要迁移自注意力得分/分布知识(Attention Scores/Distributions)。自注意力得分矩阵由Queries 和 Keys 通过点积操作得到,矩阵中每个值表示两个词的依赖关系。自注意力得分矩阵是自注意力模块中至关重要的知识,通过相对熵(KL-Divergence)来计算大模型和小模型自注意力得分矩阵的差异。
    该压缩方法简单有效,由不同预训练大模型压缩得到的英文和多语言 MiniLM 预训练模型更小更快,在自然语言理解和生成任务上均取得了出色的结果。
  • [ICLR2020满分] 为什么梯度裁剪能加速模型训练 | 夕小瑶的卖萌屋
    标题:Why gradient clipping accelerates training: A theoretical justification for adaptivity
    链接:https://arxiv.org/abs/1905.11881
    摘要:本文简要介绍了ICLR2020的一篇分析梯度裁剪的满分论文,分析了为什么梯度裁剪能加速深度学习的训练过程。主要思路是引入了更宽松普适的假设条件,在新的条件下能体现出了梯度裁剪的必要性,并且由于放松了传统的约束,理论结果的适用范围更广,也表明了梯度裁剪确实是很多场景下都适用的技巧之一。
  • [CVPR2020] 动态卷积:自适应调整卷积参数,显著提升模型表达能力 | 微软研究院AI头条
    标题:Dynamic Convolution: Attention over Convolution Kernels
    链接:https://arxiv.org/abs/1912.03458
    摘要:为了让轻量网络保持低计算量的同时不失去表达能力。微软 AI 认知服务团队提出了动态卷积。
    相比传统静态卷积(每层单个卷积核),根据注意力动态叠加多个卷积核的动态卷积方法,会根据输入动态地调整每个卷积核的权重,从而生成自适应的动态卷积。由于注意力是输入的函数,动态卷积不再是一个线性函数。通过注意力以非线性方式叠加卷积核具有更强的表示能力。
    动态网络引入了两部分额外计算:注意力模型和卷积核的叠加。注意力模型计算复杂度很低,由 avg pool 和两层全卷积组成。得益于小的内核尺寸,叠加多个卷积核在计算上也非常高效。因此,动态卷积引入的额外计算是非常少的。少量的额外计算与显著的表达能力的提升使得动态卷积非常适合轻量级的神经网络。
  • Facebook最新力作FBNetV3来了!相比ResNeSt提速5倍,精度不输EfficientNet | 极市平台
    标题:FBNetV3: Joint Architecture-Recipe Search using Neural Acquisition Function
    链接:https://arxiv.org/abs/2006.02049
    摘要:这篇论文提到一个有趣的点:网络架构与训练策略同时进行搜索。先前的方法只注重网络架构不注重训练方法(也就是说采用常规的训练方式),但当精度达到一定程度之后,训练方式的这点影响就变得尤为重要了。
    所以Facebook的研究员从这点出发提出了FBNetV3,它将网络架构与对应的训练策略通过NAS联合搜索。在ImageNet数据集上,FBNetV3取得了媲美EfficientNet与ResNeSt性能的同时具有更低的FLOPs(1.4x and 5.0x fewer),此外该方案可跨网络、跨任务取得一致性的性能提升。除了上面架构和训练方式,参数初始化方式等等其它方式也可纳入到搜索空间呢,感兴趣的小伙伴还不快点去尝试一下。

开源项目

注:每条内容前缀为github地址的仓库拥有者和仓库名,补全地址后为github.com/<repo_owner>/<repo_name>

  • Tencent/TNN:腾讯优图开源深度学习推理框架TNN
    摘要:6月10日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架 TNN。支持主流安卓、iOS 等操作系统,适配 CPU、 GPU、NPU 硬件平台。通过 ONNX 可支持 TensorFlow、PyTorch、MXNet、Caffe 等多种训练框架。
    通过 GPU 深度调优、ARM SIMD 深入汇编指令调优、低精度计算等技术手段,TNN 在性能上取得了进一步提升。引入了 INT8、 FP16、 BFP16 等多种计算低精度的支持。通过采用 8bit 整数代替 float 进行计算和存储,使模型尺寸和内存消耗均减少至 1/4,计算性能提升 50% 以上。
    此外,TNN 还引入 arm 平台 BFP16 的支持。相比浮点模型,BFP16 使模型尺寸、内存消耗减少 50%,在中低端机上的性能提升约 20%。
  • Uber/Neuropod:Uber开源深度学习推理引擎Neuropod:支持调用TensorFlow、PyTorch等框架 | AI前线
    摘要:Neuropod 是现有深度学习框架之上的一个抽象层,它提供了一个统一的接口来运行深度学习模型。Neuropod 让研究人员可以轻松地在自己选择的框架中构建模型,同时也简化了这些模型的生产化过程。
    Neuropod 支持的框架包括:TensorFlow、PyTorch、Keras 和 TorchScript,同时也可以轻松地添加新的框架。
    通过 Neuropod,应用程序只与与框架无关的 API 进行交互,并且 Neuropod 将这些与框架无关的调用转换为对底层框架的调用,调用过程尽可能使用零拷贝操作来高效地实现。
  • NVIDIA Jetson强力工具jtop:比htop更强 | 吉浦迅科技
    摘要:这不算是开源只是一个小工具。通过jtop工具,可以查看Jetpack版本,Xavier工作模式,CPU数量,风扇状态,RAM,GPU状态频率。工具安装简单pip3 install jetson-stats,直接sudo jtop来执行就能查看各种信息,结合-h参数查看更多使用方法。
  • PantsuDango/Dango-Translator:B站UP主自制OCR翻译器,自动截屏翻字幕,还是论文阅读神器 | 量子位
    摘要:这个翻译器只需在界面上截图,论文、游戏、动画新番字幕,也能截屏翻译。OCR翻译利用了百度AI的文字识别,通过识别图片上的外文文字进翻译。不仅支持百度翻译的API还有彩云、腾讯等翻译接口。你作为用户,需要做的只是截图,然后翻译即可。
    b站演示视频:https://www.bilibili.com/video/BV1gp4y1Q7Ts

博文

  • 渐入佳境的ARM:从A78浅谈ARM架构的发展 | NeuralTalk
    摘要:作者MikeslCroom是一位十年芯片老兵,本文将对ARM的移动端新一代核心A78、X1,对其架构的发展历程做一个分析。
  • Arm Mali GPU 四大微架构概述 | NeuralTalk
    摘要:本文翻译自ARM官方的GPU Architecture页面,并结合作者的经验写就而成,简单介绍了Mali的GPU的四个架构系列(Utgard、Midgard、Bifrost、Valhall)的特点。
  • 34页PPT全解嵌入式AI框架Tengine的架构、算子定制和引擎推理 | 智东西公开课
    摘要:本文全面解析Tengine架构及推理API的组成。最后,手把手教你如何通过Tengine定制个性化算子及在CPU/GPU/NPU/DLA上的推理。主要分为以下几个部分:嵌入式AI的挑战和Tengine的解决方案、Tengine架构解析、Tengine API简介,最后是2个实践部分:定制和添加Tengine算子和在CPU/GPU/NPU/DLA上做推理的实操。
  • 从英伟达A100 GPU说起,浅谈细粒度结构化稀疏 | 机器之心
    摘要:本文要讲的是模型轻量化方法中的稀疏化等做法。以往单个权重的剪枝是随机的,导致中间很多0访存不连续,后来有了针对权重向量、单个卷积通道,整个卷积核的卷积。虽然这种结构化稀疏提升了推理速度,但是牺牲了模型精度,而原始的细粒度剪枝在推理速度上提升效果不佳。
    英伟达提出,对网络的稀疏化过程首先将权重分组,这里所举的示例以 4 个相邻的权重为一组。而后在每个权重组内限定固定个数的非零权重数目对权重进行稀疏化。在稀疏化处理后,每个权重组(同一颜色块)中都正好留下 2 个非零权重,也就是 50% 的稀疏度。
    通过这一结构约束,获得了规整的结构,而随机性被限制在了每个组内。随机性带来的问题可通过将同一组权重对应的数据完全装载到计算核心的寄存器上来解决,以避开随机访问外存的延迟。这一结构也允许对网络推理计算在组边界上做分割,从而将计算分块化以最大程度利用的加速器的多核并行计算能力。
    作者建议首先训练非稀疏网络,而后对网络进行细粒度结构化剪枝,再使用学习率重卷 (learning rate rewinding) 的方式对网络进行重训练。这里的 learning rate rewinding 就是对剪枝后的网络使用原始网络的学习率安排表进行重训练。细粒度结构化稀疏的研究应用目前还处在较初期的阶段,由于其独特的硬件友好特性相信这一设计未来会被更多的加速器采用。
  • X86 Intel CPU上的小半径中值滤波的极速优化 | GiantPandaCV
    摘要:本文以一个的中值滤波作为切入点,讨论了一下针对这个具体问题的优化思路,从算法逻辑到SSE、再到AVX等,速度也从最开始普通实现的8293.79ms优化到了9.32ms,具有一定参考意义。

注:个别链接打不开,请点击文末阅读原文跳转

往期回顾

2 0 2 0
2020-06-17 2020-06-03 2020-05-15 2020-04-26
2020-04-04 2020-03-19 2020-03-02 2020-02-16
2020-01-27 2020-01-06 2019-12-17 2019-12-02
2 0 1 9
2019-11-30 2019-11-18 2019-10-31 2019-10-17
2019-10-03 2019-09-16 2019-08-30 2019-08-15
2019-07-30 2019-07-15 2019-06-29 2019-06-17
2019-05-30 2019-05-15 2019-04-27 2019-04-13
2019-03-31

wechat_qrcode

往期回顾:见公众号主菜单【历史消息】


知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 通用许可协议进行许可。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

ALL inference Arch benchmark. 上一篇
2020-06-03@Bi-weekly 下一篇