基于Roofline性能模型的深度神经网络推理优化
【摘要】:近年来,深度神经网络已取得了巨大的成功,已广泛应用于自动驾驶、语音识别、面部识别、目标检测和语义分割等领域。由于图形处理器(Graphics Processing Unit,GPU)在计算能力、内存带宽和能效方面均具有明显优势,所以使用GPU成为加速深度神经网络训练和推理的重要手段。随着深度神经网络的发展,深度神经网络对内存资源有了更高要求的同时也使得训练和推理变得更加耗时。在训练阶段,可以使用大规模集群进行训练,一般不需要考虑实时性和计算资源的限制。而在实际应用中更多的是将训练好的神经网络模型用于推理。在许多场景下,可使用的GPU没有强大的算力以及内存资源保证神经网络模型推理的内存需求以及实时性。所以,在计算设备内存资源不足以支持神经网络推理或对推理延迟要求严格的应用场景下,如何在保证模型精确度的同时对神经网络的复杂度以及推理时延进行约减成为研究热点。同时神经网络在GPU上运行时,内核配置参数的选取也成为影响神经网络推理性能的重要因素。如何高效的获得合适的配置参数,使深度神经网络在推理阶段以最佳的配置参数运行,达到最优的性能成为感兴趣的方向。本文将从这两个方面入手,结合Roofline性能模型作为指导,解决深度神经网络在GPU上推理所面临的内存要求较高以及推理时延较大的问题。针对以上问题,本文完成的主要内容如下:(1)提出一种基于遗传算法的模型剪枝算法。从模型剪枝问题的抽象、算法设计、算法实现等方面,详细介绍了一种基于遗传算法的卷积神经网络模型剪枝算法;最后,介绍模型的实现细节,参数配置以及在不同数据集下经典神经网络模型的性能表现,并与此前相关领域的工作进行对比分析。以VGG16在CIFAR-10数据集上的表现为例,本文的算法将模型的准确度提升了0.17%的同时,修剪了73.05%的计算量以及91.06%的参数,推理时间缩短了35.2%。(2)提出一种基于贝叶斯优化算法的GPU参数自调优框架(GPU parameter Auto-tuning Framework based on Bayesian optimization algorithm,GAFB)。对影响GPU程序性能的因素进行参数化,并结合贝叶斯优化算法来搜索最佳配置参数。贝叶斯优化将每个样本的时间作为先验指导下一次采样,可以通过较少的采样下获得优秀的配置参数。本文使用四种图像处理的经典算子对GAFB进行测试,并与其他优化算法对比,证明GAFB可以以更少的采样获得满意的结果。最后,使用AlexNet的卷积层对GAFB进行了测试,与原始参数配置相比,AlexNet的推理速度提高了50.09%。