一种基于GPU的导航信号模拟源通用架构方法转让专利

申请号 : CN201810313594.X

文献号 : CN108519609B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐小妹王雷李柏渝黄仰博牟卫华王飞雪刘嬴翔肖志斌楼生强黄龙

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明属于仿真模拟领域,涉及一种基于GPU的导航信号模拟源通用架构方法。该方法包括步骤:(S1)构建离散多通道导航信号模型,并通过短时分段多项式对信号的伪距变化量和载波相位变化量进行插值;(S2)设置线程块总数M、每个线程块中线程数N和线程块内部循环次数K,并设置约束条件;(S3)由GPU根据实际需求配置所需的信号通道数,并生成对应通道数的数字信号,将采样值进行合路;(S4)选取满足最大活动Warp数的N值,对内核运行时间进行测试,选择运行时间最短的N值与K值;本发明实现了信号生成通道数根据外部需求参数化配置,采用寄存器对多通道信号采样值进行合路,对于多通道导航信号模拟具有重大意义。

权利要求 :

1.一种基于GPU的导航信号模拟源通用架构方法,其特征在于,包括以下步骤:(S1)构建离散多通道导航信号模型,并通过短时分段多项式对信号的伪距和载波相位进行插值;

(S2)设置三个参数,分别为线程块总数M、每个线程块中线程数N和线程块内部循环次数K,并设置三个参数M、N、K的约束条件,依据线程块总数M、每个线程块中线程数N和线程块内部循环次数K组织GPU的线程块;

(S3)由GPU根据实际需求配置所需的信号通道数,并生成对应通道数的数字信号,将相同采样时刻每个通道的信号的采样值通过内部寄存器进行合路;

(S4)首先选取满足最大活动Warp数的N值;选择Kmax值为 num为所需生成的信号采样点数量,M取值应不小于SM数量,Mmin表示M的最小值;K值在1~Kmax中进行遍历取值,对内核在计算相同采样点数的信号条件下所需的运行时间进行测试,选择运行时间最短的N值与K值的组合作为实际运行的参数;Warp表示线程粒度,SM表示流多处理器。

2.如权利要求1所述的一种基于GPU的导航信号模拟源通用架构方法,其特征在于,所述步骤(S1)中构建离散多通道导航信号模型具体过程为:设数字信号模型如下:

其中s(t)为数字信号,A(t)为信号幅度,C(t)为扩频伪码,D(t)为调制的电文信息,SC(t)为调制的子载波,t表示时间,ω为载波角频率,ρp为伪距,ρc为载波相位,为初始载波相位;

则离散多通道导航信号模型如下:

其中S表示离散多通道导航信号,num为所需生成的信号采样点数量,L为信号通道数量,δ(t)为表示单位冲击函数,△t为一个采样点的时间间隔,sl(t)表示信号s(t)在l通道中的形式。

3.如权利要求1所述的一种基于GPU的导航信号模拟源通用架构方法,其特征在于,所述多个通道的信号通过寄存器进行合路的具体过程为:设信号通道数为L个,则每个线程计算L个信号K个采样时刻的信号值,相同采样时刻L个信号的采样值通过内部寄存器进行合路;具体信号合成公式如下:L为信号通道数量,δ(t)为表示单位冲击函数,△t为一个采样点的时间间隔,sl(t)表示信号s(t)在l通道中的形式。

4.如权利要求2所述的一种基于GPU的导航信号模拟源通用架构方法,其特征在于,所述步骤(S2)中三个参数M、N、K的约束条件为:其中 表示向上取整,α,β,χ均为常量系数,temp表示中间量。

说明书 :

一种基于GPU的导航信号模拟源通用架构方法

技术领域

[0001] 本发明属于基于GPU的导航信号仿真模拟领域,特别是高性能多通道实时卫星导航信号模拟领域,具体涉及一种基于GPU的导航信号模拟源通用架构方法。

背景技术

