Skip to content

Latest commit

 

History

History
81 lines (66 loc) · 12.7 KB

2019-04-13.md

File metadata and controls

81 lines (66 loc) · 12.7 KB
layout
default

嵌入式AI简报 (2019-04-13)

关注模型压缩、低比特量化、移动端推理加速优化、部署
注:PC端微信链接打不开请用手机打开

业界新闻

  • TensorFlow MLIR 发布:全新的中介码与编译器框架 | TensorFlow
    摘要:TensorFlow发布 MLIR(或称为多级别中介码)。这是一种表示格式和编译器实用工具库,介于模型表示和低级编译器/执行器(二者皆可生成硬件特定代码)之间。在生产质量组件的支持下,希望能够借助 MLIR 对优化编译器设计与实现进行全新探索。MLIR 的核心是一种灵活的基础设施,适用于现代优化编译器。这意味着其中包含适用于中介码 (IR) 的规范与转换此中介码的代码工具包。(从编译器的角度来说,从高级表示到低级表示的转换过程称为 “降阶”,下文我们将使用此术语。)
    MLIR 深受 LLVM 的影响,并不折不扣地重用其许多优秀理念。MLIR 拥有灵活的类型系统,可在同一编译单元中表示、分析和转换结合多层抽象的图。这些抽象包括 TensorFlow 运算、嵌套的多面循环区域乃至 LLVM 指令和固定的硬件操作及类型。因而 MLIR 提供了 “方言”,其中包括:
    • TensorFlow IR,代表 TensorFlow 图中可能存在的一切;
    • XLA HLO IR,旨在利用 XLA 的编译功能(输出到 TPU 等);
    • 实验性仿射方言,侧重于多面表示与优化;
    • LLVM IR,与 LLVM 自我表示之间存在 1:1 映射,可使 MLIR 通过 LLVM 发出 GPU 与 CPU 代码;
    • TensorFlow Lite,将会转换以在移动平台上运行代码。
  • 这款神秘的移动端OCR引擎,如何做到“所见即所得”? | 阿里技术
    摘要:xNN-OCR是专门针对移动端本地识别研发的的高精度、高效率、轻体量文字识别引擎,目前支持场景数字、场景英文、场景汉字以及特殊符号的识别。xNN-OCR针对移动端开发和优化了一套基于深度学习的文字检测和文字行识别算法框架,结合xNN的网络压缩和加速能力,检测和识别模型可以压缩到数百K级别,在中端及以上手机CPU上达到实时(最高15FPS),可结合“扫一扫”的模式在视频流中做到所见即所得。
  • 高通发布7纳米专用AI芯片Cloud AI 100,性能碾压业界10倍 | 新智元
    摘要:年度 Qualcomm AI Day 大会上,高通发布了三款面向智能手机、平板电脑和其他移动设备的新系统芯片。此外,更重磅的是,高通还宣布了一款专为边缘计算设计的新产品:Qualcomm Cloud AI 100。将于 2020年正式推出产品,样片将在今年晚些时候推出。
    Cloud AI 100,采用7nm工艺,性能比目前业界最先进的 AI 推理解决方案高出 10 倍以上。运算速度可以 “远远超过”100 TOPs。(相比之下,骁龙 855 最快只有约 7 TOPs。)
  • 华为发布Atlas人工智能计算平台 | 华为智能计算
    摘要:4月10日,华为正式推出基于昇腾AI芯片的Atlas人工智能计算平台——即针对AI全场景的解决方案。据介绍,Atlas人工智能计算平台包括Atlas 200 AI加速模块、Atlas 300 AI加速卡、Atlas 200 DK AI开发者套件、Atlas 500智能小站四款产品。这些产品可以应用于公共安全、运营商、金融、互联网、电力等行业。
  • 「方舟编译器」加持,华为P30系列国内正式发布 | 机器之心
    摘要:华为 P30 搭载的依然是华为最新推出的麒麟 980 芯片,其采用台积电 7 纳米工艺、双 NPU 配置,集成了 69 亿颗晶体管,Cortex-A76 架构 CPU 以及 Mali-G76 架构 GPU。新一代的制程工艺不仅让芯片速度更快,而且能耗也有所降低。
    此外,「方舟编译器」是其中最引人注目的一个。它随着 EMUI 9.1 一同放出,据称能够改善安卓应用编译效率,让 APP 从原先的边解释边执行转变为全程机器码高效运行程序。如果程序本身对华为的 EMUI 和麒麟处理器进行了特别优化,显然可以获得更好性能。华为宣称,方舟编译器可让系统操作流畅度提升 24%,系统响应速度提升 44%,第三方应用重新编译后流畅度可提升 60%。随着 P30 系列发布的还有全新 EROFS 文件系统。华为称,新技术可以让手机内存的随机读取性能提升 20%。华为推出的新版 MateBook E(12 寸)笔记本采用了 8 核心、10 纳米制程的高通骁龙 850 移动计算平台。华为希望以此为基础构建更为繁荣的 ARM PC 生态。

