论文部分内容阅读
人工智能概念始于1956年,然而直到最近两三年,人工智能的应用才呈爆炸性发展,归结原因,主要是对海量数据的存储与应用技术的发展和具有高并行计算能力的GPU得到了广泛的使用。机器学习是一种实现人工智能的方法。机器学习最本质的思想,是通过算法对数据解析,归纳出一定的规则,然后依据上述规则再做出相应的决策和预测。机器学习需要用大量的数据进行训练,通过各种算法从数据中获取对未来信息预测的策略。深度学习作为一种实现机器学习的技术,是具有深度的人工神经网络,即在神经网络中具有很多的层结构。深度学习使得机器学习能够实现众多复杂应用,拓宽了人工智能的概念范围。语音识别,图像识别,机器翻译,数据分析,自然语言处理,智能购物推荐,医疗预测,无人驾驶等功能都可以通过深度学习实现,并取得了可观的效果。尽管并行计算能力逐渐强大的GPU可以在多层的神经网络中处理海量数据,但是受限于没有针对深度学习网络拓扑结构的硬件结构,以及研发专业芯片的周期、成本高居不下等因素,使得对深度学习的研究门槛依旧很高。如何高性能、针对性、短周期实现深度学习算法的硬件结构,在深度学习相关研究领域的作用也逐渐凸现出来。在硬件加速领域,因为现场可编程门阵列FPGA具有高性能、并行性、可编程等特点,所以常被用来做硬件加速开发。本文提出使用FPGA设计深度学习硬件加速功能,主要针对卷积神经网络学习算法部分的加速任务,主要工作有:1)介绍人工神经网络和深度学习概念,分析深度学习网络拓扑结构,这里以卷积神经网络为例。2)分析深度学习中卷积神经网络的相关算法,重点分析在卷积神经网络中加入深度压缩算法进行网络压缩,然后分析总结训练过程和预测过程中的算法特性,以此设计FPGA硬件运算单元。3)根据训练过程和预测过程算法的特点,使用xilinx公司的高级集成开发环境Vivado HLS设计编写相关代码。包括前向计算模块和反向计算模块,运算单元参数可以进行配置和适用并行计算的流水线设计,以满足不同规模深度神经网络的高吞吐率,达到最优化的程度。4)分析FPGA加速器的数据通路与控制通路,即AXI通信控制协议,编写相关控制程序以便简单易用的调用程序使用FPGA加速器进行加速。5)通过实验测试分析加速器性能,分别测试CPU、FPGA的性能、功率、能耗、资源使用情况,分析FPGA实现的优劣性。随着移动设备的需求量增多以及对人工智能功能的广泛需求,降低深度学习过程中的计算量是一个创新突破口。因此,使用深度压缩算法以及在FPGA上实现卷积神经网络,可以得出在速度、功耗以及计算量上都有明显的改善。