[发明专利]基于FPGA的神经网络加速方法和加速器有效
申请号: | 201910845286.6 | 申请日: | 2019-09-08 |
公开(公告)号: | CN110852428B | 公开(公告)日: | 2023-10-27 |
发明(设计)人: | 秦国轩;李炳剑 | 申请(专利权)人: | 天津大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/0464 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 刘国威 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 神经网络 加速 方法 加速器 | ||
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.如权利要求1所述的基于FPGA的神经网络加速器,其特征是,池化模块由8个相同的子模块组成,8个子模块并行计算,子模块结构包括一个数据比较器,一个计数器和两个先进先出存储FIFO,其中数据比较器负责将输入的数据依次比较,得到最大值结果,计数器负责记录输入比较器的数据个数,FIFO负责输入输出数据缓存。
3.一种基于FPGA的神经网络加速方法,其特征是,步骤如下:
1)将离线开发好的神经网络模型和参数转换成加速器能识别的神经网络指令;
2)将图像数据,权重数据和转换好的神经网络指令存入FPGA上的外部DDR中;
3)通过CPU启动加速器,加速器的DMA模块首先启动,将部分图像数据搬运到内部RAM中,将指令数据搬运到指令RAM中;
4)当图像数据和指令数据搬运完成后指令控制模块启动,从指令RAM中读取指令数据,分发给卷积运算模块和地址控制模块,卷积运算模块收到指令后,根据指令要求从内部RAM中读取图像数据同时从权重缓存单元weight buffer中读取权重数据,并进行卷积运算,卷积运算后将数据送入线性整流函数RELU运算模块完成RELU运算;
5)卷积以及RELU运算完成后,指令控制模块将后面的指令分发给池化模块和相应的地址控制模块,池化模块收到指令后,从内部RAM中读取第4步运算后的数据,根据指令要求进行最大或平均池化运算,运算后将结果写回内部RAM;
6)反复执行步骤4和步骤5,直到整个卷积神经网络运算完成,然后将运算结果通过DMA搬运回DDR中,完成整个加速过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910845286.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种工件打孔用自清洁装置
- 下一篇:基于多种特征融合的语音篡改检测方法