Page 50 - 《软件学报》2020年第9期
P. 50
张政馗 等:面向实时应用的深度学习研究综述 2671
显的不同(在 1×1 卷积中,WS 流比 OS 流快 1.4 倍~7 倍;在 Depthwise 卷积中,OS 流比 WS 流快 19 倍~96 倍).于
是,为 SqueezeNet 定制了可变分层执行流架构的加速器 Squeezelerator,并获得了很好的加速效果(比单一 OS 流
加速了 26%,比单一 WS 流加速了 106%).针对方向(2),Kwon 又以 Squeezelerator 加速器为基础,对 SqueezeNet
进行优化,得到 SqueezeNext [81,116] 网络.优化方向包括:把第一个卷积层的卷积核从 7×7 缩小到 5×5,减少了推理
时间;减少 SqueezeNet 前面阶段的层数并增加后面阶段的层数,因为前面阶段的硬件利用率低,而后面阶段硬件
利用率高.SqueezeNext 获得了 2.59 倍的加速和 2.25 倍的能效比提升,并且比原 SqueezeNet 模型在图像分类基
准测试上中的准确率高出 2%.
Yang 等学者也从两个方向上进行了协同设计 [117] .先从原 ShuffleNetV2 模型出发提出了优化模型
DiracDeltaNet,其采用了 4 项“激进”的优化策略:(1) 把所有的 3×3 卷积操作替换成移位(shift)运算 [80] 加 1×1 卷
积操作;(2) 最大池化核从 3×3 缩小为 2×2;(3) 修改了通道交换(channel shuffle)的顺序;(4) 采用量化方法
(quantization)把浮点型参数压缩成整型.这些模型层面的优化策略在硬件层面得到了来自协同设计的 FPGA 加
速器 Synetgy 的支持:由 FPGA 负责执行“1×1 Conv-Pooling-Shift-Shuffle”操作.该协同设计方案在 ImageNet 图
像分类测试中达到 88.2%的精度(top-5),推理速度达到了 96.5 FPS(frames per second),这刷新了所有 FPGA 分类
器的最好成绩.Abdelouahab 等学者综述了通过 FPGA 加速 CNN 推理网的相关研究 [115] ,分析了 CNN 计算负载、
并行性和内存访问情况,阐述了卷积层和全连接层的优化问题、近似计算和数据路径优化方法.
Gao 等学者提出了通过优化数据流模型来实现可扩展的 NPU 加速器阵列设计 [118] .如果把 Eyeriss NPU 以
瓦片架构(tiled architecture)加以连接,可以获得更大的硬件计算能力,从而可以计算更复杂的 DNN 任务.然而,
随着 NPU 阵列的增大,数据冗余增大,数据移动和内存访问的开销也会随之增大.该研究团队通过使用两种技
术——Buffer sharing dataflow 和 alternate layer loop ordering 优化了数据流模型的层内并发性(intra-layer
parallelism)和层间流水线(inter-layer pipelining).基准测试实验显示该协同设计方案实现了 2 倍的加速比,并减
少了 45%的能耗.
6 总结与展望
随着深度学习算法、嵌入式计算硬件、5G、物联网的不断发展,以深度学习为主要手段的人工智能技术必
将在嵌入式应用领域得到更加广泛的应用,这其中也包括了安全攸关系统.因此,如何构建可信人工智能系统,
已经成为了学术界和工业界的一个研究热点.本文对现有的面向实时应用的深度学习研究工作进行了综述,介
绍了深度学习技术(主要是推理过程)应用于实时嵌入式系统所面临的挑战,并从深层神经网络的轻量化设计、
GPU 时间分析与任务调度、CPU+GPU SoC 异构平台的资源管理、深层神经网络与网络加速器的协同设计等
4 个方面综述了近 5 年来的研究进展.虽然学术界在以上 4 个方取得了一定的成果,但仍然存在一些问题需要进
一步研究和完善.下面将总结这些具体问题并展望进一步的研究方向.
DNN 轻量化设计问题:当前,对 DNN 的性能分析和优化以实验为主要手段,缺少基于形式化的 DNN 任务建
模与分析框架.在 DNN 轻量化的研究方面,缺乏描述精度和实时性之间权衡关系的量化表达方法,也没有建立
DNN 轻量化技术的方法论.在 DNN 运行框架方面,现有的主流框架,如 TensorFlow, Caffe 等,尚无法满足实时系
统对 DNN 任务运行时间确定性的要求.针对这些问题,需要进一步研究 DNN 任务性能分析模型、DNN 轻量化
设计方法论、DNN 实时运行框架.其中,实时框架的开发涉及硬件、驱动、库、框架等多个层次,是个复杂的系
统工程;
GPU 的实时分析问题:学者们大多延续了传统单核 CPU 实时系统的研究路线,无法应对 GPU 这种复杂的
大规模并行器件,表现为两方面.
(1) 研究方法重分析轻设计,强调分析技术(WCET 分析、可调度性分析)在保障系统实时性中的作用.但近
几年多核 CPU 分析遇到的困境表明:如果能够管控 GPU 程序的行为,提高时间的可预测性,则可以大大降低分
析层面的复杂度;
(2) 现有的时间分析框架中,程序级分析和可调度性分析是独立的,没有考虑到 GPU 并行任务之间的干涉,