CN111624631A - 一种并行化信号质量评估方法 - Google Patents
一种并行化信号质量评估方法 Download PDFInfo
- Publication number
- CN111624631A CN111624631A CN202010422155.XA CN202010422155A CN111624631A CN 111624631 A CN111624631 A CN 111624631A CN 202010422155 A CN202010422155 A CN 202010422155A CN 111624631 A CN111624631 A CN 111624631A
- Authority
- CN
- China
- Prior art keywords
- signal
- tracking
- parallelization
- loop
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/29—Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/30—Acquisition or tracking or demodulation of signals transmitted by the system code related
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
本发明涉及一种并行化信号质量评估方法,包括多线程、循环并行化和并行化向量、矩阵运算,循环并行化采用CUDA stream实现导航信号捕获及加速,进行捕获处理操作时,循环之间相互独立,依靠流来并发执行,程序通过流来管理并发操作;在外层捕获统计次数的循环中,采用超参数优化强化学习搜索最优参数算法;并行化向量、矩阵运算采用规约求和算法;多线程开启多个支路并行化进行跟踪及IQ基带支路的加速,CUDA中不同支路通过不同的线程可以并发执行各自的跟踪;在捕获、跟踪和IQ基带支路中,对于在每次循环中一直不变的变量,将该变量提取到循环外单独计算。本发明的优点是,运行效率高,满足GNSS信号质量评估对数据处理的实时性、可靠性以及高吞吐量的需求。
Description
技术领域
本发明属于卫星导航信号评估技术领域,具体涉及一种并行化信号质量评估方法。
背景技术
全球卫星导航系统(GNSS)提供全球范围内的定位、导航、授时(PNT)服务,其应用已经渗透到国防建设、国土资源、测绘农林、交通旅游等各个领域,涉及到人类日常生活、生命安全等多个方面。卫星导航信号是GNSS中唯一同时在空间段、地面段和用户段之间建立联系的核心纽带,导航信号质量的优劣直接影响到系统的服务和用户体验,导航信号分析结果的实时性在国防及地质灾害等方面的需求极其重要。因此为了保障卫星导航系统能够提供高效快速可靠的PNT服务,在确保导航信号精确性和准确性前提下,高效的信号接收处理可以实现对突发事件的快速响应,从而能够及时为用户提供预警,避免造成用户不可估量的损失。
目前国内外对于GNSS数据处理工作的并行化研究主要集中在大地测量、地球动力与测绘学科等领域,包括瑞士伯尔尼大学研发的Bernese软件,在数据处理过程中使用多线程并行进行加速,旨在为导航信号处理提供高精度支持;郭东晓等对于iGMAS电离层数据处理提出的基于分网并行解算策略的并行计算策略;武汉大学聂琳娟等对OpenMP、MPI等并行技术在卫星重力测量数据处理中的应用研究和比较;武汉大学的科研人员对于大规模的导航数据提出了分布式处理的解决方案。
中国科学院国家授时中心在北斗全球系统建设、运行和服务中发挥了重大作用,在卫星信号监测过程中多次协助排查了多颗卫星的信号多径、载波泄露、功率谱不对称等异常现象,协助解决了信号设计、在轨参数注入和载荷设计调整等多项技术问题。在多项北斗卫星导航系统测试评估项目的参与过程中,分析处理了大量基于40米天线的高采样率射频采集数据。卫星数目多、数据量大等问题均成为提升处理速度的掣肘。
发明内容
本发明的目的是解决上述问题,提供一种并行化信号质量评估方法,其运行效率高,能够满足GNSS信号质量评估对数据处理的实时性、可靠性以及高吞吐量的需求。
为实现上述目的,本发明提供如下技术方案:
一种并行化信号质量评估方法,包括多线程、循环并行化和并行化向量、矩阵运算,所述循环并行化采用CUDA stream实现导航信号捕获及加速,进行捕获处理操作时,循环之间相互独立,依靠流来并发执行,程序通过流来管理并发操作;在外层捕获统计次数的循环中,采用超参数优化强化学习搜索最优参数算法;所述并行化向量、矩阵运算采用规约求和算法;所述多线程开启多个支路并行化进行信号跟踪及IQ基带支路的加速,CUDA中不同支路通过不同的线程可以并发执行各自的跟踪;
在捕获、跟踪和IQ基带支路中,对于在每次循环中一直不变的变量,将该变量提取到循环外单独计算。
进一步的,所述CUDA stream捕获导航信号的流程为:
S1:为流、设备变量、主机变量类的相关变量分配空间并初始化,同时读取信号数据;
S2:如果当前信号大于等于总信号数(下标从0开始),则输出捕获结果,程序结束;如果当前信号小于总信号数(下标从0开始),则进入第一阶段,调用相关内核函数,计算最大相关峰值、第二大峰值以及两峰之比;
S3:第一阶段结束后,若两峰之比小于等于捕获门限,则继续比较当前信号是否小于总信号数(下标从0开始);若两峰之比大于捕获门限,则进入精细搜索,调用相关内核函数,计算载波频率、码相位。
进一步的,所述CUDA stream单个支路跟踪导航信号的流程为:
步骤一:确定当前支路代号,对当前支路进行跟踪;
步骤二:判断是否读完面板上给出的数据长度的信号数据,并对每毫秒的信号数据进行计算;
步骤三:将当前支路的跟踪结果存入文件。
进一步的,所述步骤二中信号数据进行计算过程为:
1)循环变量i为当前毫秒数,每次循环读取数据量为numOfReadin的信号数据到GPU;
2)GPU将信号数据送入到内核函数进行求均值、产生伪码、点乘计算;
3)从GPU中读取得到的三路伪码E、P、L,CPU根据三路伪码计算载波环鉴相、环路滤波、码环鉴相、环路滤波参数,并调整载波频率产生下一毫秒的数据量NumOfReadin;
4)存储当前毫秒的跟踪结果。
进一步的,单个支路IQ基带支路的评估步骤为:
a.确定当前支路代号,对当前支路进行评估;
b.判断是否读完面板上给出的相关数据长度的信号数据,并对每10毫秒、1次累加的信号数据进行计算;
c.根据基带结果Ir、采样率和捕获结果计算最后的评估结果,将当前支路的评估结果存入文件。
进一步的,所述步骤b对于信号数据的计算过程为:
①循环变量i为当前累加次数,每次循环读取数据量为numOfReadin的信号数据到GPU;
②GPU将信号数据送入到内核函数,并根据跟踪结果进行求均值、点乘计算;
③从GPU中读取得到的载波根据载波和子载波码片速率/点数,即分辨率计算理想低通滤波器的单位脉冲响应、基带信号等参数;
④调整载波频率产生下每10毫秒、1次累加的数据量NumOfReadin。
进一步的,所述规约求和算法采用交替策略,该算法包含两个阶段,且两个阶段调用同一个内核;所述第一阶段内核执行NumBlocks个并行规约,其中NumBlocks是指线程块数,得到一个中间结果数组;所述第二个阶段通过调用一个线程块对这个中间数组进行规约,从而得到最终结果。
进一步的,所述流表示一个GPU操作队列,并且该队列中的操作将以指定的顺序执行。
进一步的,所述流为GPU的一个任务,且上述任务可并行执行,每个流上的计算都是基于SIMT模式的并行计算。
进一步的,通过将每次循环内所操作的指令和数据发配到不同的流上来实现循环的并行化,每个流都是异步流水线,不阻塞主机端的代码的执行,全部操作都在流上异步执行;在外层捕获统计次数的循环中,将stream的大小确定为4进行并行计算。若stream的值太小,循环次数不会减少太多,程序的运行时间也比较长;若stream的值太大,GPU显存不够;所以将stream的大小确定为4,在规定计算范围内,设备变量所占用的空间达到最小,消耗的时间也最短。也就是将整个循环次数减少4倍,从而极大缩短了程序运行时间。
与现有技术相比,本发明的有益效果在于:
GPU是拥有高并行度计算和高存储器带宽的多核处理器,而CUDA作为一种基于新的并行编程模型和指令集架构的通用计算框架,它能够很好的利用GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务;线程可以完成一定的任务,与其他线程共享变量及部分环境,多线程技术使程序的响应速度更快,提高CPU的利用率。
通过对质量评估系统采用CUDA和多线程方法基于GPU和CPU对数据进行并行加速,缩短数据处理时间,提高运行效率,时间性能可达到优化前的10倍以上,内存占用可缩短为优化前的一半左右。因此,采用CUDA和多线程方法进行并行加速后,GNSS质量评估系统能够准确、实时地进行计算处理,提供相关数据,可以满足GNSS信号质量评估对数据处理的实时性、可靠性以及高吞吐量的需求。可以投入实际应用进行数据采集计算。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是为了更清楚地说明本发明实施例或现有技术中的技术方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明以GPSL1C/A为例捕获二维搜索流程图;
图2为本发明跟踪环路原理图;
图3为导航信号MATLAB版捕获流程图;
图4为导航信号CUDA版捕获流程图;
图5为MATLAB的串行循环模式图;
图6为CUDA的并行化循环模式图;
图7为导航信号MATLAB版跟踪流程框图;
图8为单支路跟踪流程图;
图9为CUDA规约求和算法示意图;
图10为跟踪整体流程图;
图11为单支路IQ基带支路流程图;
图12为IQ基带支路整体流程图。
具体实施方式
为了使本领域技术人员更好地理解本发明的技术方案能予以实施,下面结合具体实施例对本发明作进一步说明,但所举实施例只作为对本发明的说明,不作为对本发明的限定。
1、GNSS信号质量评估整体框架
GNSS信号质量评估软件主要处理分析北斗系统B1、B2、B3频点信号、GPS系统L1、L2、L5频点信号、Galileo系统E1、E5、E6频点信号、GLONASS系统G1、G2、G3频点信号,实现基于射频采集数据的捕获、跟踪与信号质量评估功能。
GNSS软件接收机能够捕获到选定的待测卫星,并跟踪这些卫星的运行。信号捕获是GNSS软件接收机系统中信号处理的核心之一。为了捕获卫星信号,必须同时对信号在码相位(时域)和多普勒频移量(频域)进行二维搜索。图1为捕获的二维搜索流程。在捕获部分采用并行码相位搜索方法,对不同频率区间进行搜索,一次计算编辑所有码相位,但载波多普勒依旧采用串行频率井的方式循环搜索,同时采用多周期相干积分消除导航数据位影响。
在追踪部分分通道进行环路追踪,采用载波环路跟踪和伪码环路跟踪,跟踪阶段依次读入历元时间的中频信号进入环路循环,计算更加精确的码相位及载波相位,并进行鉴相和滤波处理,图2为跟踪环路原理图。
在评估部分分别对相关结果、参数计算、眼图、IQ支路基带信号、星座图、一致性和功率谱等项进行分析评估,可根据选定的功能给出评估结果。
2、基于CUDA与多线程的优化
该研究中用到的并行化技术有多线程、循环并行化和并行化向量、矩阵运算。其中捕获采用CUDA stream实现循环并行化,规约求和实现并行化向量、矩阵运算;跟踪采用多线程开启多个支路并行化,规约求和实现并行化向量、矩阵运算;IQ基带支路采用多线程开启多个支路并行化,采用CUDA stream实现循环并行化,规约求和实现并行化向量、矩阵运算。如表1所示:
表1并行化技术
多线程 | 循环并行化 | 并行化向量、矩阵运算 | |
捕获 | √ | √ | |
跟踪 | √ | √ | |
IQ基带支路 | √ | √ | √ |
2.1循环并行化
MATLAB版的信号捕获采用并行码相位搜索算法,同时采用多周期相干积分消除导航数据位影响,对于BOC或TMBOC调制信号跟踪阶段采用Bump-Jump多峰抑制算法,而BPSK信号采用传统PLL+DLL环路跟踪。QMBOC调制信号可采用本地BOC(1,1)与BOC(6,1)联合捕获信号。图3所示为导航信号MATLAB版捕获流程图。
达到加速的目的,本发明采用CUDA技术来实现,图4所示为导航信号CUDA版捕获流程图,首先,为流、设备变量、主机变量等相关变量分配空间并初始化,之后读取信号数据。如果当前信号大于等于总信号数(下标从0开始),则输出捕获结果,程序结束;如果当前信号小于总信号数(下标从0开始),则进入第一阶段,调用相关内核函数,计算最大相关峰值、第二大峰值以及两峰之比;第一阶段结束后,若两峰之比小于等于捕获门限,则继续比较当前信号是否小于总信号数(下标从0开始);第一阶段结束后,若两峰之比大于捕获门限,则进入精细搜索,调用相关内核函数,计算载波频率、码相位。
在利用不同频率区间进行搜索时,在MATLAB的串行模式下只能从低到高依次执行搜索。如图5所示,每次搜索的计算过程互不相干,前一区间的搜索结果并不对下一区间产生影响,因此循环存在并行化的可能性。在CUDA中,依靠流来并发执行GPU上互相独立的计算。
在进行捕获处理操作时,循环之间没有计算关系,循环之间是相互独立的,依靠流来并发执行,程序通过流来管理并发操作。流表示一个GPU操作队列,并且该队列中的操作将以指定的顺序执行。可以将每个流视为GPU的一个任务,并且这些任务可以并行执行。逻辑上可以达到多支路并行计算的目的。
捕获的主循环中,numberOfFrqBins为载波捕获的频率井的个数,每颗PRN都进行numberOfFrqBins次循环,每次循环的最终结果是一个最大值,因此循环之间相互无依赖,通过将每次循环内所操作的指令和数据发配到不同的流上来实现循环的并行化,每个流都是异步流水线,不阻塞主机端的代码的执行,全部操作都在流上异步执行。假设开启了n个流,共n次循环,则并行化循环的时间线如图6所示,可以看出通过流的并发执行可以使循环之间在时间上大量重叠。
在外层捕获统计次数的循环中,由于GPU显存有限,所以不能直接将其一次性并行化,因此在本方案设计中,采用超参数优化强化学习搜索最优参数算法确定以4次为单位,也就是将stream的大小确定为4进行并行计算最为合适。若stream的值太小,循环次数不会减少太多,程序的运行时间也比较长;若stream的值太大,GPU显存不够;所以将stream的大小确定为4,在规定计算范围内,设备变量所占用的空间达到最小,消耗的时间也最短。也就是将整个循环次数减少4倍,从而极大缩短了程序运行时间。
2.2并行化向量、矩阵运算
MATLAB版的捕获模块将捕获到的卫星编号及载波频率和码相位告知跟踪模块,由跟踪环路对卫星信号进行跟踪。跟踪环路由码跟踪环和载波跟踪环构成。码跟踪环路采用延迟锁定环(DLL)的结构,由延迟锁定环鉴别器、码环路滤波器、数控振荡器和复现码生成器组成。其中复现码生成器产生码相位对准的即时码(P),以及比即时码超前1/2个码片的超前码(E)和滞后1/2个码片的滞后码(L)。图7为导航信号MATLAB版跟踪流程图。
为了达到加速目的,本发明采用CUDA技术,图8为导航信号CUDA版跟踪流程图,从单个支路设计跟踪过程,第一步确定当前支路代号,对当前支路进行跟踪。第二步判断是否读完面板上给出的数据长度的信号数据,并对每毫秒的信号数据进行计算。图8中循环变量i为当前毫秒数,每次循环读取数据量为numOfReadin的信号数据到GPU,GPU将信号数据送入到内核函数进行求均值、产生伪码、点乘等计算,再从GPU中读取得到的三路伪码E、P、L,CPU根据三路伪码计算载波环鉴相、环路滤波、码环鉴相、环路滤波等参数,并调整载波频率产生下一毫秒的数据量NumOfReadin,存储当前毫秒的跟踪结果。第三步将当前支路的跟踪结果存入文件。
在使用流进行并发执行循环的同时,每个流上的计算都是基于SIMT模式的并行计算。本发明无需把数据凑成合适的矢量长度,并且SIMT允许每个线程有不同的分支。纯粹使用SIMT不能并行的执行有条件跳转的函数,很显然条件跳转会根据输入数据不同在不同的线程中有不同表现,这个只有利用SIMT才能做到。捕获和跟踪都是基于SIMT模式在每个流上进行并行化向量和矩阵运算。
其中最典型的是规约求和算法。该算法包含两个阶段,并且两个阶段调用同一个内核。第一阶段内核执行NumBlocks个并行规约,其中NumBlocks是指线程块数,得到一个中间结果数组。第二个阶段通过调用一个线程块对这个中间数组进行规约,从而得到最终结果。规约算法采用了交替策略,该算法的执行过程如图9所示。
假如对768个输入数据进行规约,NumBlocks=256,第一阶段使用2个Block进行规约,此时内核执行两个并行规约,并把结果保存在中间数组partial中,其中partial的大小为2,partial[0]保存线程块0的规约结果,partial[1]保存线程块1的结果。第二阶段对parital进行规约,此时内核只启动一个Block,因此,最终得到一个规约结果,这个结果就是对输入数据的规约结果。
2.3绑定CPU核心的多线程并行化
MATLAB中跟踪是串行的闭环反馈过程,无法通过流将循环并行化,单次跟踪只能通过计算上的并行来达到加速目的。而不同支路间的跟踪互不干扰,各自计算各自的跟踪结果,因此CUDA中不同支路通过不同的线程可以并发执行各自的跟踪,如图10所示。
从单个支路设计IQ基带支路评估过程,如图11所示,第一步确定当前支路代号,对当前支路进行评估。第二步判断是否读完面板上给出的相关数据长度的信号数据,并对每10毫秒、1次累加的信号数据进行计算。图10中循环变量i为当前累加次数,每次循环读取数据量为numOfReadin的信号数据到GPU,GPU将信号数据送入到内核函数,并根据跟踪结果进行求均值、点乘等计算,再从GPU中读取得到的载波根据载波和子载波码片速率/点数,即分辨率计算理想低通滤波器的单位脉冲响应、基带信号等参数,并调整载波频率产生下每10毫秒、1次累加的数据量NumOfReadin。第三步根据基带结果Ir、采样率和捕获结果计算最后的评估结果,将当前支路的评估结果存入文件。
IQ基带支路采用多线程开启多个支路达到加速的目的。在matlab中IQ基带支路的最外层3个循环是串行执行的,而本发明采用多线程的方式,从而减少时间开销,如图12所示。
2.4微体系架构优化
捕获的循环中缓冲区复用存储动态分配优化,对于重复使用的中间变量,只分配一次内存,并重复利用。例如在原搜索循环中,restmp变量在每层for循环内进行了定义和预分配内存,而该变量之后的更新计算并没有超过预分配内存的大小,只是不断的更新其本身的值。但是,由于是在for循环内,累计的循环次数过大,导致每次计算都对restmp进行预分配内存,浪费了大量时间。因此在CUDA版本的代码中,对该变量只分配一次内存,直到不再使用时才将其释放,以此在空间上减少开销。
在捕获、跟踪和IQ基带支路中,对于在每次循环中一直不变的变量,将该变量提取到循环外单独计算,从而减少每次循环都调用该函数计算产生的时间开销。例如原搜索循环中index变量在每层for循环内都进行了计算,而该变量每次循环的计算结果都是一样的值。由于是在for循环内,累计的循环次数过大,导致每次计算都对index进行计算,从而产生时间开销。因此在CUDA版本的代码中,对该变量只分配一次内存,计算一次,直到不再使用时才将其释放,以此在空间和时间上减少开销。
3、实验测试与结果分析
实验使用相同的测试数据对原算法分别采用不用的CPU、GPU环境进行测试对比,并运行MATLAB版原算法和CUDA算法进行结果比较,在误差规定范围内,比较最后程序的运行时间,并验证捕获、跟踪和IQ基带支路算法的正确性及加速比,分析基于CUDA编程的捕获、跟踪和IQ基带支路算法相比原算法捕获、跟踪和IQ基带支路的加速效果。
3.1CUDA与Matlab对比测试
参数设置:
数据时长:1900ms
采样率:750MHz
2.79GB
捕获参数:
全部63个PRN,strflag='Down'
跟踪参数:
全部4支路
测试环境
表2基于CUDA编程相关算法实验环境
3.2测试结果
通过采用CUDA和多线程技术基于GPU和CPU完成并行优化加速,得到捕获、跟踪和IQ基带支路在不同类型的GPU下运行消耗的时间,如表3所示。可以看到,在GPU RTX2080Ti上的运行效果是最优的其次是GPU Titan V,与未加速优化之前的相比,捕获可达到32.80倍的GPU/CPU加速比,跟踪可达到71.99倍的GPU/CPU加速比,IQ基带支路可达到6.23倍的GPU/CPU加速比。
表3 CUDA与MATLAB测试时间对比
3.3资源使用情况
基于CUDA和多线程的优化,使捕获、跟踪和IQ基带支路的计算和设备变量的空间分配都在GPU显存上进行,从而减少了CPU内存的占用率,在空间上极大的减少了内存分配开销,其所占CPU内存约为优化之前的1/2。
捕获:
线程:1
显存:4595MB
内存:329MB
CPU:19%
GPU:95%
跟踪:
线程:4
显存:1174MB
内存:2932MB
CPU:48%
GPU:84%
IQ基带支路:
线程:3
显存:1563MB
内存:4707MB
CPU:2.5%
GPU:1%
4、结果分析
捕获、跟踪和评估项IQ基带支路中影响并行速度的参数,比如CUDA stream的大小开多少合适,采用超参数优化强化学习搜索最优参数算法可确定。
超参数优化是为学习算法选择一组最优超参数时的问题,通常目的是优化算法在独立数据集上的性能的度量。通常使用交叉验证来估计这种泛化性能。超参数优化与实际的学习问题形成对比,这些问题通常也被转化为优化问题,但是优化了训练集上的损失函数。实际上,学习算法学习可以很好地建模或重建输入的参数,而超参数优化则是确保模型不会像通过正则化一样通过调整来过滤其数据。
利用超参数优化可找到最合适的影响并行速度的参数,从而将加速比达到最优化。
通过对质量评估系统采用CUDA和多线程方法基于GPU和CPU对数据进行并行加速,并将相关结果进行对比分析,可以得到,在满足各项性能需求指标的条件下,无论是从时间上还是空间上,加速优化之后都比加速优化之前的效率高出很多。综合对比,时间性能可达到优化前的10倍以上,内存占用可缩短为优化前的一半左右。因此,采用CUDA和多线程方法进行并行加速后的GNSS质量评估系统能够准确、实时地进行计算处理,提供相关数据,可以投入实际应用进行数据采集计算。
本发明中未做详细描述的内容均为现有技术。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种并行化信号质量评估方法,其特征在于,包括多线程、循环并行化和并行化向量、矩阵运算,所述循环并行化采用CUDA stream实现导航信号捕获及加速;进行捕获处理操作时,循环之间相互独立,依靠流来并发执行,程序通过流来管理并发操作;在外层捕获统计次数的循环中,采用超参数优化强化学习搜索最优参数算法;所述并行化向量、矩阵运算采用规约求和算法;所述多线程开启多个支路并行化进行信号跟踪及IQ基带支路的加速,CUDA中不同支路通过不同的线程可以并发执行各自的跟踪;
在捕获、跟踪和IQ基带支路中,对于在每次循环中一直不变的变量,将该变量提取到循环外单独计算。
2.根据权利要求1所述的一种并行化信号质量评估方法,其特征在于,所述CUDAstream捕获导航信号的流程为:
S1:为流、设备变量、主机变量类的相关变量分配空间并初始化,同时读取信号数据;
S2:如果当前信号大于等于总信号数,则输出捕获结果,程序结束;如果当前信号小于总信号数,则进入第一阶段,调用相关内核函数,计算最大相关峰值、第二大峰值以及两峰之比;
S3:第一阶段结束后,若两峰之比小于等于捕获门限,则继续比较当前信号是否小于总信号数;若两峰之比大于捕获门限,则进入精细搜索,调用相关内核函数,计算载波频率、码相位。
3.根据权利要求1所述的一种并行化信号质量评估方法,其特征在于,所述CUDAstream单个支路跟踪导航信号的流程为:
步骤一:确定当前支路代号,对当前支路进行跟踪;
步骤二:判断是否读完面板上给出的数据长度的信号数据,并对每毫秒的信号数据进行计算;
步骤三:将当前支路的跟踪结果存入文件。
4.根据权利要求3所述的一种并行化信号质量评估方法,其特征在于,所述步骤二中信号数据进行计算过程为:
1)循环变量i为当前毫秒数,numOfReadin为跟踪环每个循环读入的点数,每次循环读取数据量为numOfReadin的信号数据到GPU;
2)GPU将信号数据送入到内核函数进行求均值、产生伪码、点乘计算;
3)从GPU中读取得到的三路伪码E、P、L,CPU根据三路伪码计算载波环鉴相、环路滤波、码环鉴相、环路滤波参数,并调整载波频率产生下一毫秒的数据量NumOfReadin;
4)存储当前毫秒的跟踪结果。
5.根据权利要求1所述的一种并行化信号质量评估方法,其特征在于,单个支路IQ基带支路的评估步骤为:
a.确定当前支路代号,对当前支路进行评估;
b.判断是否读完面板上给出的相关数据长度的信号数据,并对每10毫秒、1次累加的信号数据进行计算;
c.根据基带结果Ir、采样率和捕获结果计算最后的评估结果,将当前支路的评估结果存入文件。
6.根据权利要求5所述的一种并行化信号质量评估方法,其特征在于,所述步骤b对于信号数据的计算过程为:
①循环变量i为当前累加次数,每次循环读取数据量为numOfReadin的信号数据到GPU;
②GPU将信号数据送入到内核函数,并根据跟踪结果进行求均值、点乘计算;
③从GPU中读取得到的载波根据载波和子载波码片速率/点数,即分辨率计算理想低通滤波器的单位脉冲响应、基带信号等参数;
④调整载波频率产生下每10毫秒、1次累加的数据量NumOfReadin。
7.根据权利要求1所述的一种并行化信号质量评估方法,其特征在于,所述规约求和算法采用交替策略,该算法包含两个阶段,且两个阶段调用同一个内核;所述第一阶段内核执行NumBlocks个并行规约,其中NumBlocks是指线程块数,得到一个中间结果数组;所述第二个阶段通过调用一个线程块对这个中间数组进行规约,从而得到最终结果。
8.根据权利要求1所述的一种并行化信号质量评估方法,其特征在于,所述流表示一个GPU操作队列,并且该队列中的操作将以指定的顺序执行。
9.根据权利要求8所述的一种并行化信号质量评估方法,其特征在于,所述流为GPU的一个任务,且上述任务可并行执行,每个流上的计算都是基于SIMT模式的并行计算。
10.根据权利要求1至9任一项所述的一种并行化信号质量评估方法,其特征在于,通过将每次循环内所操作的指令和数据发配到不同的流上来实现循环的并行化,每个流都是异步流水线,不阻塞主机端的代码的执行,全部操作都在流上异步执行;在外层捕获统计次数的循环中,将stream的大小确定为4进行并行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010422155.XA CN111624631B (zh) | 2020-05-19 | 2020-05-19 | 一种并行化信号质量评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010422155.XA CN111624631B (zh) | 2020-05-19 | 2020-05-19 | 一种并行化信号质量评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111624631A true CN111624631A (zh) | 2020-09-04 |
CN111624631B CN111624631B (zh) | 2022-11-18 |
Family
ID=72260677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010422155.XA Active CN111624631B (zh) | 2020-05-19 | 2020-05-19 | 一种并行化信号质量评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111624631B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527811A (zh) * | 2020-12-22 | 2021-03-19 | 山东鲁能软件技术有限公司 | 一种指标监控数据实时更新方法及系统 |
CN113672380A (zh) * | 2021-07-13 | 2021-11-19 | 中国人民解放军战略支援部队航天工程大学 | Gpu实现fx互相关鉴相的相位干涉仪测向系统及其鉴相方法 |
CN117609670A (zh) * | 2024-01-18 | 2024-02-27 | 北京壁仞科技开发有限公司 | 支持动态形状的计算的方法、装置、介质和程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103871021A (zh) * | 2014-02-27 | 2014-06-18 | 电子科技大学 | 一种由cpu和gpu协同工作的目标航迹初始化方法 |
CN105116422A (zh) * | 2015-08-19 | 2015-12-02 | 南京理工大学 | 一种星载高动态gnss接收机及其导航方法 |
CN105718425A (zh) * | 2016-01-15 | 2016-06-29 | 武汉大学 | 一种非线性数据全局互相关性的并行定量计算方法 |
CN107133110A (zh) * | 2017-04-27 | 2017-09-05 | 中国科学院国家授时中心 | 基于集群并行运算的gnss导航信号海量数据快速处理方法 |
US20170272490A1 (en) * | 2016-03-17 | 2017-09-21 | PathPartner Technology Pvt. Ltd. | System and Method to Process the Slices of the Video Data to Achieve Low Latency Video Streaming and Display |
CN109299501A (zh) * | 2018-08-08 | 2019-02-01 | 浙江大学 | 一种基于工作流的振动光谱分析模型优化方法 |
CN110135584A (zh) * | 2019-03-30 | 2019-08-16 | 华南理工大学 | 基于自适应并行遗传算法的大规模符号回归方法及系统 |
-
2020
- 2020-05-19 CN CN202010422155.XA patent/CN111624631B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103871021A (zh) * | 2014-02-27 | 2014-06-18 | 电子科技大学 | 一种由cpu和gpu协同工作的目标航迹初始化方法 |
CN105116422A (zh) * | 2015-08-19 | 2015-12-02 | 南京理工大学 | 一种星载高动态gnss接收机及其导航方法 |
CN105718425A (zh) * | 2016-01-15 | 2016-06-29 | 武汉大学 | 一种非线性数据全局互相关性的并行定量计算方法 |
US20170272490A1 (en) * | 2016-03-17 | 2017-09-21 | PathPartner Technology Pvt. Ltd. | System and Method to Process the Slices of the Video Data to Achieve Low Latency Video Streaming and Display |
CN107133110A (zh) * | 2017-04-27 | 2017-09-05 | 中国科学院国家授时中心 | 基于集群并行运算的gnss导航信号海量数据快速处理方法 |
CN109299501A (zh) * | 2018-08-08 | 2019-02-01 | 浙江大学 | 一种基于工作流的振动光谱分析模型优化方法 |
CN110135584A (zh) * | 2019-03-30 | 2019-08-16 | 华南理工大学 | 基于自适应并行遗传算法的大规模符号回归方法及系统 |
Non-Patent Citations (1)
Title |
---|
杨智博等: "基于嵌入式GPU的三天线GNSS基带信号处理加速技术", 《导航定位与授时》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527811A (zh) * | 2020-12-22 | 2021-03-19 | 山东鲁能软件技术有限公司 | 一种指标监控数据实时更新方法及系统 |
CN113672380A (zh) * | 2021-07-13 | 2021-11-19 | 中国人民解放军战略支援部队航天工程大学 | Gpu实现fx互相关鉴相的相位干涉仪测向系统及其鉴相方法 |
CN113672380B (zh) * | 2021-07-13 | 2022-10-11 | 中国人民解放军战略支援部队航天工程大学 | Gpu实现fx互相关鉴相的相位干涉仪测向系统及其鉴相方法 |
CN117609670A (zh) * | 2024-01-18 | 2024-02-27 | 北京壁仞科技开发有限公司 | 支持动态形状的计算的方法、装置、介质和程序产品 |
CN117609670B (zh) * | 2024-01-18 | 2024-04-26 | 北京壁仞科技开发有限公司 | 支持动态形状的计算的方法、装置、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111624631B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111624631B (zh) | 一种并行化信号质量评估方法 | |
CN103278829A (zh) | 一种基于gpu的并行导航卫星信号跟踪方法及其系统 | |
CN108519611B (zh) | 基于gpu的北斗b1c/b1i双频并行多通道协同捕获方法 | |
CN107133110B (zh) | 基于集群并行运算的gnss导航信号海量数据快速处理方法 | |
CN102520423B (zh) | 卫星导航接收机长周期伪随机扩频码的快速捕获方法 | |
CN101030787A (zh) | 对扩频信号的信噪比提供估计的方法和装置 | |
US20230111314A1 (en) | A GNSS signal acquisition method based on FPGA step-by-step code phase refinement | |
CN103777216B (zh) | 一种卫星导航导频信号捕获方法及装置 | |
CN103308931B (zh) | 用于检测卫星信号的系统和方法 | |
CN106093981B (zh) | 基于优化并行码相位搜索的gps捕获电路 | |
CN104267416A (zh) | 利用gpu对卫星数据进行捕获处理的方法和装置 | |
Gunawardena | A high performance easily configurable satnav SDR for advanced algorithm development and rapid capability deployment | |
CN112559053A (zh) | 可重构处理器数据同步处理方法及装置 | |
CN113406572B (zh) | 一种雷达并行处理系统及方法、存储介质、终端 | |
US9124356B2 (en) | Reconfigurable correlator for a navigation system | |
CN102176033B (zh) | 一种基于通用图形处理器的卫星导航系统比特压缩跟踪方法 | |
Nichols et al. | Software-defined GNSS is ready for launch | |
CN110780320B (zh) | 一种软硬件一体化的卫星导航信号处理方法 | |
CN102841361B (zh) | 一种全球卫星导航定位系统信号普通测距码快速捕获方法 | |
CN106019334B (zh) | 一种基于gpu的导航软件接收机的相关器实现方法 | |
CN113672380A (zh) | Gpu实现fx互相关鉴相的相位干涉仪测向系统及其鉴相方法 | |
CN113567919A (zh) | 一种通信信号的时频差参数联合估计gpu实现方法 | |
Park et al. | Implementation of GPGPU based real-time signal acquisition and tacking module for multi-constellation GNSS software receiver | |
CN105487091B (zh) | 一种gnss跟踪环路软件相关器设计及自适应智能跟踪方法 | |
Li et al. | Fast convolution operations on many-core architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |