基于OpenCL的FPGA一维信号识别神经网络加速方法技术

技术编号:28500547 阅读:51 留言:0更新日期:2021-05-19 22:43
一种基于OpenCL标准在FPGA上对信号识别卷积神经网络的加速方法,在CPU主机端构建一维卷积神经网络;一维信号数据和训练得到用于信号数据卷积的权重和偏置数据,读入到FPGA全局内存;每进入卷积神经网络一层,将计算所需数据读入到FPGA全局内存,并调用相应核函数在FGPA上做运算,运算结束后将结果返回CPU主机端;整个卷积神经网络运算结果返回CPU,并记录运算耗时。本发明专利技术CPU+FPGA异构架构能更好的实现高性能并行计算,同时FPGA具有很大的数据吞吐量,对浮点的计算能力高于CPU的计算能力,更适合数据密集型计算任务,在保持神经网络算法精确度的情况下,大幅提高了卷积神经网络算法速度。速度。速度。

【技术实现步骤摘要】
基于OpenCL的FPGA一维信号识别神经网络加速方法


[0001]本专利技术属于无线通信
,特别涉及一种基于OpenCL的FPGA异构平台对一维信号识别的卷积神经网络的加速方法。

技术介绍

[0002]近年来,通信技术迅猛发展,为了满足用户的不同需求,充分利用通信资源,提高频谱利用率,通信信号的体制、调制方式变得多样化和复杂化,同一空间的信号也变得越来越密集。在电子战通信情报截获接收机的设计中,获得接收的通信信号的调制方式,为解调器选择解调算法提供参考依据,有助于电子战中最佳干扰样式或干扰抵消算法的选择,以保证友方通信,同时破坏和抑制敌方通信,实现通信对抗的目的。
[0003]基于深度学习的信号识别已经逐渐得到应用,深度学习算法具有准确率高、算法易于训练等特征,传统的深度学习算法主要计算工具是CPU,因为CPU的通用性好,硬件架构已经成熟。由于规模不断壮大的可训练数据集和不断创新的神经网络结构,卷积神经网络的准确度和性能都得到了显着提高,但是随着卷积神经网络网络结构变得越来越复杂,对于运行神经网络的硬件的计算能力和能耗的要求也越来越高,从而诞生了并行计算加速系统。虽然基于ASIC的并行计算加速器具有更高的计算效率,但其本身灵活性不足,面对多种并行计算算法的时候,FPGA可重构性的特定更能适应。
[0004]FPGA具有可编程、高集成度、高速和高可靠性等优点,已不断被尝试用来加速神经网络。OpenCL是基于传统C语言的异构计算语言,可运行在CPU、GPU、PFGA和DSP等加速处理器上,具有较高的语言抽象层次,使用OpenCL开发FPGA既保持了HLS语言开发难度低的特性,又因OpenCL在编译过程中采用细粒度的流水线的模式进行编译,很好地利用了FPGA流水线的优势。但是由于图计算中常见的图的Power

Law特性、图节点之间的通信、随机访存等问题,都会导致系统性能下降。如何使用OpenCL开发一个基于FPGA的高效的图计算系统显得尤为困难和重要。

技术实现思路

