CN108563466B - 一种提高gpu使用率的跟踪流水处理方法 - Google Patents
一种提高gpu使用率的跟踪流水处理方法 Download PDFInfo
- Publication number
- CN108563466B CN108563466B CN201810334254.5A CN201810334254A CN108563466B CN 108563466 B CN108563466 B CN 108563466B CN 201810334254 A CN201810334254 A CN 201810334254A CN 108563466 B CN108563466 B CN 108563466B
- Authority
- CN
- China
- Prior art keywords
- processing
- gpu
- channels
- group
- cpu
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种提高GPU使用率的跟踪流水处理方法。CPU遍历所有信号接收通道,将待跟踪通道划分为两组;CPU为跟踪处理分配跟踪处理线程,等待外部数据更新触发;当外部数据更新时,唤醒跟踪处理线程,CPU将当前数据传输至GPU,GPU进行数据搬移;GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理;GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态。本发明通过多通道信号跟踪处理分别在GPU与CPU进行二级流水处理,可以使得GPU与CPU处理并行,同时提高了GPU与CPU的使用率,提升了多通道信号跟踪处理的效率。
Description
技术领域
本发明涉及卫星导航技术领域,具体的说是一种提高GPU使用率的跟踪流水处理方法。
背景技术
卫星导航软件接收机借鉴软件无线电的思想,使用软件编程的方式实现导航信号的接收,其不需额外的专用集成电路,开发灵活快捷,广泛应用于卫星导航相关的科研教学平台建设、信号仿真测试等领域。GPU具有并行计算能力强、开发高效灵活的特点,因此其在卫星导航软件接收机中得到了广泛应用。
在基于GPU的卫星导航软件接收机中,信号跟踪处理的计算复杂度最高,其包括大数据量的多通道相关累加运算处理、多通道环路处理(鉴相、环路滤波、通道控制参数更新),处理频度高达1KHz,即每ms进行一次信号跟踪处理。为提升信号跟踪处理效率,通常根据处理特点将信号跟踪各环节的处理均衡分布于CPU与GPU:计算密集度高、无逻辑处理的信号相关累加运算在GPU中完成,计算密集度低、计算逻辑相对复杂的环路处理在CPU中完成。
单通道信号跟踪处理的相关累加运算、环路处理这两个环节的输入输出存在强的依赖关系:当前时刻相关运算输出的相关累加值为环路处理的输入,而环路处理得到的新的通道控制参数为下一时刻相关累加运算处理的输入。因此相关累加运算与环路处理必须严格按串行处理,相应GPU与CPU也需串行处理,GPU与CPU利用率低,处理效率低。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种提高GPU使用率的跟踪流水处理方法。
本发明为实现上述目的所采用的技术方案是:一种提高GPU使用率的跟踪流水处理方法,包括以下步骤:
步骤101,CPU遍历所有信号接收通道,将待跟踪通道划分为两组:第0组通道和第1组通道;
步骤102,CPU为跟踪处理分配跟踪处理线程,等待外部数据更新触发;
步骤103,当外部数据更新时,唤醒跟踪处理线程,CPU将当前数据传输至GPU;
步骤104,GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:
步骤105,GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理;
步骤106,GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态。
所述两组待跟踪通道的数量相同。
所述步骤103中,CPU以异步传输的方式将当前数据传输至GPU。
所述步骤104具体为:
CPU根据第0组通道的跟踪参数调用GPU相关累加处理核函数,随后CPU直接返回,GPU在完成上一步骤中的数据搬移后依次对第0组通道进行相关累加处理;
CPU根据第1组通道在上一次进行相关累加处理得到的相关累加结果进行环路处理,随后等待GPU完成第0组通道的相关累加处理,跟踪线程进入等待状态。
所述步骤105具体为:
GPU完成第0组通道相关累加处理后,唤醒跟踪处理线程,随后跟踪处理线程根据第1组通道的跟踪参数调用GPU相关累加处理核函数,调用完成后CPU返回,GPU依次对第1组通道进行相关累加处理;
CPU根据第0组通道的相关累加结果进行环路处理,随后等待GPU完成第1组通道的相关累加处理,跟踪线程进入等待状态。
所述环路处理包括鉴相、环路滤波、通道跟踪参数更新。
本发明具有以下优点及有益效果:通过多通道信号跟踪处理分别在GPU与CPU进行二级流水处理,可以使得GPU与CPU处理并行,同时提高了GPU与CPU的使用率,提升了多通道信号跟踪处理的效率。若不进行流水处理,GPU的相关累加与CPU的环路跟踪必须串行处理,GPU工作过程中,CPU无法工作,CPU工作期间,GPU处理无法进行,整体处理效率低下。
附图说明
图1为本发明的基于GPU的卫星导航软件接收机功能组成框图;
图2为本发明的方法流程图;
图3为本发明的GPU/CPU跟踪流水处理时序图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图1所示,基于GPU的卫星导航软件接收机由数据缓冲区、信号处理模块、PVT解算模块组成。本发明主要是对信号处理模块中信号跟踪处理的软件处理效率进行提升,信号跟踪处理主要包括相关累加处理、跟踪环路处理,相关累加处理由GPU的信号跟踪并行相关器完成,跟踪环路处理由CPU完成。图2为本实施例提供的导航信号跟踪流水处理方法。
步骤101,CPU遍历所有信号接收通道,将待跟踪通道划分为两组,每组通道数量相当;
步骤102,CPU为跟踪处理分配处理线程,该线程等待外部数据更新触发;
步骤103,外部数据更新时,唤醒跟踪处理线程,CPU采用异步传输的方式将当前数据传输至GPU,异步处理不占CPU时序,调用后CPU直接返回,随后GPU进行数据搬移;这里的CPU仅进行传输配置,不占用CPU的时序,GPU控制完成数据传输。
步骤104,GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:
CPU根据第0组通道跟踪参数调用GPU相关累加处理核函数,随后CPU直接返回,GPU完成数据搬移后自动依次对这些通道进行相关累加处理。
CPU根据第1组通道相关累加结果(上一次GPU处理得到的)进行环路处理,具体包括鉴相、环路滤波、通道跟踪参数更新,随后等待GPU完成第0组通道的相关累加处理,跟踪线程进入等待状态。
对于首次数据处理,同样先进行第0组通道的相关累加处理,在进行第1组通道的环路处理,第0组通道和第1组通道的启动时刻错开一拍,第1组通道延后一拍启动。
步骤105,GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理:
GPU完成第0组通道相关累加处理后,唤醒跟踪处理线程,随后跟踪处理线程根据第1组通道跟踪参数调用GPU相关累加处理核函数,调用完成后CPU返回,GPU依次对这些通道进行相关累加处理。
CPU根据第0组通道相关累加结果进行环路处理,随后等待GPU完成第1组通道的相关累加处理,跟踪线程进入等待状态。
步骤106,GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态。
相应的GPU与CPU处理时序关系如图3所示,显然GPU相关累加处理与CPU环路处理完全并行,同时提高了GPU与CPU的使用率。
Claims (4)
1.一种提高GPU使用率的跟踪流水处理方法,其特征在于,包括以下步骤:
步骤101,CPU遍历所有信号接收通道,将待跟踪通道划分为两组:第0组通道和第1组通道;
步骤102,CPU为跟踪处理分配跟踪处理线程,等待外部数据更新触发;
步骤103,当外部数据更新时,唤醒跟踪处理线程,CPU将当前数据传输至GPU;
步骤104,GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:
步骤105,GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理;
步骤106,GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态;
所述步骤104具体为:
CPU根据第0组通道的跟踪参数调用GPU相关累加处理核函数,随后CPU直接返回,GPU在完成上一步骤中的数据搬移后依次对第0组通道进行相关累加处理;
CPU根据第1组通道在上一次进行相关累加处理得到的相关累加结果进行环路处理,随后等待GPU完成第0组通道的相关累加处理,跟踪线程进入等待状态;
所述步骤105具体为:
GPU完成第0组通道相关累加处理后,唤醒跟踪处理线程,随后跟踪处理线程根据第1组通道的跟踪参数调用GPU相关累加处理核函数,调用完成后CPU返回,GPU依次对第1组通道进行相关累加处理;
CPU根据第0组通道的相关累加结果进行环路处理,随后等待GPU完成第1组通道的相关累加处理,跟踪线程进入等待状态。
2.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述两组待跟踪通道的数量相同。
3.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述步骤103中,CPU以异步传输的方式将当前数据传输至GPU。
4.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述环路处理包括鉴相、环路滤波、通道跟踪参数更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810334254.5A CN108563466B (zh) | 2018-04-14 | 2018-04-14 | 一种提高gpu使用率的跟踪流水处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810334254.5A CN108563466B (zh) | 2018-04-14 | 2018-04-14 | 一种提高gpu使用率的跟踪流水处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563466A CN108563466A (zh) | 2018-09-21 |
CN108563466B true CN108563466B (zh) | 2023-02-28 |
Family
ID=63535051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810334254.5A Active CN108563466B (zh) | 2018-04-14 | 2018-04-14 | 一种提高gpu使用率的跟踪流水处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563466B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838552A (zh) * | 2014-03-18 | 2014-06-04 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9891949B2 (en) * | 2013-03-06 | 2018-02-13 | Nvidia Corporation | System and method for runtime scheduling of GPU tasks |
-
2018
- 2018-04-14 CN CN201810334254.5A patent/CN108563466B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838552A (zh) * | 2014-03-18 | 2014-06-04 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
Non-Patent Citations (1)
Title |
---|
基于OpenCL的实时KD-Tree与动态场景光线跟踪;卢贺齐等;《计算机辅助设计与图形学学报》;20130715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108563466A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101951273B (zh) | 一种用于无线传感网的长码字捕获方法 | |
CN105974442B (zh) | 卫星导航系统硬件在环实时仿真测试平台及其方法 | |
CN101839970A (zh) | 一种gps信号快速捕获的方法及其系统 | |
EP0935204A2 (en) | Programmable correlator coprocessor | |
JP2003101422A5 (zh) | ||
US20100220706A1 (en) | Apparatus, Module, And Method For Implementing Communications Functions | |
CN104714241A (zh) | 一种快速gps位同步方法 | |
CN100568155C (zh) | 控制用于无线电隔离的数字信号处理器的装置和相关方法 | |
CN108563466B (zh) | 一种提高gpu使用率的跟踪流水处理方法 | |
CN103605141A (zh) | 一种用于gnss码的快速捕获方法 | |
KR20110110348A (ko) | 실시간 분산 시스템의 분산 모듈에서, 다른 분산 모듈과 동기적으로 동작하기 위해 사용되는 방법, 디바이스, 신호 프로세싱 디바이스 및 mimo 통신 장비 | |
CN102710283A (zh) | 直接序列扩频伪码捕获方法、捕获装置及通信系统 | |
CN105487091B (zh) | 一种gnss跟踪环路软件相关器设计及自适应智能跟踪方法 | |
CN109032563B (zh) | 一种加速桥接融合乘加的方法及装置 | |
CN100555894C (zh) | 一种cdma系统中的多径搜索方法和装置 | |
CN106019334A (zh) | 一种基于gpu的导航软件接收机的相关器实现方法 | |
CN115932910A (zh) | 一种基于国产化平台的双模式北斗授时及分发装置和方法 | |
CN102323604B (zh) | 一种加法器和相关器一体装置 | |
CN101193286A (zh) | 一种图像质心计算方法及实现装置 | |
CN1937451B (zh) | 一种快速哈达玛变换装置 | |
KR102606239B1 (ko) | 힙 정렬 기반의 타이밍 컨트롤러, 이를 구비하는 모뎀 칩, 및 집적 회로 | |
US6388583B1 (en) | Method and circuit for codes generation | |
CN113075703A (zh) | 一种多通道卫星信号跟踪方法 | |
CN111401522A (zh) | 脉动阵列变速控制方法及可变速脉动阵列微框架 | |
CN102594397B (zh) | 一种多径信号处理方法及装置 |
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 |