layout |
---|
default |
关注模型压缩、低比特量化、移动端推理加速优化、部署
导读:本次18条。【新闻】ARM GPU驱动支持独立更新;高通发布为智能手表设备推出的基于1.7GHz A53和Adreno504的处理器Wear 4100,前不久也发布了6系列第一款5G SoC骁龙690;华米“黄山2号”成功流片搭载生物数据计算NPU;Facebook让手机相册中照片从2D变3D。 【论文】格灵深瞳提出比TF更友好的离线量化方式EasyQuant;不止于ARM,基于AI编译器,解决通用平台量化性能问题;为NVIDIA GPU量身定制的高效网络结构GENet。 【开源】Face++低调放出天元v0.5.0代码,支持ARM CPU及Armv8.2-a+dotprod指令集的优化;华为MindSpore发布v0.5.0版本,支持图算融合、量化训练等;ncnn发布benchmark app,方便调试和玩耍;华为noah开源AdderNet的Pytorch训练代码。 【博文】ncnn对armv8.2的架构支持设计解读、TVM在TinyML上所做的工作以及如何部署;AI芯片发展历程,值得一看;最后是一篇关于如何评价推理引擎的文章。
先是一些其他热身小新闻:
- 最近联发科向台积电追加了很多5nm的芯片订单,猜测华为可能会使用联发科的芯片;
- 骁龙875芯片组价格预计比骁龙865贵一半还多。骁龙875将采用Kryo 685 CPU,Adreno 660 GPU、Adreno 665 VPU、Adreno 1095 DPU、高通安全处理单元(SPU250)以及Spectra 580;
- TOP500超级计算机排名最新出炉。日本超算Fugaku首次搭载ARM芯片夺冠;
- Mac变“芯”落下实锤,苹果将在新版Mac上采用基于Arm架构的自研芯片。
注:个别链接打不开,请点击文末【阅读原文】跳转
- ARM宣布:GPU驱动支持独立更新 | 安兔兔
摘要:ARM声称已经为Mali GPU驱动独立更新做好了准备工作,遗憾的是官方未透露哪些GPU能获得独立更新支持。
之前简报提到,高通骁龙865、骁龙765G等芯片支持GPU驱动独立更新。此前,GPU驱动通常会跟OTA更新捆绑在一起推送。如今它可以通过应用商店,像更新软件那样获得GPU驱动更新。小米10、小米10 Pro、Redmi K30 Pro等骁龙865机型已经支持GPU驱动独立更新。 - 高通发布骁龙Wear4100系列处理器,为智能手表而生 | 安兔兔
摘要:推出的骁龙Wear 4100系列处理器,包括骁龙Wear 4100和骁龙Wear 4100 Plus两款产品,从命名上就可以看出,该处理器将主要应用于智能手表设备上。
全新的骁龙Wear 4100系列距离上一代发布已经差不多快两年的时间了,所以即使挤牙膏,高通这次挤出来的也非常多,骁龙Wear 4100从28nm工艺提升到了12nm,续航和功耗方面都有所提升,同时配备4个主频为1.7GHz的A53 CPU内核,性能相比前代将提升85%以上,在GPU上,该系列处理器配备Adreno A504,处理速度相比Wear 3100系列快2.5倍。 - 高通加大5G应用力度:发布骁龙6系手机芯片,还推出机器人和无人机5G系统 | 量子位
摘要:骁龙690是高通6系列第一款5G SoC,8nm工艺打造,采用Cortex A77架构,由2个2.0GHz A77大核+6个1.7GHz A55小核组成,GPU为Adreno619L,相比上代骁龙675,骁龙690的CPU性能提升20%,GPU性能提升60%。首款支持120Hz刷新率显示的平台,支持HDR 10+,ISP单摄最高支持1.92亿像素,首次支持4K HDR(10-bit)视频拍摄,相比SDR有着更好的拍摄效果。
AI方面,骁龙690是高通6系首款支持Qualcomm Hexagon张量加速器(HTA)、第五代AI Engine的移动平台,AI性能相比上代提升70%以上,并且AI性能的提升也让声音识别更精准。
骁龙690的商用终端预计将于2020年下半年面市。
此外,高通推出了一个可用于机器人和无人机的5G系统——RB5。集硬件、软件和开放工具于一体的平台套件,硬件使用基于骁龙865的Kryo 585 CPU和Adreno 650 GPU的QRB5615处理器。软件则带有用于神经处理、机器视觉、定位、特征识别和障碍物检测的SDK。 - 华米“黄山2号”成功流片搭载生物数据计算RISC-V NPU,戴在手腕上的 NPU | 量子位
摘要:华米承袭“黄山1号”,“黄山2号” 在RISC-V架构,进一步设计了AI本地生物数据计算NPU。采用卷积网络加速技术,提升计算性能加快识别。
一方面,效率,健康监测中重要的心率数据,“黄山2号”将房颤识别速度较上一代提升了7倍,是市⾯上其它算法的26倍。另一方面,功耗,加入了C2协处理器之后,“黄山2号”即使在主芯片关闭状态,C2协处理器仍然可24小时处理数据使功耗下降50%,实现24小时健康监测。目前也在持续发力五大AI引擎:心率、血氧、睡眠、运动全能落地,以及将华米科技人工智能实验室正式升级为人工智能研究院。 - Facebook让手机2D照片秒变3D | 新智元
摘要:Facebook团队为其增加了一种算法,可以自动为输入的2D图像深度估计,改良后的技术能直接应用于任何移动设备,不限于Facebook App,且无需是双镜头摄像头拍摄的图片。有了3D图像,让照片更具生命力和真实感。现在,Facebook研究小组正在研究机器学习方法,这种方法能够对移动设备拍摄的视频进行有效深度估计,未来将适用于视频的2D转换3D。
- [2006.16669] 低比特离线量化EasyQuant: 比TensorFlow更友好的离线量化方式 | NeuralTalk
标题:EasyQuant: Pose-training Quantization via Scale Optimization
代码:https://github.com/deepglint/EasyQuant
论文:https://arxiv.org/abs/2006.16669
摘要:格灵深瞳DeepGlint最近开源量化算法EasyQuant。该方法通过精细搜索每层量化参数 Scale 值来实现量化精度的提升。我们的实验表明,即使是在 Int7 或更低比特的量化条件下,也能达到接近 Int8 和 Float32 的性能。基于当前 arm NEON 指令集,更低的 Int7 量化,也会带来更快的推理速度,且更容易减少溢出问题的产生。
EasyQuant 需要的样本量极低,在用 KLD 方法得到初始量化值后,一般只需要 50 张左右的典型样本就可以完成整个量化调优过程。
由于这是一个非训练量化(Post Training Quantization)的方法,所以它也是一个任务无关的方法,不需要考虑各种各样任务相关的 Loss 函数和数据 Label,相对于其它需要搭建完整的训练流程才能达到量化目标的方法来说,EeayQuant 体现出了应用上简单友好的特点。 - [2006.10226v1] Efficient Execution of Quantized Deep Learning Models: A Compiler Approach
论文:https://arxiv.org/abs/2006.10226v1
摘要:Although deep learning frameworks such as TensorFlow, TFLite, MXNet, and PyTorch enable developers to quantize models with only a small drop in accuracy, they are not well suited to execute quantized models on a variety of hardware platforms. For example, TFLite is optimized to run inference on ARM CPU edge devices but it does not have efficient support for Intel CPUs and Nvidia GPUs.
In this paper, we address the challenges of executing quantized deep learning models on diverse hardware platforms by proposing an augmented compiler approach. A deep learning compiler such as Apache TVM can enable the efficient execution of model from various frameworks on various targets. Many deep learning compilers today, however, are designed primarily for fp32 computation and cannot optimize a pre-quantized INT8 model.
To address this issue, we created a new dialect called Quantized Neural Network (QNN) that extends the compiler's internal representation with a quantization context. With this quantization context, the compiler can generate efficient code for pre-quantized models on various hardware platforms. As implemented in Apache TVM, we observe that the QNN-augmented deep learning compiler achieves speedups of 2.35x, 2.15x, 1.35x and 1.40x on Intel Xeon Cascade Lake CPUs, Nvidia TeslaT4 GPUs, ARM Raspberry Pi3 and Pi4 respectively against well optimized fp32 execution, and comparable performance to the state-of-the-art framework-specific solutions. - [2006.14090v1] Neural Architecture Design for NVIDIA GPU-Efficient Networks
论文:https://arxiv.org/abs/2006.14090v1
摘要:Many mission-critical systems are based on NVIDIA GPU for inference. It requires not only high recognition accuracy but also low latency in responding time. Although many studies are devoted to optimizing the structure of deep models for efficient inference, most of them do not leverage the architecture of \textbf{modern GPU} for fast inference, leading to suboptimal performance.
To address this issue, we propose a general principle for designing GPU-efficient networks based on extensive empirical studies. This design principle enables us to search for GPU-efficient network structures effectively by a simple and lightweight method as opposed to most Neural Architecture Search (NAS) methods that are complicated and computationally expensive.
Based on the proposed framework, we design a family of GPU-Efficient Networks, or GENets in short. We did extensive evaluations on multiple GPU platforms and inference engines. While achieving ≥81.3% top-1 accuracy on ImageNet, GENet is up to 6.4 times faster than EfficienNet on GPU. It also outperforms most state-of-the-art models that are more efficient than EfficientNet in high precision regimes. Our source code and pre-trained models will be released soon. - [1801.06434] EffNet: 继MobileNet和ShuffleNet之后的高效网络结构 | GiantPandaCV
标题:EffNet: AN EFFICIENT STRUCTURE FOR CONVOLUTIONAL NEURAL NETWORKS
代码:https://github.com/andrijdavid/EffNet
论文:https://arxiv.org/abs/1801.06434
摘要:EffNet是在MobileNetV1,V2和ShuffleNetV1之后提出来的改进模型,指出了MobileNet和ShuffleNet的不足,由于基本的block和stride等超参数会对信息造成一定的损失,这种损失对于小型的网络尤其突出。EffNet提出就是为了解决以上问题,对shallow和narrow情况下的网络效果更好。EffNet主要有两个贡献:- 提出了EffNet Block,将深度可分离3x3卷积改进为1x3和3x1的空间可分离卷积,在两者之间添加一维maxpooling;
- ShuffleNet和MobileNet都选择避免处理第一层,并认为第一层的计算代价已经很低。但是EffNet认为每个优化都非常重要,如果优化了除了第一层以外的其它层,那么第一层的计算量相比之下就会比较大。实验证明使用EffNet块替换第一层能够节省30%的计算量。
注:每条内容前缀为github地址的仓库拥有者和仓库名,补全地址后为
github.com/<repo_owner>/<repo_name>
。
- MegEngine/MegEngine:Face++天元(MegEngine) v0.5.0版本发布,ARM支持NCHW4的layout以及armv8.2-a
链接:https://github.com/MegEngine/MegEngine
摘要:早在5月13日,天元(MegEngine)便支持ARM的交叉编译,并增加NCHW44的layout。最近v0.5.0版本发布,更是在CPU(X86,ARM)上增加NCHW4 layout 计算方式的支持,优化已有float的计算,此外针对Armv8.2-a+dotprod指令集增加 nchw44-dot layout的优化支持。 - nihui/ncnn-android-benchmark: 如何才能更方便的测试 ncnn 跑模型的速度 | 知乎
链接:https://github.com/nihui/ncnn-android-benchmark/releases
摘要:adb shell 跑命令行 benchncnn 还是太麻烦了,而且好像 android 10 的华为手机,用 adb shell 会找不到 vulkan。于是 up 主就做了这个 app 。
可以测 CPU 和 GPU,可以细调所有 ncnn 参数。目前编译好的 apk 放在 release 页面上,可以下载安装玩,3.4M包括全部功能,无需联网。 - MindSpore新版本v0.5.0-beta官方解读 | MindSpore
链接:https://gitee.com/mindspore/mindspore
摘要:MindSpore 0.5版本的Top features如下:图算融合技术、量化训练、图神经网络、分布式训练的Host+Device混合训练、可视化性能分析工具:
这里重点介绍图算融合。该技术将算子与图层的表达进行统一,作为算子的一种新的表达方式、融合方法、编译流程。 在中间表达中,它用基础原语组成的子图来表达算子的内部计算逻辑,通过分析和优化现有网络计算图逻辑,对原有计算逻辑进行拆分、重组、融合,在中间表达中自动形成融合子图。融合子图会由AKG(Auto Kernel Generator)自动生成高性能的融合算子,且基于polyhedral实现了Auto schedule,从而实现网络整体执行时间的端到端深度优化。如在BERT中通过打开图算的使能开关可以获得14.8%的图算融合收益。 - [CVPR2020] mit-han-lab/apq: APQ: Joint Search for Network Architecture, Pruning and Quantization Policy
标题:APQ: Joint Search for Nerwork Architecture, Pruning and Quantization Policy
论文:https://arxiv.org/abs/2006.08509
摘要:We present APQ for efficient deep learning inference on resource-constrained hardware. Unlike previous methods that separately search the neural architecture, pruning policy, and quantization policy, we optimize them in a joint manner.
To deal with the larger design space it brings, a promising approach is to train a quantization-aware accuracy predictor to quickly get the accuracy of the quantized model and feed it to the search engine to select the best fit. However, training this quantization-aware accuracy predictor requires collecting a large number of quantized <model, accuracy> pairs, which involves quantization-aware finetuning and thus is highly time-consuming.
To tackle this challenge, we propose to transfer the knowledge from a full-precision (i.e., fp32) accuracy predictor to the quantization-aware (i.e., int8) accuracy predictor, which greatly improves the sample efficiency. Besides, collecting the dataset for the fp32 accuracy predictor only requires to evaluate neural networks without any training cost by sampling from a pretrained once-for-all network, which is highly efficient. Extensive experiments on ImageNet demonstrate the benefits of our joint optimization approach. With the same accuracy, APQ reduces the latency/energy by 2x/1.3x over MobileNetV2+HAQ. Compared to the separate optimization approach (ProxylessNAS+AMC+HAQ), APQ achieves 2.3% higher ImageNet accuracy while reducing orders of magnitude GPU hours and CO2 emission, pushing the frontier for green AI that is environmental-friendly. The code and video are publicly available. - huawei-noah/AdderNet:华为noah开源AdderNet的Pytorch训练代码
摘要:This code is a demo of CVPR 2020 paper AdderNet: Do We Really Need Multiplications in Deep Learning?
We present adder networks (AdderNets) to trade massive multiplications in deep neural networks, especially convolutional neural networks (CNNs), for much cheaper additions to reduce computation costs. In AdderNets, we take the L1-norm distance between filters and input feature as the output response. As a result, the proposed AdderNets can achieve 74.9% Top-1 accuracy 91.7% Top-5 accuracy using ResNet-50 on the ImageNet dataset without any multiplication in convolution layer.
- ncnn avx2/armv8.2 基础架构 | 知乎
摘要:2020年始,新手机 CPU 几乎都是 armv8.2 架构,其引入新的 fp16 运算和 int8 dot 指令,优化得当可大幅加速深度学习框架推理效率。与 x86 CPU 的 AVX 类似,并非全部 CPU 都支持,得考虑兼容性,即老CPU上用老指令,新CPU用新指令。那么 ncnn 在已有的代码架构上是怎么支持的呢? - TinyML:TVM征服机器学习最后的边界 | 极术社区
摘要:在裸机设备上优化和部署ML工作负载是非常困难的,Apache TVM是能使这个工作变得简单而快速的开源基础。这里我们将展示TVM的µTVM部件如何给嵌入式平台带来广泛的框架支持,强大的编译器中间件以及灵活的自动调整和编译功能。本文将介绍如何使用MicroTVM在裸机设备上优化和部署ML。 - AI芯片技术发展 | StarryHeavensAbove
摘要:本文由壁仞科技的唐杉在Techbeat上做了一个关于AI芯片的讲座,整理的一个文字版本。非常值得一看。 - MNN: 如何客观评价推理引擎 | NeuralTalk
摘要:本文将阐述MNN开源这一年左右的时间里所做的工作,作者从三个维度:性能、易用、通用性上,重新定义了如何评价推理引擎这一问题。
注:个别链接打不开,请点击文末【阅读原文】跳转
往期回顾:见公众号主菜单【历史消息】
- WeChat: NeuralTalk
- Editor: https://github.com/ysh329
- Project: https://github.com/ysh329/awesome-embedded-ai
本作品采用知识共享署名-相同方式共享 4.0 通用许可协议进行许可。