一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于ZYNQ的信号调制识别前向推理加速方法及系统

2023-09-15 07:28:23 来源:中国专利 TAG:

基于zynq的信号调制识别前向推理加速方法及系统
技术领域
1.本发明涉及信号调制识别技术领域,特别涉及一种基于zynq的信号调制识别前向推理加速方法及系统。


背景技术:

2.传统上,信号调制识别主要采用两种算法,第一种是似然比算法,以贝叶斯理论为基础,通过将似然函数的比值与最小误差的阈值进行比较,判断信号的调制方式。然而,这种方法计算较为复杂,且需要一些先验信息,而大多数场景下能够获取的先验信息非常少。第二种是基于特征的算法,主要分两个步骤,第一步是提取特征(瞬时振幅、频率、相位、高阶矩、高阶统计量等),第二步是决策,采用的方法包括人工神经网络、无监督聚类、支持向量机和决策树等。然而,特征提取很大程度上依赖于专家经验,如果提取的特征不合理,识别性能会大打折扣。
3.近几年,快速发展的深度学习技术在各领域取得了突破性的成绩。深度学习技术能够从接收到的数据中提取出高维度的信息,找出输入与输出的对应关系,并且具有极强的泛化能力。因此,深度学习的应用越来越受到重视。在信号调制识别领域,目前研究者主要聚焦于网络模型的设计,将优化目标设定为提高网络精度,加快网络收敛速度,减小训练时间,在实时场景下加速效果不理想,进而影响深度学习算法在信号调制识别实时场景下应用。且现有方案中针对实时场景下的网络前向推理运算的加速研究非常少。


技术实现要素:

