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 并行任务之间的干涉,
   45   46   47   48   49   50   51   52   53   54   55