当前位置: 首页 > 专利查询>浙江大学专利>正文

一种细胞神经网络硬件架构的优化方法技术

技术编号:19059176 阅读:18 留言:0更新日期:2018-09-29 12:38
本发明专利技术公开了一种细胞神经网络硬件架构的优化方法,该方法包括构建细胞神经网络硬件架构和对计算加速单元实现系统级、模块级和设计空间级优化设计;该架构由外部存储器、存储器接口控制器、片上输入缓存、片上输出缓存、计算加速单元和总线构成;计算加速单元包括若干依次连接的迭代单元,每个迭代单元包括若干并行运算模块;数据在计算加速单元中执行运算操作,运算结果写入片上输出缓存;整个细胞神经网络的运算操作通过迭代单元流水线完成;本发明专利技术通过系统级优化实现了细胞神经网络的并行计算,通过模块级优化充分利用了硬件的内存带宽并减少数据传输延时,通过设计空间级优化在有限硬件资源的情况下达到系统的最优计算性能。

【技术实现步骤摘要】
一种细胞神经网络硬件架构的优化方法
本专利技术属于硬件加速器设计领域,尤其涉及一种细胞神经网络硬件架构的优化方法。
技术介绍
随着人工智能对于低功耗器件日益增长的需求,传统的图像处理应用数据处理速度较低和功耗较高的缺陷愈发显著。细胞神经网络作为一个提高处理性能和降低能耗的有效手段,渐渐地被应用在噪声消除、边缘检测、路径规划等领域,并且同时受到了学术界和工业界的广泛关注。细胞神经网络是局部连接并且有大量细胞元组成的一种非线性结构,每个细胞元都具有由一个3x3大小矩阵构成的模板,并且与其相邻的8个细胞元相连接,模板中的参数值决定了细胞元之间的连接强度。标准M×N的细胞的r维邻域Nr(i,j)的定义及细胞神经网络动力学方程由公式(1)(2)给出:Nr(i,j)=c(k,l):max{|k-i|,|l-j|≤r}(1)其中i和j表示当前细胞元的位置参数,i=1,2,…,N;j=1,2,…,M,同时r,k和l均取值为正整数,1≤k≤m,1≤l≤n,c(k,l)为包括当前细胞元在内的半径为r内的所有细胞。细胞神经网络有5阶和3阶等多种算法,通常r取值为1,即3阶细胞神经网络。输出状态方程为:xi,j,yi,j,ui,j,zi,j分别表示状态变量、输出变量、输入变量和阈值。由上可得,细胞元的输出取决于反馈系数模板A、输入系数模板B和阈值z的选择,模板参数代表了细胞元之间的连接强度。在数字硬件实现中应用离散时间细胞神经网络,其离散近似方程和输出状态方程由公式(4)(5)给出:xi,j(n+1)=xi,j(n)+Δt(-xi,j+∑A(i,j;k,l,n)yi+k,j+l+∑B(i,j;k,l,n)ui+k,j+l+zi,j)(4)细胞神经网络数字电路设计主要基于ASIC、GPU、FPGA等硬件平台,其中FPGA由于其自身出色的高灵活性和可快速投入市场的特性应用最为广泛。现有的基于FPGA的细胞神经网络架构实现存在以下缺陷:1.已有的大多细胞神经网络硬件设计的迭代运算只在一个运算模块中执行,没有充分利用硬件的并行特征。2.当前的工作中没有考虑到细胞神经网络中读写重复的参数会引起不必要的内存带宽以及存储资源的占用并对这一特点加以利用。因为FPGA中的内存读取比计算速度要慢很多,这些重复参数会造成计算性能冗余。3.很多细胞神经网络系统并没有充分利用硬件资源和带宽,这种缺乏可重构设计空间探索的架构使得硬件难以达到最佳性能。以上因素极大地制约了细胞神经网络硬件实现的应用,只有充分解决上述三个问题的细胞神经网络硬件加速设计,才能进一步开发基于细胞神经网络的人工智能系统。
技术实现思路
为了解决已有细胞神经网络的数字电路实现中存在的并行性较低、计算性能冗余、缺乏设计空间探索的缺陷,本专利技术提供了一种细胞神经网络硬件架构的优化方法,同时具备了并行性高,优化计算冗余,可重构设计空间探索的特性。本专利技术解决其技术问题所采用的具体技术方案是:一种细胞神经网络硬件架构的优化方法,该方法包括以下步骤:(1)构建细胞神经网络硬件架构,该架构由外部存储器、存储器接口控制器、片上输入缓存、片上输出缓存、计算加速单元和总线构成;所述计算加速单元包括若干依次连接的迭代单元,每个迭代单元包括若干并行运算模块;数据从外部存储器通过存储器接口控制器和总线读入片上输入缓存,并在计算加速单元中执行运算操作,运算结果写入片上输出缓存,最终输出到外部存储器;整个细胞神经网络的运算操作通过迭代单元流水线完成;(2)对计算加速单元实现系统级优化设计,具体为:分块并行阵列:将输入图像分割成若干个容量为N的数据块,将每个数据块中的N个数据按照其空间排布顺序分配到一个迭代单元的N个并行运算模块中,并且所有运算模块在一个运行周期内完成运算;数据重用:当一个迭代单元中的并行运算模块在执行计算操作时,利用相邻运算模块的输入矩阵的数据共享关系对输入图像进行数据重用,减少迭代单元之间以及片上输入缓存的读写操作。进一步地,所述数据重用具体为:细胞神经网络在一个迭代单元内执行并行计算时,当前运算模块的3×3输入矩阵中前两列数据与前一个相邻运算模块的输入矩阵后两列数据存在数据共享关系,因此前两列数据可以通过访问相邻运算模块的寄存器获取,而第三列数据从迭代单元FIFO中读取,从而使FIFO带宽需求下降2/3。进一步地,在系统级优化设计后还包括模块级优化设计,具体为:参数量化:对所有细胞神经网络的模板数据做指数量化,引入参数重复和矩阵稀疏化两个特性,从而减少乘法运算次数,并在量化的基础上用移位操作代替乘法运算;内存访问优化:通过重新分配片上内存访问和计算周期来减少延迟;在运算单元寄存器空闲时,将寄存器内存访问和计算操作并行执行,并行运算单元内存访问操作相互不独立,以流水线方式执行。进一步地,所述参数量化具体为:在细胞神经网络的大量乘加运算中,将参数量化为2的指数,用二进制移位代替浮点数乘法,从而降低乘法器资源消耗;量化集qs和量化结果uq(i)的公式如下:其中,p为所有量化参数可能的取值,k和m分别描述量化下限和上限。当原参数绝对值小于2-k-1时,就会被量化裁剪为0。进一步地,所述内存访问优化具体为:将离散时间细胞神经网络的一个计算周期分为寄存器繁忙和空闲两个阶段,在寄存器繁忙阶段,计算操作需要从寄存器中读取图像数据,在寄存器空闲阶段,将寄存器内存访问和计算操作并行执行,寄存器加载下个计算周期所需要的数据,减少了内存访问所造成的延迟;为了减少存储器端口的面积消耗,并行分块阵列中在时域中重合的内存访问周期以流水线方式实现。进一步地,在模块级优化设计后还包括设计空间级优化设计,具体为:引入基于细胞神经网络的Roofline模型,对构建的细胞神经网络硬件架构进行可重构的设计空间探索;根据I/O带宽上限和峰值计算性能上限的约束条件,Roofline模型得出系统计算性能和迭代单元个数、运算模块的计算性能、分块尺寸之间的关系,使得系统可以在充分利用所有硬件资源的情况下达到最优性能。进一步地,所述计算加速单元包括依次连接的一个迭代单元A和若干个迭代单元B,整个细胞神经网络的运算操作通过迭代单元流水线完成,具体为:迭代单元A执行离散时间细胞神经网络迭代过程中的初始计算操作,由于细胞神经网络中输入系数模板和阈值的数值仅与空间位置相关,因此只需要一个迭代单元A完成与上述参数相关的初始计算;迭代单元B执行离散时间细胞神经网络中与时间相关的迭代运算操作。进一步地,所述计算加速单元还包括数据传输控制单元,所述数据传输控制单元用于管理片上输入缓存和输出缓存、模板RAM和迭代单元之间的所有数据传输操作,它保证了不同迭代单元数据传输和计算的同步性,并且可以根据不同总线带宽改变计算加速单元的最优运行频率。本专利技术的有益效果是:本专利技术提供了一种细胞神经网络硬件架构的新优化方法,通过系统级优化实现了细胞神经网络的并行计算,通过模块级优化充分利用了硬件的内存带宽并减少数据传输延时,通过设计空间级优化在有限硬件资源的情况下达到系统的最优计算性能。附图说明图1是细胞神经网络硬件架构的结构示意图。图2是分块尺寸为3的数据重用技术实现示意图。图3是运算模块中的参数量化技术实现示意图。图4是内存访问优化技术示意图。图5是基于不同FPGA平台的本文档来自技高网
...