[0002] 导航信号模拟源,作为导航信号接收机的性能功能测试设备,其原理为接收机的逆过程,即通过模拟的接收信号伪距和载波相位反推接收机实时接收到的信号,在导航接收设备研发过程中具有重要作用。
[0003] 以往实时的导航信号模拟源均采用FPGA(Field-Programmable Gate Array,现场可编程门阵列,缩写:FPGA)、DSP等高速信号处理器件构成,但是这种系统需要开发专用的设备,在设备维护、系统升级、功能移植等方面均需要较高的成本。通用计算GPU(图形处理器,Graphics Processing Units,缩写:GPU)由于具备大量的并行处理单元,在计算导航信号模拟信号方面可以充分发挥并行计算的优势,故基于CPU+GPU异构模式的导航信号模拟源开始受到较多的研究,采用此种结构的导航信号模拟源的运行平台为常见的计算机,代码编写语言为C++,系统开发升级、设备维护等工作相比于以往的设备均具有较大的优势。
[0004] CPU+GPU的异构模式中,信号计算部分主要由GPU承担,目前实时的多通道导航信号模拟源在GPU中主要有基于全局存储器合路和基于共享存储器合路两种,但这两种方式计算效率上分别受制于存储器访问速度和SM(流多处理器,Streaming Multi processor,缩写:SM)资源使用率。

发明内容

[0005] 为解决上述技术问题,本文在结合信号生成特点以及GPU线程组织结构特点,即在GPU并行运行物理单元为流多处理器SM,SM由并行执行运算的单元SP(流处理器,Stream Processor,缩写:SP)构成,在代码编程层面,通过组织线程结构将任务向SM和SP分配任务,线程结构分为三个层级,分别为线程网格,线程块和线程。本发明提出了一种基于GPU的多通道导航信号模拟源通用架构方法,解决了多通道导航信号仿真中GPU运算效率低的问题。具体技术方案如下:
[0006] 一种基于GPU的导航信号模拟源通用架构方法,包括以下步骤:
[0007] (S1)构建离散多通道导航信号模型,并通过短时分段多项式对信号的伪距和载波相位进行插值;
[0008] 所述构建离散多通道导航信号模型具体过程为:
[0009] 设数字信号模型如下:
[0010]
[0011] 其中s(t)为数字信号,A(t)为信号幅度,C(t)为扩频伪码,D(t)为调制的电文信息,SC(t)为调制的子载波,t表示时间,若不需要调制子载波的情况下,则取消子载波调制,ω为载波角频率,ρp为伪距,ρc为载波相位,ρp、ρc通常采用短时分段多项式进行插值,如公式(2)所示,模拟信号的伪距变化和载波相位变化,为初始载波相位;j表示虚数单位,e为自然对数的底。
[0012] 所述短时分段多项式对信号的伪距和载波相位进行插值的插值公式为:
[0013] ρ=ρ0+ρv(tρ)+ρa(tρ)2/2+ρj(tρ)3/6        (2)
[0014] 其中ρ0、ρv、ρa、ρj分别代表ρ在该插值间隔内的初始值、一阶变化率、二阶变化率、三阶变化率,tρ为当前时刻相对于插值间隔初始时刻的时间差,对于公式(2)在求解ρp或ρc插值时,ρ0、ρv、ρa、ρj具有独立的取值。
[0015] 则离散多通道导航信号模型如下:
[0016]
[0017] 其中S表示离散多通道导航信号,num为所需生成的信号采样点数量,L为信号通道数量,δ(t)为表示单位冲击函数,Δt为一个采样点的时间间隔,sl(t)表示信号s(t)在l通道中的形式。公式(3)中n取值为0,1,2,…,num-1;l取值为1,2,…,L;
[0018] 本文在分析动态导航信号生成方法的基础上,将信号采样点的计算进行去相关处理,使得数字信号的计算演变为num个不相关采样点的计算,GPU优化演变为在最短时间内计算num个采样点的数字信号值。
[0019] (S2)设置三个参数,分别为线程块总数M、每个线程块中线程数N和线程块内部循环次数K,并设置三个参数M、N、K的约束条件,依据线程块总数M、每个线程块中线程数N和线程块内部循环次数K组织GPU的线程块,得到信号表达式为:
[0020]
[0021] 其中L为所需生成信号通道数量,不同通道相同采样时间的信号值由同一个线程进行计算,通道数量由外部设置,通过一层循环遍历所需生成信号的通道序号(即l的取值),不同通道采样值通过线程内部寄存器进行合路,M表示线程块总数,N为每个线程块中线程数,K为线程块内部循环次数,即每个线程分配L个信号K个采样时刻的信号值的计算任务。公式(4)是公式(3)的具体化表示,将num由三个参数M、K、N进行表达,并结合公式(5)中对M、K、N进行约束;公式(4)中m取值为0,1,2,…,M-1;k取值为mK,mK+1,…,(m+1)K-1。
[0022] 其中M,N,K之间满足如下约束:
[0023]
[0024] 其中 表示向上取整,由上式可知,M的值取决于num以及K和N的取值,temp表示中间量,α,β,χ为常量系数,各自取值范围如公式(5)中内容所示。
[0025] (S3)由GPU根据实际需求配置所需的信号通道数,并生成对应通道数的数字信号,将相同采样时刻每个通道的信号的采样值通过内部寄存器进行合路;
[0026] (S4)选取满足最大活动Warp数的N值;选择Kmax值为 num为所需生成的信号采样点数量,M取值应不小于SM数量,实施例中M的最小值Mmin取值等于SM的数量,K值在1~Kmax中进行遍历取值,对内核在计算相同采样点数的信号条件下所需的运行时间进行测试,选择运行时间最短的N值与K值的组合作为实际运行时的参数;
[0027] 与现有技术相比,本发明的有益效果是:
[0028] 1.本发明针对多通道导航信号生成进行了专门的设计,保证了信号生成模块通道数根据外部需求进行参数化配置;
[0029] 2.本发明利用内部寄存器对不同通道信号相同采样时刻的信号值进行合路,充分利用了寄存器的访问速度优势,相比于利用全局存储器或者共享存储器进行信号合路的方式具有更高的效率;
[0030] 3.本发明利用M、N、K三个值对GPU线程块进行组织,通过性能测试的方式选取合适的N值和K值,保证了内核运行具有最大活动Warp数,同时SM之间计算量的均衡性,使得GPU运行具有最优化的运行效率;