论文

  • 旷视提出One-Shot模型搜索框架的新变体 | 极市平台
    摘要:旷视首次披露AutoML相关成果,通过构建一个简化的超网络来解决训练过程中面对的主要挑战。在ImageNet上的实验结果超过了谷歌、Facebook等AutoML技术的成绩。一步法(One-Shot)是一个强大的神经网络模型搜索(Neural Architecture Search/NAS)框架,但是它的训练相对复杂,并且很难在大型数据集(比如 ImageNet)上取得较有竞争力的结果。提出的单路径 One-Shot 模型,以解决训练过程中面对的主要挑战,其核心思想是构建一个简化的超网络——单路径超网络(Single Path Supernet),这个网络按照均匀的路径采样方法进行训练。 所有子结构(及其权重)获得充分而平等的训练。基于这个已训练的超网络,可以通过进化算法快速地搜索最优子结构。
  • 在定制硬件上实现DNN近似算法,一文概述其过去、现在与未来 | 机器之心
    摘要:在这篇综述论文中,作者旨在为刚进入该领域的研究人员提供关于 DNN 近似算法的全面基础,展示定制硬件如何比 GPP 实现更好的推理性能。具体来讲,本文的贡献如下:
    1. 通过比较不同规模 FPGA、ASIC、CPU 和 GPU 平台的 roofline 模型,来说明定制硬件更适合 DNN 近似算法。
    2. 叙述当前最佳 DNN 近似的主要趋势,详细讨论了低精度量化和权重减少方法,介绍了最近的算法发展并评估了它们的优缺点。
    3. 评估了每种方法定制硬件实现的性能,重点关注准确率、压缩、吞吐量、延迟和能效。
    4. 基于本文确定的趋势,作者提出了一些有前景的未来研究方向。
  • 旷视科技最新目标检测网络ThunderNet | yuanCruise
    摘要:ThunderNet实现了ARM平台上的第一个实时检测器和最快的单线程速度。ThunderNet使用320×320像素作为网络的输入分辨率。整体的网络结构分为两部分:Backbone部分和Detection部分。网络的骨干部分为SNet,SNet是基于ShuffleNetV2进行修改得到的。 网络的检测部分,利用了压缩的RPN网络,修改自Light-Head R-CNN网络用以提高效率。 并提出Context Enhancement Module整合局部和全局特征增强网络特征表达能力。 并提出Spatial Attention Module空间注意模块,引入来自RPN的前后景信息用以优化特征分布。
  • Efficient GPU NVRAM Persistence with Helper Warps
    摘要:创新奇智提出基于NVRAM TPS的Helper Warp方法,通过在 GPU 上使用 NVRAM 存储的有效并且易于使用的事务处理系统,在特定应用场景下,让 GPU 性能获得了 4~5 倍的提升。这篇论文也被 2019 年第 56 届设计自动化大会接收。ACM / IEEE Design Automation Conference,简称 DAC,是电子设计自动化和嵌入式系统领域的顶级会议。作者主要工作:
    1. 提出了在 GPU 上使用 NVRAM 存储的有效并且易于使用的事务处理系统;
    2. 提出使用 Helper Warp,利用 GPU 的闲置计算资源来缓解写入带宽的限制;
    3. 建立了一种在不同的程序下能够自适应地启用 Helper Warp(辅助调度单位)达到最佳性能的机制。

开源项目

博文

  • 写一个基于NEON指令的矩阵乘法(一) | 伦啊伦 简书
    摘要:本文第一部分将讲解如何在计算机上实现通用的矩阵乘法(General matrix multiply, GEMM),第二部分讲解神经网络加速包NNPACK基于NEON指令实现的矩阵乘法。
  • ARM底层汇编优化之NEON优化 - 概述(基础入门 ) | 章小龙 知乎
    摘要:介绍了一系列官方的必看Neon优化材料,并对Neon汇编优化进行了入门。
  • 记一次代码优化(C++) | 伦啊伦 简书
    摘要:作者将以图形学上的算法由原本O^2复杂度优化到80%以上的流程记录,主要技巧:减少函数调用,并避免边界检查,运算并行化(SIMD),数据复用。
  • 从猫蛇之战看内核戏CPU | 格蠹老雷 格友
    摘要:调试器是如何访问不能访问的内存的?调试器在访问内存时,会使用特殊的probe函数来访问,访问之前会禁止页错误。但是很多问题还没有说透,比如:
    Q1. 这样禁止了后,访问非法内存时,CPU硬件真的不报异常了么?
    Q2. 如果要读很长一段内存,那么probe函数会访问一次发现不行就停了,还是像猫与蛇战那样连续作战呢?
    Q3. probe函数发现不能访问时,会返回一个名为EFAULT的错误码(-14),它是怎么知道访问失败的呢?
  • 从上到下的系统架构分析方法 - Intel PMU | 内核月谈
    摘要:现代 CPU 大多具有性能监控单元(Performance Monitoring Unit, PMU),用于统计系统中发生的特定硬件事件,例如缓存未命中(Cache Miss)或者分支预测错误(Branch Misprediction)等。同时,多个事件可以结合计算出一些高级指标,例如每指令周期数(CPI),缓存命中率等。一个特定的微体系架构可以通过 PMU 提供数百个事件。对于发现和解决特定的性能问题,我们很难从这数百个事件中挑选出那些真正有用的事件。 这需要我们深入了解微体系架构的设计和 PMU 规范,才能从原始事件数据中获取有用的信息。自顶向下的微体系架构分析方法(Top-Down Microarchitecture Analysis Method, TMAM)可以在乱序执行的内核中识别性能瓶颈,其通用的分层框架和技术可以应用于许多乱序执行的微体系架构。TMAM 是基于事件的度量标准的分层组织,用于确定应用程序中的主要性能瓶颈,显示运行应用程序时 CPU 流水线的使用情况。本文将会在Linux平台上以数组求和实例的测试分析为案例进行。
  • 专用处理器设计 | 唐杉 StarryHeavensAbove
    摘要:作者从什么是专用处理器、指令集设计到微架构等方面介绍了专用处理器的特点类似一篇综述。

最近看到一篇文章名为:请收下10年嵌入式工程师总结的Bug调试经验!,最后有三点总结:

  1. 不要去做技术上的高手,除非你的目标如此;
  2. 提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面;
  3. 在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己。