论文部分内容阅读
深度学习已经在语音识别、物体检测、自然语言处理、自动驾驶等多个领域中展现出了优异的性能。但高准确率的背后还存在计算代价大、通用智能水平弱等许多局限性。基于脉冲神经网络(Spiking Neuron Networks,SNN)的神经形态计算由于工作机理更接近于生物大脑,被认为有望克服深度学习的不足而成为解决人工智能问题的更佳途径。但是如何满足高性能、低功耗和适应规模伸缩需求仍是神经形态计算系统需要解决的挑战性问题。由于神经元和突触的种类较多,且目前SNN还处于研究阶段,出于灵活性和实现难度,现阶段更倾向于用软件来模拟和研究SNN。SNN软件仿真器NEST,具有支持神经元和突触模型多,且其更加关注于SNN的规模、动力学以及结构,而受到脑科学家、计算神经科学家的青睐。但是由于CPU本身的架构原因,导致NEST仿真器在CPU平台运行速度慢、功耗高。针对这些问题,本文的主要工作和创新点有以下几个方面:第一,为了分析NEST仿真器仿真速度慢的原因,设计了一种针对NEST仿真器的量化实验。分析NEST脉冲神经网络仿真器的工作原理以及计算密集点,量化实验数据,分析各个部分的仿真时间。通过两个典型的案例验证所提出的NEST仿真器的计算密集点,为后文硬件加速提供理论和实验支持。第二,针对NEST仿真器突触计算量大的特点,设计了脉冲时序依赖可塑性(Spike Timing Dependent Plasticity,STDP)型突触的FPGA加速。由于FPGA资源有限,硬件电路的设计使用局部并行+流水线架构,以此来增加数据的吞吐率和计算并行度。针对复杂的计算公式,在保证正确性的同时优化其计算结构,以此减少对片上资源的使用。加速方案采用ARM+FPGA的异构方案,处理系统(Processing System,PS)端负责NEST仿真器顶层框架的运行,可编程逻辑(Programmable Logic,PL)端负责突触计算加速。实验结果表明,本文所设计的突触部分加速器单节点性能是ARM-A9的61.79倍,Xeon E5-2620的4.1倍。能效比方面,是Xeon E5-2620的115倍,是ARM A9的55.5倍。第三,针对NEST仿真器神经元部分计算量大的特点,设计了IF神经元的FPGA加速。所设计的FPGA加速方案采用流水线+并行的结构。与设计的突触硬件加速器类似,在基于ZYNQ的软硬件平台上,FPGA部分负责神经元部分的计算,ARM部分负责系统的运行和通信。性能方面,单节点性能是Xeon E5-2620的1.9倍。