Page 40 - 《软件学报》2020年第9期
P. 40
张政馗 等:面向实时应用的深度学习研究综述 2661
技术引入到加速器设计中 [41,42] .同时,为了最小化数据搬移,缓解带宽瓶颈,运算器和存储器正朝着一体化的方
向发展(忆阻器 [43] ).除此以外,专用神经网络加速器未来还将支持更多的神经网络框架,并采用非冯·诺依曼体系
架构来大幅度提高整体运算性能、降低功耗.
2 DNN 任务在实时嵌入式系统中面临的挑战
嵌入式系统的共性特征是“实时性”,从应用的角度,实时性是指“不仅要保证运算的逻辑正确性,还必须保
证运算在规定的时间内完成,否则将产生灾难性后果”.DNN 任务(主要是推理过程)在实时嵌入式系统上的成功
部署与运行,既要在功能层面保证 DNN 推理结果的正确性和精确度,又要在非功能层面确保满足系统的实时
性、资源和功耗的要求.本节将从 DNN 模型、深度学习框架以及硬件计算平台等方面总结和剖析 DNN 任务
应用于实时嵌入式系统带来的问题和挑战.首先从 DNN 模型性能层面讨论在资源受限的实时嵌入式系统上部
署复杂 DNN 任务所面临的问题,第 3 节针对这些问题从网络的性能分析、网络轻量化设计、实时神经网络方
面做了详细的调研;然后讨论了计算平台(主要是 GPU、SoC、操作系统)保障 DNN 任务的实时性方面所面临
的挑战,第 4 节针对这些问题从 GPU 时间分析、任务调度、资源管理策略方面做了详细的调研.
2.1 DNN模型带来的关键问题
(1) 传统 DNN 在实时嵌入式系统中具有局限性
当今,嵌入式信息物理融合系统正与深度神经网络领域互相融合,并且未来有朝着增强自主性方向发展的
趋势.DNN 应用部署在高性能硬件平台(例如 GPU 集群)上,并且具有良好的可扩展性 [19] .如果把现有的网络模
型部署在资源受限的实时嵌入式系统中,这将很难满足时序要求 [21] .其主要原因是受到 DNN 模型复杂度、计算
和内存资源的巨大需求等约束,DNN 在低功耗的终端设备上运行,无法满足系统的实时性和可预测性.因此,在
计算资源与时间方面,DNN 任务本身的需求与实际目标硬件平台的能力存在着较大的差异.在硬件层面,由于
硬件的发展和更新速度明显落后于软件方面,仅仅通过提升硬件性能来解决该问题仍然具有局限性.在软件层
面,探索轻量化网络的设计和优化也是一种有效的解决方案,即:在 DNN 网络的精度与时间、资源等方面进行权
衡,综合考虑系统的功能层面要求与非功能层面要求.
(2) 通用深度学习框架的设计并未考虑嵌入式平台实时性要求
当前流行的深度学习框架有 TensorFlow,Caffe,CNTK,Theano,Torch 等,这些框架各具特色,基于这些深度学
习框架可以较为容易地实现各种前沿的深度学习算法.深度学习框架的设计面向高性能计算,是为了提高任务
吞吐量和系统可扩展性.然而,深度学习框架所实现的数据或任务并行(data or task parallelism)加速并未充分考
虑到底层硬件,并未考虑嵌入式平台实时性要求 [44] (如资源分配时间有上界等).另一方面,不同的深度学习框架
之间存在着性能差异,并且同一网络在不同框架上实现也存在着明显的性能差异,所以从深度学习框架角度优
化网络运行时间,对于确保深度学习任务的实时性具有较大的提升空间.Kim 等学者 [45] 通过实验的手段分析了
AlexNet 在上述 5 种流行的框架上性能差异,只是通过实验的手段简单地揭示了不同框架之间存在性能差异的
现象,但却没有从本质上揭露造成性能差异的原因.
(3) DNN 模型结构更新后不能保证系统的实时性
深度学习模型是基于设计的网络结构,通过大规模数据进行训练得到的网络参数,且满足样本分类和预测
的精度.为了保证网络模型的预测精度和系统性能,网络模型往往需要优化,需要对扩充后的样本数据重新训
练,更新后的网络模型会修改模型参数,甚至会更新网络结构.然而,当网络模型结构发生变化后,任务重新部署
在资源受限的实时嵌入式系统上,为了满足系统实时性,其网络模型更新过程需要满足一系列的约束 [46] .系统更
新时,既要保证新的网络模型不会干扰现有的系统,又要确保非功能的正确性.换句话说,计算平台要有足够的
计算资源来运行新应用程序,而不会违反任何时间限制 [47] .对于实时嵌入式系统的有限资源下,任务模型更新后
需要重新验证与分析系统的可信性.