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

基于FPGA的神经网络加速方法和加速器技术

技术编号:23446618 阅读:25 留言:0更新日期:2020-02-28 20:35
本发明专利技术属于神经网络技术领域,为提出一种基于FPGA的卷积神经网络加速器,该加速器同时考虑了神经网络加速器性能和通用方面的需求,具有广阔的应用场景。为此,本发明专利技术采取的技术方案是,基于FPGA的神经网络加速器,包括卷积运算模块,池化模块,直接内存存取DMA模块,指令控制模块,地址控制模块,内部随机存取存储器RAM模块和指令RAM模块;其中所述的卷积运算模块,用于对卷积神经网路中的卷积层进行运算。本发明专利技术主要应用于神经网络芯片的设计制作。

Acceleration method and accelerator of neural network based on FPGA

【技术实现步骤摘要】
基于FPGA的神经网络加速方法和加速器
本专利技术属于神经网络
,具体涉及一种基于现场可编程门阵列(FPGA)的神经网络加速器架构
技术介绍
随着人工智能的高速发展,卷积神经网络(ConvolutionalNeutralNetwork,CNN)越来越受到人们的重视,在图像处理等很多领域发挥着重要的作用。相比于传统算法,CNN的计算复杂度要高很多,通用CPU已经无法满足计算需求,目前主要的的解决方法是使用GPU进行CNN的计算,虽然GPU在并行计算方面有着天然的优势,但是在成本和功耗方面有着很大的不足,无法满足一些低特定场景下的CNN加速。FPGA具有强大的并行处理能力、灵活的可配置特性和超低功耗,非常适合作为CNN的实现平台。
技术实现思路
为克服现有技术的不足,针对目前神经网络加速需求,本专利技术旨在提出一种基于FPGA的卷积神经网络加速器,该加速器同时考虑了神经网络加速器性能和通用方面的需求,具有广阔的应用场景。为此,本专利技术采取的技术方案是,基于FPGA的神经网络加速器,包括卷积运算模块,池化模块,直接内存存取DMA模块,指令控制模块,地址控制模块,内部随机存取存储器RAM模块和指令RAM模块;其中所述的卷积运算模块,用于对卷积神经网路中的卷积层进行运算,卷积运算模块包括8个运算处理PE模块,和一个加法器,其中PE模块负责卷积运算中乘法运算,一部分加法运算,以及归一化运算,加法器责将8个PE模块的计算结果与内部RAM输入进来的中间结果相累加;所述的的池化模块,用于对卷积神经网路中的池化层进行运算;所述的的DMA模块,用于卷积神经网络运算中的数据搬运工作,DMA模块包括三个DMA通道,分别为DMA图像通道,DMA权重通道,DMA指令通道,DMA图像通道负责从双倍速率同步动态随机存储器DDR中搬运图像数据到内部RAM中,以及从内部RAM中搬运运算后的数据到外部DDR中,DMA权重通道负责从外部DDR中搬运权重数据到卷积运算模块中,DMA指令通道负责从外部DDR中搬运指令数据到指令RAM中;所述的指令控制模块,用于对指令的读取和分发工作,支持从指令RAM中读取数据,并将读取到的指令分发给卷积运算模块,池化模块,地址控制模块和DMA模块;所述的地址控制模块,负责生成卷积运算模块和池化模块访问内部RAM的地址;所述的内部RAM模块,负责存储卷积神经网络运算中的图像数据,权重数据,以及部分中间运算结果;所述的指令RAM模块,负责存储控制各个模块的指令数据。池化模块由8个相同的子模块组成,8个子模块并行计算,子模块结构包括一个数据比较器,一个计数器和两个先进先出存储FIFO,其中数据比较器负责将输入的数据依次比较,得到最大值结果,计数器负责记录输入比较器的数据个数,FIFO负责输入输出数据缓存。基于FPGA的神经网络加速方法,步骤如下:1)将离线开发好的神经网络模型和参数转换成加速器能识别的神经网络指令;2)将图像数据,权重数据和转换好的神经网络指令存入FPGA上的外部DDR中;3)通过CPU启动加速器,加速器的DMA模块首先启动,将部分图像数据搬运到内部RAM中,将指令数据搬运到指令RAM中;4)当图像数据和指令数据搬运完成后指令控制模块启动,从指令RAM中读取指令数据,分发给卷积运算模块和地址控制模块,卷积运算模块收到指令后,根据指令要求从内部RAM中读取图像数据同时从权重缓存单元weightbuffer中读取权重数据,并进行卷积运算,卷积运算后将数据送入线性整流函数RELU运算模块完成RELU运算;5)卷积以及RELU运算完成后,指令控制模块将后面的指令分发给池化模块和相应的地址控制模块,池化模块收到指令后,从内部RAM中读取第4步运算后的数据,根据指令要求进行最大或平均池化运算,运算后将结果写回内部RAM;6)反复执行步骤4和步骤5,直到整个卷积神经网络运算完成,然后将运算结果通过DMA搬运回DDR中,完成整个加速过程。本专利技术的特点及有益效果是:本专利技术提出的设计在卷积运算中实现了并行化计算,单个时钟周期能够完成512次乘累加。设计了片内存储结构,减少片外存储访问的同时实现了有效的数据复用,使用流水线技术实现了完整的卷积神经网路单层运算过程,提升了运算效率。附图说明:图1为本专利技术加速器整体的架构图;图2为本专利技术中的卷积运算模块结构图;图3为本专利技术中的PE模块结构图。具体实施方式本专利技术设计了一种基于FPGA的卷积神经网络加速器。本专利技术包括卷积运算模块,池化模块,DMA模块,指令控制模块,地址控制模块,内部RAM模块和指令RAM模块。本文提出的设计在卷积运算中实现了并行化计算,单个时钟周期能够完成512次乘累加。设计了片内存储结构,减少片外存储访问的同时实现了有效的数据复用,使用流水线技术实现了完整的卷积神经网路单层运算过程,提升了运算效率。提供以下解决方案:包括卷积运算模块,池化模块,DMA模块,指令控制模块,地址控制模块,内部RAM模块和指令RAM模块。其中所述的卷积运算模块,用于对卷积神经网路中的卷积层进行运算。卷积运算模块包括8个PE模块,和一个加法器,其中PE模块主要负责卷积运算中乘法运算,一部分加法运算,以及归一化(BatchNormalization)运算,加法器责将8个PE模块的计算结果与内部RAM输入进来的中间结果相累加。所述的的池化模块,用于对卷积神经网路中的池化层进行运算,其支持最大池化运算。池化模块由8个相同的子模块组成,8个子模块并行计算以达到提高计算效率的目的,子模块结构包括一个数据比较器,一个计数器和两个先进先出存储(FIFO),其中数据比较器负责将输入的数据依次比较,得到最大值结果,计数器负责记录输入比较器的数据个数,FIFO负责输入输出数据缓存。所述的的DMA模块,用于卷积神经网络运算中的数据搬运工作,DMA模块包括三个DMA通道,分别为DMA图像通道,DMA权重通道,DMA指令通道。DMA图像通道负责从外部DDR中搬运图像数据到内部RAM中,以及从内部RAM中搬运运算后的数据到外部DDR中。DMA权重通道负责从外部DDR中搬运权重数据到卷积运算模块中。DMA指令通道负责从外部DDR中搬运指令数据到指令RAM中。所述的指令控制模块,用于对指令的读取和分发工作,支持从指令RAM中读取数据,并将读取到的指令分发给卷积运算模块,池化模块,地址控制模块和DMA模块。所述的地址控制模块,负责生成卷积运算模块和池化模块访问内部RAM的地址;所述的内部RAM模块,负责存储卷积神经网络运算中的图像数据,权重数据,以及部分中间运算结果。所述的指令RAM模块,负责存储控制各个模块的指令数据。基于本专利技术架构的处理方法具体是:1.将离线开发好的神经网络模型和参数转换成加速器能识别的神经网络指令。2.将图像数据,权重数据和转换好的神经网络指本文档来自技高网...

【技术保护点】
1.一种基于FPGA的神经网络加速器,其特征是,包括卷积运算模块,池化模块,直接内存存取DMA模块,指令控制模块,地址控制模块,内部随机存取存储器RAM模块和指令RAM模块;/n其中所述的卷积运算模块,用于对卷积神经网路中的卷积层进行运算,卷积运算模块包括8个运算处理PE模块,和一个加法器,其中PE模块负责卷积运算中乘法运算,一部分加法运算,以及归一化运算,加法器责将8个PE模块的计算结果与内部RAM输入进来的中间结果相累加;/n所述的的池化模块,用于对卷积神经网路中的池化层进行运算;/n所述的的DMA模块,用于卷积神经网络运算中的数据搬运工作,DMA模块包括三个DMA通道,分别为DMA图像通道,DMA权重通道,DMA指令通道,DMA图像通道负责从双倍速率同步动态随机存储器DDR中搬运图像数据到内部RAM中,以及从内部RAM中搬运运算后的数据到外部DDR中,DMA权重通道负责从外部DDR中搬运权重数据到卷积运算模块中,DMA指令通道负责从外部DDR中搬运指令数据到指令RAM中;/n所述的指令控制模块,用于对指令的读取和分发工作,支持从指令RAM中读取数据,并将读取到的指令分发给卷积运算模块,池化模块,地址控制模块和DMA模块;/n所述的地址控制模块,负责生成卷积运算模块和池化模块访问内部RAM的地址;/n所述的内部RAM模块,负责存储卷积神经网络运算中的图像数据,权重数据,以及部分中间运算结果;/n所述的指令RAM模块,负责存储控制各个模块的指令数据。/n...

