论文部分内容阅读
卷积神经网络(CNNs)是深度学习算法中重要分支。CNNs由于其良好的非线性拟合特性,使得其在图像分类,语音识别等领域取得了辉煌的成就。随着CNNs的不断发展和进步,现实应用中涉及到CNNs的领域越来越广泛,应用者对其的性能要求越来越高。通过分析近几年ImageNet比赛中优秀的神经网络,网络更加深度化复杂化成为一种趋势。其访存和计算成为了限制性能的主要瓶颈。因此,针对CNNs的加速成为必不可少的工作。FPGA在灵活性,功耗和开发周期层面上,相比于GPU,ASIC有着先天的优势,从而成为了加速CNNs中不可忽视的一个重要领域。针对加速工作上的挑战,本课题做了以下的工作。第一,结合已有的研究成果,以Roof-line模型为指导,以硬件模拟器为基础,外围优化模块为辅助,设计和实现了针对CNNs中卷积层的设计空间探索框架ACCDSE。框架可以实现在多种性能要求下的参数配置,在加速器设计的早期确定相关参数。第二,通过对深度学习框架Caffe的修改,将训练过程中的浮点运算更换为定点运算,降低运算复杂度的同时,为采用定点运算的硬件加速器提供了训练平台。第三,根据前两部分的研究成果,在FPGA平台上设计并实现了一款LeNet推理加速引擎,采用8位定点运算精度,应用了多种优化手段提高性能,包括:权值拆分,乒乓优化等,并借助数学模型对资源分配进行优化。在Xilinx 485t FPGA进行了多个版本的硬件实现。通过硬件评估报告可以得到,在相同配置参数下的8位定点推理引擎相比于32位定点,降低了31.43%的延迟,节约了87.01%的LUT资源,66.5%的片上存储(BRAM),65.11%的DSP资源和47.95%的功耗。利用乒乓优化手段实现粗粒度的流水线之后,吞吐量达到了44.9Gops。这时的准确率仅仅比32位定点引擎下降了1%。