[发明专利]一种基于FPGA的软硬件协同的加速方法在审
申请号: | 201911350336.X | 申请日: | 2019-12-24 |
公开(公告)号: | CN111178518A | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 颜成钢;李扬;刘炳涛;孙垚棋;张继勇;张勇东;沈韬 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杨舟涛 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 软硬件 协同 加速 方法 | ||
1.一种基于FPGA的软硬件协同的加速方法,其特征在于,具体步骤如下:
步骤(1).通过数据量化方式对深度学习模型网络参数进行压缩;
首先分析网络参数的取值范围,确定定点数据所需的位宽数据;
记录原浮点数据,选择不同精度进行计算获得不同精度对应的量化数据,将获得的量化数据与原浮点数据进行比较,统计量化数据与原浮点数据间的误差,选择误差最小的量化数据采用的精度作为备选精度,具体公式如下:
2w-p-1>max(|Dmax|×2p,|Dmin|×2p) (1)
式中,p为量化精度;w为量化位宽;D表示量化前的浮点数据;
采用获得的备选精度和位宽数据,将备选精度对应的量化数据代替原浮点数据,通过测试选取相比于原网络精度下降较小的一组量化数据作为硬件所采用的定点数据,最后将获得的定点数据储存在片外储存器内,完成深度学习模型网络参数的压缩;
步骤(2).设计神经网络加速器;
神经网络加速器包;
AXI4总线接口,是基于AXI总线协议的面向地址映射的高性能总线接口,是通用的总线接口,加速器通过AXI4总线接口可以挂载到任意使用AXI4协议的总线设备上工作;根据AXI总线协议,加速器和FPGA的PS(processing system)采用的是vaild和ready握手信号原则,保证数据和命令传输的正确性;
数据缓存模块包括待计算数据缓存区、卷积结果缓存区、输出结果缓存区;所述的卷积结果缓存区采用的是双BRAM缓存结构,所述的输出结果缓存区采用先入先出队列(FIFO)的执行方法;
卷积计算模块连接待计算数据缓存区和卷积结果缓存区,为卷积神经网络的主体;卷积神经网络的的主要计算在卷积运算通路完成,由于计算量大,故采用流水线并行乘加结构,对单个N*N卷积部分的所有的乘加操作进行全并行处理,可在一个时钟周期内完成N*N次乘加操作;同时引入Line Buffer作为输入缓存,可以模拟卷积窗口的滑动过程,最大限度上复用每一个输入像素,大幅减少RAM中输入特征图的重复读取次数,并省略掉了部分寻址逻辑,从而达到节省功耗与硬件资源的目的;
数据处理模块位于卷积结果缓存区与输出结果缓存区之间,负责对卷积结果数据进行处理,将获得的输出结果输送至输出结果缓存区内;数据处理模块包括标准化模块、激活函数模块和池化单元模块,卷积结果以流水线的方式依次经过标准化模块、激活函数模块和池化单元模块的处理,其中标准化模块采用标准化系数乘加操作,激活函数模块采用ReLU函数运算,池化单元模块采用最大值池化逻辑;
步骤(3).软硬件协同工作,将经过量化得到的定点数据用于神经网络加速器的inference,其运行过程如下:
片外处理器通过AXI总线将片外存储器DDR中的定点数据传输给神经网络加速器,片外处理器与神经网络加速器之间采用AXI4总线协议,为了保证数据的正确传输,采用vaild和ready握手信号,当vaild和ready同时有效时,数据进入待计算数据缓存区,然后再以数据流的形式发送给卷积计算模块,卷积计算模块将卷积结果数据发生至卷积结果缓存区,卷积结果缓存区将卷积结果数据发送给数据处理模块进行处理;当通过数据处理模块处理过的数据全部被读出时,返回给片外处理器结果准备完成信号,之后由片外处理器通过AXI4接口从输出结果缓存区中读出结果数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911350336.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种核桃热风干燥工艺
- 下一篇:一种基于人脸识别的区域警戒方法