[发明专利]基于OpenCL的FPGA一维信号识别神经网络加速方法有效
申请号: | 202110140882.1 | 申请日: | 2021-02-02 |
公开(公告)号: | CN112819140B | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 李建清;谢安东;王宏 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08;G06K9/00;G06F15/78 |
代理公司: | 北京卓恒知识产权代理事务所(特殊普通合伙) 11394 | 代理人: | 孔鹏 |
地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 opencl fpga 信号 识别 神经网络 加速 方法 | ||
1.基于OpenCL的FPGA一维信号识别神经网络加速方法,其特征在于:具体包括以下步骤:
S1)在CPU主机端构建一维卷积神经网络;
S2)读入一维信号数据和训练得到用于信号数据卷积的权重和偏置数据,读入到FPGA全局内存;
S3)每进入卷积神经网络一层,将计算所需的数据读入到FPGA全局内存,并调用相应的核函数在FGPA上做运算,运算结束后将结果返回CPU主机端;
S4)整个卷积神经网络运算结果返回CPU,并记录运算耗时;
所述步骤S3)中具体包括以下步骤:
3)计算卷积神经网络第一层卷积层;
3a)将信号数据经过边缘扩展处理后得到的信号数据,以及该卷积层用的权重和偏置数据读入到FPGA全局内存;
3b)调用卷积核函数让数据在FPGA内运算,该层卷积核大小为3*1,步长为1,featuremap从1到32,使用二维计算单元维度来进行一维数据的计算,外加8向量化并行优化加速,工作组大小设置为64;
3c)将运算结果传回到CPU端;
4)计算卷积神经网络第二层ReLU激活函数层;
4a)将步骤3)得到的数据读入到FPGA全局内存;
4b)调用ReLU激活函数公式y=max(0,x),让数据在FPGA内运算,使用一维计算单元维度来进行ReLU激活函数的计算,外加8向量化并行优化加速,工作组大小设置为64;
4c)将运算结果传回到CPU端;
5)计算卷积神经网络第三层卷积层,该层卷积核大小为3*1,步长为1,feature map从32到32,过程同步骤3);
6)计算卷积神经网络第四层ReLU激活函数层,过程同步骤4);
7)计算卷积神经网络第五层池化层;
7a)将步骤6)得到的数据读入到FPGA全局内存;
7b)调用池化层核函数让数据在FPGA内运算,采样尺寸为p=2*1,降采样层步长d=2,使用一维计算单元维度来进行池化层核函数的计算,外加8向量化并行优化加速,工作组大小设置为64;
7c)将运算结果传回到CPU端;
8)重复步骤5)~步骤7)所示操作6次;
9)计算卷积神经网络第二十一层卷积层,该层卷积核大小为3*1,步长为1,featuremap从32到32,过程同步骤3);
10)计算卷积神经网络第二十二层ReLU激活函数层,过程同步骤4);
11)重复步骤9)~步骤10)所示操作1次;
12)计算卷积神经网络的第二十五层上采样层;
12a)将步骤11)运算得到的数据读入到FPGA全局内存;
12b)调用上采样层核函数让数据在FPGA内运算,采样尺寸为p=2*1,上采样层步长d=2,使用一维计算单元维度来进行上采样层函数的计算,外加8向量化并行优化加速,工作组大小设置为64;
12c)将运算结果传回到CPU端;
13)重复步骤9)~步骤12)所示操作6次;
14)计算卷积神经网络第五十六层卷积层,该层卷积核大小为3*1,步长为1,featuremap从32到32,过程同步骤3);
15)计算卷积神经网络第五十七层ReLU激活函数层,过程同步骤4);
16)计算卷积神经网络第五十八层卷积层,该层卷积核大小为3*1,步长为1,featuremap从64到32,过程同步骤3);
17)计算卷积神经网络第五十九层ReLU激活函数层,过程同步骤4);
18)计算卷积神经网络第六十层卷积层,该层卷积核大小为3*1,步长为1,feature map从32到32,过程同步骤3);
19)计算卷积神经网络第六十一层ReLU激活函数层,过程同步骤4);
20)计算卷积神经网络第六十二层卷积层,该层卷积核大小为3*1,步长为1,featuremap从32到2,过程同步骤3);
21)计算卷积神经网络第六十三层ReLU激活函数层,过程同步骤4);
22)计算卷积神经网络第六十四层卷积层,该层卷积核大小为1*1,步长为1,featuremap从2到1,过程同步骤3);
23)计算卷积神经网络第六十五层sigmoid激活函数层;
23a)将步骤22)得到的数据读入到FPGA全局内存;
23b)调用sigmoid激活层核函数让数据在FPGA内运算使用一维计算单元维度来进行sigmoid激活函数的计算,外加8向量化并行优化来加速,工作组大小设置为64;
23c)将运算结果传回到CPU端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110140882.1/1.html,转载请声明来源钻瓜专利网。