附图说明

[0031] 图1是本发明基于GPU的导航信号模拟源通用架构框图;
[0032] 图2是本发明方法流程图。

具体实施方式

[0033] 下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 如图1所示为本发明基于GPU的导航信号模拟源通用架构框图。结合附图2,对实施步骤作进一步说明。
[0035] (S1)构建离散多通道导航信号模型
[0036] 结合公式(1)、公式(3)将多通道导航信号进行离散化处理,信号的伪距和载波相位采用短时分段多项式进行模拟,如公式(2)所示。
[0037] (S2)组织GPU线程块
[0038] 采用M、N、K组织线程块,其中M表示线程块总数,N为每个线程块中线程数,K为线程块内部循环次数,其中M、N、K满足公式(5)所示约束,M、N、K均为正整数。
[0039] (S3)GPU信号生成及信号合路
[0040] 由GPU根据实际需要生成的信号通道数进行数字信号生成,每个线程计算L个信号K个采样时刻的信号值,相同采样时刻L个信号的采样值通过内部寄存器进行合路;
[0041] (S4)选取最优参数N和K的值
[0042] N值的选择会影响GPU内核运行过程中的最大活动Warp数(NVIDIA的线程粒度被称作Warp,一个Warp是32“线程”),而最大活动Warp数会严重影响到计算效率,故N值需对应最大活动Warp数;K值会影响线程块之间的计算量的平衡性,线程块计算量不平衡会造成有些SM提前运算完,另外一些SM处于等待状态,无法充分发挥GPU性能。综上,建议首先选取N值,另外M取值应不小于SM数量,防止存在SM等待的情况,不妨设M最小值为Mmin,则K取值的最大值为 故K可在1~Kmax中进行遍历,即K依次取1,2,3,…,Kmax,对内核在计算相同采样点数的信号条件下所需的运行时间进行测试,选择运行时间最短的N值与K值的组合作为实际运行时的参数。
[0043] 本文发明的这一架构充分体现了设计的通用性,并且采用了线程内部寄存器进行信号合路,具有更高的效率。N值选定之后,内核会始终保持最大的活动Warp数,不会随信号通道数变化。
[0044] 具体实施例:采用本发明方法基于GPU生成BDS(BDS:北斗卫星导航定位系统)B1频点导航信号,首先结合公式(1)、公式(3)对信号进行离散化处理,并结合公式(2)对伪距和载波相位进行短时分段多项式插值,短时分段多项式插值间隔取为10ms,采样率为75MHz,故一个插值间隔所需仿真采样点数为num=750000,所采用GPU的SM数量为13,采用M、N、K组织GPU线程块,根据实际需要生成的信号通道数进行数字信号生成,每个线程计算L个信号K个采样时刻的信号值,相同采样时刻L个信号的采样值通过内部寄存器进行合路。N值的选取保证最大活动Warp数量,取值为[128,256,512,1024],本实施例中M的最小值Mmin取值等于SM的数量,即Mmin=13,相应的K值取值最大值为[451,226,113,57],故K值在1至最大值之间进行遍历,对内核在计算相同采样点数的信号条件下所需的运行时间进行测试,测试结果表明在N=512或128,K=5的情况下,此时内核运算时间最短,约为910us。故在真实运行情况下N值与K值的取值为N=512或128,K=5。
[0045] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。