论文部分内容阅读
近年来,随着深度卷积神经网络算法的发展,出现了越来越多的复杂网络,在提高算法各方面性能表现的同时,也为算法的落实应用带来了新的要求和挑战。同时随着硬件的发展,出现了众多的异构计算设备,如CPU、GPU、FPGA和MIC等,在不同硬件上加速深度卷积神经网络推理阶段已经成为了研究热潮。设计一种跨平台的并行加速深度卷积神经网络推理算法可以为算法的移植带来极大的方便,为深度卷积神经网络在应用过程中适应不同设备提供基础,在实际应用中具有重要意义。同时由于不同厂商生产的硬件根据应用场景的不同在其架构、性能、功耗方面存在很大差异,在将算法根据实际要求来应用到合适的硬件上也面临着硬件选择难题,针对以上问题,本文完成的主要研究内容如下:本文为了研究跨平台的并行加速深度卷积神经网络推理算法,提出了基于OpenCL的并行深度卷积神经网络推理算法。分析了传统卷积与深度可分离卷积的并行性,设计并实施了并行OpenCL内核代码,通过结合clBLAS实现的并行矩阵乘法,并行加速传统卷积与深度可分离卷积,通过实验与Caffe和对角线重构实现的深度可分离卷积方法进行了性能对比,验证了本文提出方法的有效性。接着设计并实施了深度卷积神经网络推理阶段中其他操作算子的OpenCL并行内核代码,实现了使用OpenCL加速Mobilenet v1网络和残差网络的推理阶段,并进一步通过内核融合与增加全局任务量的方法提升性能。最终在AMD Radeon Vega Frontier GPU上加速两种网络相比于Caffe GPU并行分别取得了40.16和1.67倍的加速比,在NVIDIA GTX1070 GPU上分别取得了14.95和1.11倍的加速比,验证了OpenCL代码的性能可移植性。本文为了解决深度卷积神经网络算法推理应用过程中对硬件的选择问题,提出了基于多层感知器的深度卷积神经网络推理性能模型,用于预测深度卷积神经网络算法在不同硬件平台上的推理时间,从而指导深度卷积神经网络算法在应用过程中对硬件的选择。研究了影响深度卷积神经网络推理阶段中各种算子在不同硬件平台上性能表现的因素,包括网络算子自身结构和所使用硬件平台软硬件方面的影响,构造特征,确定特征取值范围,使用Caffe软件框架获取每种算子在NVIDIA和AMD GPU上取不同特征值情况下的运行时间,作为标签,构造数据集。为每种算子使用相应的数据集分别训练针对单一硬件平台和针对多种硬件平台的多层感知器,使用多层感知器来预测深度卷积神经网络各个算子在不同硬件上的运行时间,通过组合算子运行时间获得深度卷积神经网络在目标硬件上的推理时间。最终预测VGG16网络在不同批次与使用不同硬件情况下推理时间的平均相对误差为6.32%,验证了性能模型的有效性。