论文部分内容阅读
随着人工智能和深度学习的火热发展,神经网络得到了越来越多的人的关注。神经网络在语音识别、手写识别等方面取得了巨大的成就。随着神经网络规模的不断增加,对处理器的速度和性能要求越来越高,传统的微处理器已不能满足要求,所以设计专用的神经网络处理器是十分重要的。本文综述了国内外关于神经网络和处理器的的发展概况,分析研究了各种处理器的优势和劣势,本文提出了一种支持RNN模型的处理器。该处理器通过指令集的形式,可灵活的映射各种RNN算法。本文的研究工作如下。针对RNN网络,分析其算法,将算法分解为指令集的形式,主要有控制指令、数据传输指令、矢量计算指令、标量计算指令、其他指令五类。针对该指令集,本文对处理器的整体框架进行设计。处理器的总体框架按照功能可以分为访存单元、矢量计算单元、标量计算单元和取指部分。访存单元对数据的存储和加载进行控制。矢量计算单元完成矩阵乘以向量以及激活函数的运算等。标量计算单元主要完成地址的计算和控制。取指单元完成指令的派发及空指令。在指令派发模块中,通过对指令集设计了一位标志位,进一步探索了指令并行执行的可能性,使处理器能最大限度的进行指令的处理。本文详细介绍了处理器中的一些关键模块的设计。在访存模块中,本文设计了专用的片上存储SPV和SPM,可以支持大量数据的向量访存和矩阵访存。在解压模块中,本设计参考了一些先进的模型压缩算法,提出了针对权值共享和稀疏矩阵的解压算法。由于解压模块的存在,该处理器可以灵活的支持未压缩参数的运算和模型压缩后参数的运算。同时,本文比较每种算法的好坏,完成了神经网络激活函数的硬件设计。本文对激活函数的设计,使用了简单的硬件设计,达到了较高的精度要求。在对该处理器完成每个模块的RTL代码设计以及完成处理器的整体设计后,对该处理器进行了验证和评估。为了能更好的验证处理器的功能,首先对处理器的关键功能模块进行了验证。接着本文通过使用vivado软件移植了一个基于AXI4协议的DDR3 ip核。在验证过程中,将ip核和处理器的外部接口进行连接。本文使用nc-verilog工具对处理器进行整体验证。采用某28nm工艺对整个处理器进行了逻辑综合,表明该加速器的工作频率达到了1.25GHz,总面积约为9.37mm~2,整体功耗约为9W。论文中对该处理器进行算法映射,采用Elman网络对处理器的精度和误差进行计算和分析,其中平均误差为2.43%。该处理器的最小误差为0.04%,表示该处理器的推断时的最大精度可达99.96%。针对不同尺寸的Elman网络,对其访存带宽和吞吐率进行了分析。本文设计的处理器,其设计思想和设计架构对研究RNN类处理器有着很好的借鉴意义。