【技术保护点】
1.一种细胞神经网络硬件架构的优化方法,其特征在于,该方法包括以下步骤:(1)构建细胞神经网络硬件架构,该架构由外部存储器、存储器接口控制器、片上输入缓存、片上输出缓存、计算加速单元和总线构成;所述计算加速单元包括若干依次连接的迭代单元,每个迭代单元包括若干并行运算模块;数据从外部存储器通过存储器接口控制器和总线读入片上输入缓存,并在计算加速单元中执行运算操作,运算结果写入片上输出缓存,最终输出到外部存储器;整个细胞神经网络的运算操作通过迭代单元流水线完成;(2)对计算加速单元实现系统级优化设计,具体为:分块并行阵列:将输入图像分割成若干个容量为N的数据块,将每个数据块中的N个数据按照其空间排布顺序分配到一个迭代单元的N个并行运算模块中,并且所有运算模块在一个运行周期内完成运算;数据重用:当一个迭代单元中的并行运算模块在执行计算操作时,利用相邻运算模块的输入矩阵的数据共享关系对输入图像进行数据重用,减少迭代单元之间以及片上输入缓存的读写操作。

【技术特征摘要】
1.一种细胞神经网络硬件架构的优化方法,其特征在于,该方法包括以下步骤:(1)构建细胞神经网络硬件架构,该架构由外部存储器、存储器接口控制器、片上输入缓存、片上输出缓存、计算加速单元和总线构成;所述计算加速单元包括若干依次连接的迭代单元,每个迭代单元包括若干并行运算模块;数据从外部存储器通过存储器接口控制器和总线读入片上输入缓存,并在计算加速单元中执行运算操作,运算结果写入片上输出缓存,最终输出到外部存储器;整个细胞神经网络的运算操作通过迭代单元流水线完成;(2)对计算加速单元实现系统级优化设计,具体为:分块并行阵列:将输入图像分割成若干个容量为N的数据块,将每个数据块中的N个数据按照其空间排布顺序分配到一个迭代单元的N个并行运算模块中,并且所有运算模块在一个运行周期内完成运算;数据重用:当一个迭代单元中的并行运算模块在执行计算操作时,利用相邻运算模块的输入矩阵的数据共享关系对输入图像进行数据重用,减少迭代单元之间以及片上输入缓存的读写操作。2.根据权利要求1所述的一种细胞神经网络硬件架构的优化方法,其特征在于,所述数据重用具体为:细胞神经网络在一个迭代单元内执行并行计算时,当前运算模块的3×3输入矩阵中前两列数据与前一个相邻运算模块的输入矩阵后两列数据存在数据共享关系,因此前两列数据可以通过访问相邻运算模块的寄存器获取,而第三列数据从迭代单元FIFO中读取,从而使FIFO带宽需求下降2/3。3.根据权利要求1所述的一种细胞神经网络硬件架构的优化方法,其特征在于,在系统级优化设计后还包括模块级优化设计,具体为:参数量化:对所有细胞神经网络的模板数据做指数量化,引入参数重复和矩阵稀疏化两个特性,从而减少乘法运算次数,并在量化的基础上用移位操作代替乘法运算;内存访问优化:通过重新分配片上内存访问和计算周期来减少延迟;在运算单元寄存器空闲时,将寄存器内存访问和计算操作并行执行,并行运算单元内存访问操作相互不独立,以流水线方式执行。4.根据权利要求3所述的一种细胞神经网络硬件架构的优化方法,其特征在于,所述参数量化具体为:在细胞神经网络的大量乘...

【专利技术属性】
技术研发人员:卓成刘仲阳
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1