[0005]本专利技术要解决的技术问题在于提供一种基于OpenCL的FPGA一维信号识别神经网络加速方法,该加速方法解决了现有技术中存在的不足,能够在异构设备上实现对信号数据进行识别。
[0006]为了解决上述技术问题,本专利技术通过以下方式来实现:
[0007]基于OpenCL的FPGA一维信号识别神经网络加速方法,具体包括以下步骤:
[0008]S1)在CPU主机端构建一维卷积神经网络;
[0009]S2)读入一维信号数据和训练得到用于信号数据卷积的权重和偏置数据,读入到FPGA全局内存;
[0010]S3)每进入卷积神经网络一层,将计算所需的数据读入到FPGA全局内存,并调用相应的核函数在FGPA上做运算,运算结束后将结果返回CPU主机端;
[0011]S4)整个卷积神经网络运算结果返回CPU,并记录运算耗时。
[0012]优选的,本专利技术步骤3)卷积神经网络中,卷积层的卷积核大小为3*1,步长为1,feature map从1到32,使用二维计算单元维度来进行一维数据的计算,外加8向量化并行优化加速,工作组大小设置为64;
[0013]降采样层的采样尺寸为采样尺寸为p=2*1,降采样层步长d=2;上采样层的采样尺寸为p=2*1,上采样层步长d=2;均使用一维计算单元维度来进行核函数的计算,外加8向量化并行优化加速,工作组大小设置为64;
[0014]所对应的ReLU激活函数公式y=max(0,x),sigmoid激活函数公式y=1/(1+e

x
;),均使用一维计算单元维度来进行数据的计算,外加8向量化并行优化来加速,工作组大小设置为64。
[0015]与现有技术相比,本专利技术具有的有益效果:
[0016]本专利技术利用OpenCL面向异构系统通用目的并行编程标准,构建CPU+FPGA异构平台,主机CPU负责完成任务的调度和分配,FPGA完成数据密集型的任务计算,通过对卷积神经网络的数据访存策略进行优化,对并行的粒度进行合适的选择,来完成卷积神经网络在异构架构下的并行加速。
[0017]由于对卷积神经网络算法进行了FPGA并行加速计算,与单一架构CPU串行计算相比,CPU+FPGA异构架构能够更好的实现高性能并行计算,同时由于FPGA具有很大的数据吞吐量,对浮点的计算能力要远远高于CPU对浮点的计算能力,更适合数据密集型计算任务,本申请在保持卷积神经网络算法精确度能力不变的情况下,大幅提高了卷积神经网络算法的计算速度。
附图说明
[0018]图1是本专利技术的流程示意图;
[0019]图2是本专利技术的卷积神经网络结构示意图。
具体实施方式
[0020]下面结合附图和具体实施例对本专利技术的具体实施方式作进一步详细的说明。
[0021]如图1~2所示,基于OpenCL的FPGA一维信号识别神经网络加速方法,具体包括以下步骤:
[0022]1)在CPU主机端构建一维卷积神经网络;
[0023]2)将大小为8192*1的一维信号数据和训练得到用于信号数据卷积的权重和偏置数据从文本文件读入到主机内存中;
[0024]3)计算卷积神经网络第一层卷积层:
[0025]3a)将步骤2)中信号数据经过边缘扩展处理后得到的信号数据,以及该卷积层用的权重和偏置数据读入到FPGA全局内存;
[0026]3b)调用卷积核函数让数据在FPGA内运算,该层卷积核大小为3*1,步长为1,feature map从1到32,使用二维计算单元维度来进行一维数据的计算,外加8向量化并行优化加速,工作组大小设置为64;
[0027]其中卷积核函数如下:
[0028][0029]3c)将运算结果传回到CPU端。
[0030]4)计算卷积神经网络第二层ReLU激活函数层:
[0031]4a)将步骤3)得到的数据读入到FPGA全局内存;
[0032]4b)调用ReLU激活函数公式y=max(0,x),让数据在FPGA内运算,使用一维计算单元维度来进行ReLU激活函数的计算,外加8向量化并行优化加速,工作组大小设置为64;
[0033]其中ReLU激活函数如下:
[0034][0035]4c)将运算结果传回到CPU端。
[0036]5)计算卷积神经网络第三层卷积层,该层卷积核大小为3*1,步长为1,feature map从32到32,过程同步骤3);
[0037]6)计算卷积神经网络第四层ReLU激活函数层,过程同步骤4);
[0038]7)计算卷积神经网络第五层池化层:
[0039]7a)将步骤6)得到的数据读入到FPGA全局内存;
[0040]7b)调用池化层核函数让数据在FPGA内运算,采样尺寸为p=2*1,降采样层步长d=2,使用一维计算单元维度来进行池化层核函数的计算,外加8向量化并行优化加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于OpenCL的FPGA一维信号识别神经网络加速方法,其特征在于:具体包括以下步骤:S1)在CPU主机端构建一维卷积神经网络;S2)读入一维信号数据和训练得到用于信号数据卷积的权重和偏置数据,读入到FPGA全局内存;S3)每进入卷积神经网络一层,将计算所需的数据读入到FPGA全局内存,并调用相应的核函数在FGPA上做运算,运算结束后将结果返回CPU主机端;S4)整个卷积神经网络运算结果返回CPU,并记录运算耗时。2.如权利要求1所述的基于OpenCL的FPGA一维信号识别神经网络加速方法,其特征在于:所述步骤S3)中具体包括以下步骤:3)计算卷积神经网络第一层卷积层:3a)将信号数据经过边缘扩展处理后得到的信号数据,以及该卷积层用的权重和偏置数据读入到FPGA全局内存;3b)调用卷积核函数让数据在FPGA内运算,该层卷积核大小为3*1,步长为1,feature map从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,featu...

【专利技术属性】
技术研发人员:李建清谢安东王宏
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1