4.为此,本发明提供一种基于zynq的信号调制识别前向推理加速方法及系统,解决深度学习方法在信号调制识别实际场景下实时性差的情形。
5.按照本发明所提供的设计方案,提供一种基于zynq的信号调制识别前向推理加速方法,包含:
6.在处理系统ps侧,由双核arm处理器通过调用dma来读取存储在外部存储器上的待识别信号iq数据,并将待识别信号iq数据写入可编程逻辑pl侧缓冲区;
7.在可编程逻辑pl侧,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,接收并执行处理系统ps侧对可编程逻辑pl侧前向推理中的运算资源调度。
8.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,还包含:处理系统ps侧和可编程逻辑pl侧通过axi总线来读取并写入待识别信号iq数据,且处理系统ps侧通过axi总线将控制调度指令传输至可编程逻辑pl侧。
9.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,包含:
10.首先,构建用于信号调制识别的卷积神经网络模型,并根据预设的信号样本数据集对卷积神经网络模型进行训练;
11.接着,利用高级语言表示训练后的卷积神经网络模型,并通过高层次综合工具对
训练后的卷积神经网络模型进行并行优化处理,以将优化后的卷积神经网络模型转化为硬件ip核;
12.然后,将硬件ip核部署到zynq片上的可编程逻辑pl侧,以识别并输出处理系统ps侧读取的待识别信号iq数据。
13.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,根据预设的信号样本数据集对卷积神经网络模型进行训练,包含:
14.首先,利用开源的软件无线电平台模拟并生成仿真信号,其中,仿真信号包含预设类型的数字调制信号和模拟调制信号,且每种类型的调制信号均含有n种信噪比,每种信噪比有m个子样本,每个子样本均含有i路和q路信号。
15.接着,依据预设比例将不同信噪比下每种调制类型的仿真信号划分为训练数据集和测试数据集;
16.然后,基于预设的交叉熵损失函数并利用训练数据集和测试数据集对卷积神经网络模型进行训练优化,以获取训练后的卷积神经网络模型。
17.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,利用高级语言表示训练后的卷积神经网络模型,并通过高层次综合工具对训练后的卷积神经网络模型进行并行优化处理,包含:
18.在高层次综合工具hls中,利用c或c 高级语言表示训练后的卷积神经网络模型,以将卷积神经网络模型的高级语言表示综合为对应寄存器传输级实现;并利用预设特定指令约束调整硬件架构。
19.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,利用预设特定指令约束调整硬件架构,包含:在卷积神经网络中高级语言表示并行优化的卷积运算的输入通道和输出通道两个维度上的嵌套循环进行展开,并设置卷积神经网络中卷积运算其他嵌套循环不同循环迭代之间以流水方式运行。
20.作为本发明基于zynq的信号调制识别前向推理加速方法,进一步地,在卷积神经网络中高级语言表示并行优化的卷积运算的输入通道和输出通道两个维度上的嵌套循环进行展开,包含:设定卷积运算的输入通道数和输出通道数分别为n、m,卷积运算并行优化结构设定为:采用n个乘法器并行处理不同输入通道的输入特征与其对应权重的乘法运算,将计算得到的n个乘积以加法树的形式累加,以获取对应的输出通道卷积结果;将卷积运算并行优化结构复制m份,以获取并行输出的m个不同输出通道的卷积结果。
21.进一步地,本发明还提供一种基于zynq的信号调制识别前向推理加速系统,包含:数据读取模块和并行加速模块,其中,
22.数据读取模块,用于在处理系统ps侧,由双核arm处理器通过调用dma来读取存储在外部存储器上的待识别信号iq数据,并将待识别信号iq数据写入可编程逻辑pl侧缓冲区;
23.并行加速模块,用于在可编程逻辑pl侧,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,接收并执行处理系统ps侧对可编程逻辑pl侧前向推理中的运算资源调度。
24.本发明的有益效果:
25.本发明针对信号调制识别的前向推理加速问题,通过设计用于信号调制识别的网
络模型及基于高级语言来表示训练后的网络模型,通过高层次综合工具对网络模型高级语言表示进行硬件ip优化,使其能够在zynq可扩展平台上来实现实时信号场景下高效、准确、快速的信号调制识别。并进一步通过对比实验验证,本案方案在更低延迟和能耗的同时,具有显著的能量效率优势,在实时信号调制识别场景下具有较好的应用前景。
附图说明:
26.图1为实施例中基于zynq的信号调制识别前向推理加速流程示意;
27.图2为实施例中卷积运算中fpga并行展开结构示意;
28.图3为实施例中信号调制识别的前向推理加速原理示意;
29.图4为实施例中zynq平台架构示意。
具体实施方式:
30.为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
31.zynq可扩展平台为传统意义上的fpga 双核arm的异构架构芯片,两者可以相互调用,相互配合,取长补短。人工智能深度学习算法搜索的目的是找到问题空间的路径,可通过前后推理进行搜索。前后推理两者之间的显着差异在于前向推理始于朝向目标的初始数据。相反,后向推理以相反的方式工作,其目的是在给定结果下确定初始事实和信息。正如背景技术所述,针对实时场景下的网络前向推理运算的加速,本发明实施例,提供一种基于zynq的信号调制识别前向推理加速方法,具体过程可设计为包含如下内容:
32.s101、在处理系统ps侧,由双核arm处理器通过调用dma来读取存储在外部存储器上的待识别信号iq数据,并将待识别信号iq数据写入可编程逻辑pl侧缓冲区。
33.zynq平台系列的可扩展处理平台,在视频监控、汽车驾驶辅助、工厂自动化等高端嵌入应用场景下具有广泛应用。该系列可扩展处理平台包含非常丰富的硬件资源。本案实施例中,利用处理系统ps实时并高速读写待识别的目标信号iq数据,以控制并调度相应的可编程逻辑pl侧的乘法器等运算处理资源。
34.进一步,还可设置在处理系统ps侧和可编程逻辑pl侧通过axi总线来读取并写入待识别信号iq数据,且处理系统ps侧通过axi总线将控制调度指令传输至可编程逻辑pl侧。通过axi总线中的axi协议实现ps侧对pl侧的读写控制,完成信号调制识别前向推理加速中的数据通信。
35.s102、在可编程逻辑pl侧,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,接收并执行处理系统ps侧对可编程逻辑pl侧前向推理中的运算资源调度。
36.其中,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,可设计为包含如下内容:
37.首先,构建用于信号调制识别的卷积神经网络模型,并根据预设的信号样本数据集对卷积神经网络模型进行训练;
38.接着,利用高级语言表示训练后的卷积神经网络模型,并通过高层次综合工具对训练后的卷积神经网络模型进行并行优化处理,以将优化后的卷积神经网络模型转化为硬
件ip核;
39.然后,将硬件ip核部署到zynq片上的可编程逻辑pl侧,以识别并输出处理系统ps侧读取的待识别信号iq数据。
40.具体地,根据预设的信号样本数据集对卷积神经网络模型进行训练,可设计为包含如下内容:
41.首先,利用开源的软件无线电平台模拟并生成仿真信号,其中,仿真信号包含预设类型的数字调制信号和模拟调制信号,且每种类型的调制信号均含有n种信噪比,每种信噪比有m个子样本,每个子样本均含有i路和q路信号。
42.接着,依据预设比例将不同信噪比下每种调制类型的仿真信号划分为训练数据集和测试数据集;
43.然后,基于预设的交叉熵损失函数并利用训练数据集和测试数据集对卷积神经网络模型进行训练优化,以获取训练后的卷积神经网络模型。
44.采用公开数据集radioml2016.10a构建一个卷积神经网络模型,以实现对11种信号的实时调制识别。根据网络模型进行硬件ip核转化,并可采用循环优化、兵乓缓存、完全片上映射等策略加速运算。将网络模型部署到zynq可扩展平台,在该平台上将接收到的目标信号(iq样本)实时识别为不同的调制类型。
45.rml2016.10a数据集由gnu radio软件生成,包含8种数字调制和3种模拟调制,其中,每种调制信号设置为包含-20db到18db(间隔为2)共20种信噪比,每种信噪比有1000个子样本,每个子样本包含i和q两路信号,每路信号包含128个采样点。由于0db以下信号受噪声干扰使得神经网络难以从中提取出有价值的信息,可只使用rml2016.10a数据集中信噪比在0db以上的数据进行训练,并划分不同信噪比下每种调制类型中80%的数据为训练数据,20%为测试数据。
46.基于公开rml2016.10a数据集自行设计网络模型。网络结构上,首先使用一个二维卷积对iq两路进行融合,之后连续使用三个一维卷积进一步提取特征,在卷积层之后使用全局最大池化进行下采样,最后使用两个全连接层作为分类器,激活函数均采用relu函数。本案方案中的网络可在tensorflow框架下进行训练,采用交叉熵损失函数计算梯度,利用adam算法优化学习率。模型训练500个epoch,在测试集上准确率达到84.30%。训练过程中网络模型的参数可如表1所示。
47.表1
[0048][0049]
在高层次综合工具hls中,可利用c或c 等高级语言表示训练后的卷积神经网络
模型,以将卷积神经网络模型的高级语言表示综合为对应寄存器传输级实现;并利用预设特定指令约束调整硬件架构。
[0050]
本案实施例中,采用高层次综合(high-level synthesis,hls)的方法设计硬件ip,通过循环展开、循环流水、完全片上映射等优化方法加快运算速度。通过高层次综合工具,可只需要编写c、c 等高级语言代码完成程序功能,就能将高级语言综合成对应的寄存器传输级实现,还可以采用特定的指令约束来指示和调整高层次综合工具生成特定的硬件架构。
[0051]
其中,利用预设特定指令约束调整硬件架构,包含:在卷积神经网络中高级语言表示并行优化的卷积运算的输入通道和输出通道两个维度上的嵌套循环进行展开,并设置卷积神经网络中卷积运算其他嵌套循环不同循环迭代之间以流水方式运行。
[0052]
卷积神经网络中主要的运算在卷积层,而卷积运算可以表示为6重嵌套循环的形式,在循环的最内层完成乘累加运算。在并行优化时如果展开的维度上数据存在依赖关系,则会影响最后的加速效果,通过对卷积运算代码的分析,发现卷积的输入通道和输出通道在计算过程中不存在数据依赖关系,因此,本案实施例中选择在卷积的输入通道和输出通道两个维度进行展开。
[0053]
假设某卷积层的输入通道数为n,输出通道数为m,设计时,采用n个乘法器并行处理不同输入通道的输入特征与其对应权重的乘法,然后将计算得到的n个乘积以加法树的形式累加到一起,即可得到一个输出通道的卷积结果。对于这种电路结构再复制m份,从而可以并行输出m个不同输出通道的卷积结果。其fpga并行展开结构可如图2所示。输入通道和输出通道可以完全展开,然而另外四重循环仍然是顺序执行的。进一步地,可以通过xilinx hls中的pragma hls pipeline指令将另外四重嵌套循环流水化起来,即将不同循环迭代之间以流水的方式运行。对所有的卷积层都可采用这种方式并行加速。
[0054]
由于fpga硬件资源限制,加速器采用通用卷积加速阵列,神经网络的各层依次在加速阵列中执行,采用这种方式时,需要在片上缓存与片外ddr间频繁交换数据,增加片外访存压力,影响数据的吞吐率提升。神经网络加速器的片外访存操作比计算的功耗更高,因此,减少加速器的片外访存是提高吞吐量和能量效率的关键。
[0055]
由于网络规模不大,本案实施例中,参见图3所示,可将所有的网络层都部署到片上,为每一层实现特定的硬件模块,权重数据和各层的中间数据都存储在片上缓存区,并且采用乒乓缓存在数据搬运和卷积计算之间实现粗粒度流水线。前向推理时,只需从片外读取输入信号,即可在片上完成前向推理运算,直到输出识别结果。
[0056]
硬件实现中,参见图4所示,选择采用xilinx zynq芯片完成网络模型的部署,在zynq芯片中,硬件资源被划分为由双核arm cortex-a9为核心构成的处理系统(processing system,ps)和由fpga组成的可编程逻辑(programming logic,pl)两大部分。ps端可以完成系统的总体控制与调度,axi lite slave总线用于命令传输,axi master总线用于对输入、输出数据的高速读写,在pl端实现神经网络前向推理加速器,并作为axi总线上的外设接受ps的调度。在ps端编写驱动程序,通过axi lite slave总线将控制与调度指令传输到pl端,实现对系统的总体控制。信号iq数据存储在片外存储区中,识别时,由ps端控制直接内存访问dma(direct memory access,是计算机总线架构提供的功能,能使数据从附加设备如磁盘驱动器直接发送到计算机主板的内存上)完成外部存储器与pl端的缓存区之间数据的高
速读写,在pl端(fpga部分)实现神经网络前向推理加速。
[0057]
进一步地,基于上述的方法,本发明实施例还提供一种基于zynq的信号调制识别前向推理加速系统,包含:数据读取模块和并行加速模块,其中,
[0058]
数据读取模块,用于在处理系统ps侧,由双核arm处理器通过调用dma来读取存储在外部存储器上的待识别信号iq数据,并将待识别信号iq数据写入可编程逻辑pl侧缓冲区;
[0059]
并行加速模块,用于在可编程逻辑pl侧,利用预设的训练后的卷积神经网络模型对待识别信号iq数据进行前向推理,接收并执行处理系统ps侧对可编程逻辑pl侧前向推理中的运算资源调度。
[0060]
为验证本案方案有效性,下面结合实验数据做进一步解释说明:
[0061]
选用mz7100开发板,芯片型号为xilinx公司的xc7z100-ffg900-2,使用vivado hls2017.4设计实现加速器ip,该工具能够通过c、c 代码生成硬件ip核,使用vivado2017.4完成综合、布局、布线以及bit文件生成。
[0062]
与两个嵌入式平台(分别是zynq7100上的arm cortex-a9处理器和英伟达的jetson nano开发套件128核maxwell gpu)进行比较。当调制识别网络在arm cortex-a9上运行时,每个样本的识别耗时17.441ms,功耗为30.78mj。而在jetson nano上运行时,每个样本的识别耗时7.694ms,功耗为40.09mj。
[0063]
表2
[0064][0065]
从表2对比结果可以看出,与其它平台相比,本案中神经网络前向推理加速方案完成一次样本识别耗时仅为152μm,功耗仅为0.625mj,能够实现更低的延迟和能耗,具有显著的能量效率优势,为基于深度学习技术的信号调制识别的应用落地实现提供参考。
[0066]
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
[0067]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0068]
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
[0069]
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘
等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0070]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表