提高GPU使用率跟踪流水处理方法

发布时间:2019-1-9 21:53:41

  申请日2018.04.14

  公开(公告)日2018.09.21

  IPC分类号G06F9/38

  摘要

  本发明涉及一种提高GPU使用率的跟踪流水处理方法。CPU遍历所有信号接收通道,将待跟踪通道划分为两组;CPU为跟踪处理分配跟踪处理线程,等待外部数据更新触发;当外部数据更新时,唤醒跟踪处理线程,CPU将当前数据传输至GPU,GPU进行数据搬移;GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理;GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态。本发明通过多通道信号跟踪处理分别在GPU与CPU进行二级流水处理,可以使得GPU与CPU处理并行,同时提高了GPU与CPU的使用率,提升了多通道信号跟踪处理的效率。

  权利要求书

  1.一种提高GPU使用率的跟踪流水处理方法,其特征在于,包括以下步骤:

  步骤101,CPU遍历所有信号接收通道,将待跟踪通道划分为两组:第0组通道和第1组通道;

  步骤102,CPU为跟踪处理分配跟踪处理线程,等待外部数据更新触发;

  步骤103,当外部数据更新时,唤醒跟踪处理线程,CPU将当前数据传输至GPU;

  步骤104,GPU进行第0组通道相关累加处理,同时CPU进行第1组通道环路处理:

  步骤105,GPU进行第1组通道相关累加处理,同时CPU进行第0组通道环路处理;

  步骤106,GPU完成第1组通道的相关累加处理,唤醒跟踪处理线程,随后跟踪处理线程进入等待数据状态。

  2.根据权利要求1所述的一种提高GPU使用率的跟踪流处理方法,其特征在于,所述两组待跟踪通道的数量相同。

  3.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述步骤103中,CPU以异步传输的方式将当前数据传输至GPU。

  4.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述步骤104具体为:

  CPU根据第0组通道的跟踪参数调用GPU相关累加处理核函数,随后CPU直接返回,GPU在完成上一步骤中的数据搬移后依次对第0组通道进行相关累加处理;

  CPU根据第1组通道在上一次进行相关累加处理得到的相关累加结果进行环路处理,随后等待GPU完成第0组通道的相关累加处理,跟踪线程进入等待状态。

  5.根据权利要求1所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述步骤105具体为:

  GPU完成第0组通道相关累加处理后,唤醒跟踪处理线程,随后跟踪处理线程根据第1组通道的跟踪参数调用GPU相关累加处理核函数,调用完成后CPU返回,GPU依次对第1组通道进行相关累加处理;

  CPU根据第0组通道的相关累加结果进行环路处理,随后等待GPU完成第1组通道的相关累加处理,跟踪线程进入等待状态。

  6.根据权利要求4或5所述的一种提高GPU使用率的跟踪流水处理方法,其特征在于,所述环路处理包括鉴相、环路滤波、通道跟踪参数更新。

  说明书

  一种提高GPU使用率的跟踪流水处理方法

  技术领域

  本发明涉及卫星导航技术领域,具体的说是一种提高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处理无法进行,整体处理效率低下。

相关推荐