摘要
近年来,深度神经网络应用成为人工智能领域甚至是计算机领域的研究热点。随着应用场景的拓展和模型规模的扩大,对支持深度神经网络应用的计算平台提出了更高的要求。本文关注在云计算场景下深度学习计算平台的性能优化问题。尤其是由边缘侧嵌入式平台发起的实时性深度学习应用,通常会消耗大量的计算资源,并且该算力需求与平台自身的能耗和资源限制严重冲突,难以达到用户对吞吐率方面的质量要求。针对深度神经网络应用模型的性能优化和针对处理器平台的结构优化是两类主要的深度学习计算平台的优化方法。深度神经网络应用模型的性能优化能够对深度神经网络结构直接进行高效地精度/性能折衷,但需要分析其在具体硬件平台上执行应用的优化效果。针对处理器平台的结构优化可根据深度学习应用的特点设计高性能的硬件加速器,然而会带来较高的实现成本,且降低了计算平台的通用性。 本文针对多场景下不同计算平台上的深度学习应用,研究了性能优化和实时性任务调度方法,取得了以下创新性研究成果: 1.针对嵌入式平台,提出了一种基于多分支深度神经网络结构的性能优化及其动态调度方法,通过灵活指定深度神经网络应用的执行路径,响应不同用户对应用延时和精度的不同需求, 嵌入式平台相比高性能计算机在性能和能耗上有一定的限制,难以直接用来处理深度神经网络应用。本方法是一种新的深度神经网络应用优化调度方法:1)在深度神经网络结构方面,结合了其特征提取与资源消耗特点,以及具体执行模型的嵌入式平台,给出了多分支网络结构的自动化生成方法;2)在嵌入式系统的优化方面,基于其性能模型提出了深度学习应用的动态调度方法,并在此基础上利用多任务场景下计算资源争用性能模型,指导设计了并发任务条件下的动态调度方法。实验数据表明,相比于直接处理原始深度神经网络结构的方法,本方法拥有更高的灵活性,能够响应用户更加苛刻的执行条件约束。在多任务场景下,当指定的精度要求不低于70%时,本方法执行一次深度神经网络应用的推理性能相比于现有一些静态调度的提前退出方案平均提升了33.5%。 2.针对云端高性能服务器,提出了一种基于近似计算和并行处理的存内计算结构优化方法,提高了处理各种复杂应用,包括深度神经网络应用的性能。 云端需要处理的各种复杂计算任务都存在大量的访存需求,而深度神经网络应用对于访存带宽的需求更加旺盛。传统结构中存储墙问题的存在导致高性能服务器在处理这些应用时效率不高。本文通过利用现有量产的3D堆叠DRAM存储器作为硬件平台,设计了存内计算结构,通过引入近似计算方法和并行处理方法进一步提高了系统的整体处理效率。实验数据表明,与传统体系结构相比,不用引入任何性能优化技巧,该存内计算结构直接处理云端访存密集型通用计算指令时就能够实现45%以上的性能加速;而即使像简单机器学习应用和深度神经网络应用这样涉及到大量复杂运算、对于存内计算系统而言有一定算力压力的计算任务,也能够通过各种性能优化手段实现15X以上的性能提升。 3.针对云计算场景下的实时性深度学习应用,提出了一种云端与边缘协同的任务调度方法,有效提高了应用的吞吐率与边缘设备的能效。 近年来,云计算场景下实时性深度学习应用的处理遇到了前所未有的挑战。一方面,边缘设备上的算力难以满足深度学习应用的处理需求;同时,深度学习应用的不断普遍化,造成了云端高性能服务器需要服务的深度学习应用爆炸式增长。本方法定义了边缘设备的有效能效,以边缘设备有效能效最大化和云端机时占用率最低化为目标,将调度问题分解为多目标优化问题,采用启发式动态调度方法,在各平台性能模型的引导和总体调度逻辑的指挥下,实现对计算任务的动态分配。实验数据表明,本方法可以将任务占用的云端机时减少为原来的50%以下,对于应用发起者而言,系统处理应用的吞吐率提升了35%以上,同时边缘设备的有效能效也比现有方案平均提升了22倍以上。