【技术特征摘要】
1.一种基于FPGA的神经网络加速器,其特征是,包括卷积运算模块,池化模块,直接内存存取DMA模块,指令控制模块,地址控制模块,内部随机存取存储器RAM模块和指令RAM模块;
其中所述的卷积运算模块,用于对卷积神经网路中的卷积层进行运算,卷积运算模块包括8个运算处理PE模块,和一个加法器,其中PE模块负责卷积运算中乘法运算,一部分加法运算,以及归一化运算,加法器责将8个PE模块的计算结果与内部RAM输入进来的中间结果相累加;
所述的的池化模块,用于对卷积神经网路中的池化层进行运算;
所述的的DMA模块,用于卷积神经网络运算中的数据搬运工作,DMA模块包括三个DMA通道,分别为DMA图像通道,DMA权重通道,DMA指令通道,DMA图像通道负责从双倍速率同步动态随机存储器DDR中搬运图像数据到内部RAM中,以及从内部RAM中搬运运算后的数据到外部DDR中,DMA权重通道负责从外部DDR中搬运权重数据到卷积运算模块中,DMA指令通道负责从外部DDR中搬运指令数据到指令RAM中;
所述的指令控制模块,用于对指令的读取和分发工作,支持从指令RAM中读取数据,并将读取到的指令分发给卷积运算模块,池化模块,地址控制模块和DMA模块;
所述的地址控制模块,负责生成卷积运算模块和池化模块访问内部RAM的地址;
所述的内部RAM模块,负责存储卷积神经网络运算中的图像数据,权重数据,以及部分中间运算结果;
所述的指令RAM模块,负责存储控制各个模块的指令数据。


2.如权利...

【专利技术属性】
技术研发人员:秦国轩李炳剑
申请(专利权)人:天津大学
类型:发明
国别省市:天津;12

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

1