论文部分内容阅读
随着物联网的飞速发展和电子产品的日益普及,智能硬件对计算能力和信息处理的实时性提出了更高的要求。与计算机相比,生物大脑的工作频率低、并行度高、容错能力强,能高效地完成各种实时任务。为了提高智能硬件的计算效率,生物神经网络的概念广泛应用于计算机系统的设计。脉冲神经网络(Spiking Neuron Network,SNN)[1]是一种基于离散神经脉冲原理进行信息处理的人工神经网络,本文提出了一种基于FPGA的灵活可配神经网络加速器架构,支持神经网络拓扑结构、连接权值的灵活配置。本文首先简单介绍了生物神经元的行为,选择简单的LIF(Leaky Integrate and Fire,LIF)[2]模型作为神经元的基本模型,并在算法层对LIF数学模型进行公式分解和浮点转定点的优化,以适于FPGA的硬件实现。采用事件驱动[3][4][5]作为神经元的驱动方式以提高SNN计算的实时性,减少存储资源的浪费。其次介绍了SNN加速器的硬件设计,包括整体硬件架构、单个LIF神经元的设计、LIF神经元的流水线设计、SNN分类策略以及片上存储资源的使用优化。制订了传输协议以保证神经网络配置数据的正常传输。利用VSC仿真工具验证SNN加速器的功能。在实现过程中采用时分复用技术将硬件中实现的8个物理神经元复用为256个逻辑神经元。采用三级流水线架构计算神经元模电压,以提高神经元数据处理效率。然后介绍了SNN验证平台MINSOC的总体架构和工作原理,包括内核OR1200、Wishbone总线协议、SPI自启动电路和SDRAM控制器的介绍。最后采用手写数字识别的应用对实现的SNN加速器的功能和性能进行验证。构建手写数字识别网络架构,采用MNIST数据集作为测试样例,采用XC6SLX45 CSG324FPGA实现整个神经网络架构,工作频率可达50MHz,识别准确率高达93%。SNN加速器模拟一个神经元行为需要20ns,完成所有神经元更新的时间为640ns,处理速度比实际的生物神经元处理脉冲刺激约快1600倍。SNN加速器的性能略优国外同类型加速器Minitaur,基本完成预期目标。