[发明专利]一种基于FPGA的异构神经网络计算加速器设计方法有效
| 申请号: | 201911198194.X | 申请日: | 2019-11-29 |
| 公开(公告)号: | CN110991632B | 公开(公告)日: | 2023-05-23 |
| 发明(设计)人: | 李培睿;阮爱武;杜鹏 | 申请(专利权)人: | 电子科技大学 |
| 主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/0464;G06N3/048 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 fpga 神经网络 计算 加速器 设计 方法 | ||
1.一种基于FPGA的异构神经网络加速器设计方法,其特征在于,包括如下步骤:
步骤1、依据神经网络的规模进行整个平台的初始化并配置:首先CPU在载入该神经网络时需要获取神经网络的参数,包括卷积层、池化层、全连接层以及输入输出神经网络的计算层的层数信息,各个层的连接关系、计算规模、权重数值信息;
步骤2、基于步骤1基础上,根据网络规模初始化出两个卷积计算单元,并将位于外部存储器中相应位置的参数和输入数据放置到输入缓存中;
步骤3、调度控制单元在接收到CPU的指令后,将位于输入缓存中相应位置的参数载入到第一个空闲的卷积计算单元中;同时,从外部存储器中继续取出用于下一个卷积计算单元载入的参数存放到输入缓存中的对应位置;
步骤4、将步骤3中放在输入缓存中的参数载入到第二个卷积计算单元中,完成第二个卷积计算单元的参数配置;
步骤5、在进行步骤4的同时,将输入数据输送给卷积计算单元1的输入端口,并控制第一个卷积计算单元进行计算,得到计算结果,第一个卷积计算单元处于空闲状态;
步骤6、当检测到有卷积计算单元处于空闲状态后,就继续从外部存储器中对应位置取出用于下一个卷积计算单元载入的参数放置到输入缓存中;
步骤7、根据CPU获取的网络规模数据和当前计算的完成度作对比,如果计算尚未完成,则将输出结果输送到第二个卷积计算单元的输入端口,并控制第二个卷积计算单元进行计算,得到计算结果,第二个卷积计算单元处于空闲状态;
步骤8、在进行步骤7的同时,持续监测卷积计算单元是否完成计算并处于空闲状态,如果存在空闲状态,则继续从外部存储器中对应位置取出参数:卷积层、池化层、全连接层以及输入输出神经网络相关计算层的层数信息、各个层的连接关系、计算规模、权重数值信息,放置到输入缓存中;
步骤9、在步骤7满足的条件下,重复步骤3~8所示的操作,直到当前网络的计算完成度到达100%,此时将输出的结果输送给输出缓存,并反馈CPU计算结束,等待外部存储器读取最终的计算结果并存储。
2.按照权利要求1所述的一种基于FPGA的异构神经网络加速器设计方法,其特征在于,用于进行卷积神经网络计算的卷积计算单元为完成一次完整卷积计算的最小单元,包括卷积运算电路,激活函数运算电路和池化全连接运算电路,各个电路参数和规模均可配置,应按照实际卷积神经网络的具体需求而定。
3.按照权利要求1所述的一种基于FPGA的异构神经网络加速器设计方法,其特征在于,在CPU+FPGA平台下运行该方法,CPU作为总控制设备同时负责外部存储设备资源配置,输入输出数据的存取以及总体调度,FPGA作为计算设备及从控制设备,同时负责卷积计算单元的计算和调度操作,并负责输入缓存和输出缓存读取和存储。
4.按照权利要求1所述的一种基于FPGA的异构神经网络加速器设计方法,其特征在于,
FPGA中用于进行卷积神经网络计算的卷积计算单元需要交替进行数据的载入和计算,同时保证一个卷积计算单元的计算结束后再启动另一个。
5.按照权利要求1所述的一种基于FPGA的异构神经网络加速器设计方法,其特征在于,
用于CPU,FPGA和外部存储设备之间通信的总线协议并不仅限于一种总线协议,也包括PCI总线,AXI总线在内的任何总线协议。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911198194.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种网格垫布及其制作方法
- 下一篇:抹平装置及抹平机器人





