首页> 中国专利> 一种基于GPU的水下无线光信道并行仿真方法

一种基于GPU的水下无线光信道并行仿真方法

摘要

本发明关于一种基于GPU的水下无线光信道并行仿真方法,该方法包括以下步骤:设定水下无线光通信中各光学特征参数;CPU端将随机数的生成任务分配给GPU端,由GPU端生成满足所有预设光子运算的随机数;通过对方位角、散射角以及步长的计算并赋值,确定光子在水下的吸收散射过程;追踪各光子的吸收散射过程,将所有光子的吸收散射过程分配给GPU端运算;所有光子的吸收散射过程结束后,将GPU端产生的运算数据拷贝至CPU端,并进行文本数据存储;根据文本数据,统计到达接收端光子的时间,累加同一时间光子的能量得到光子权重与时间的关系曲线,统计到达接收端光子的位置,累加同一位置光子的能量得到光子权重与位置的关系曲线。本发明提高了仿真模型的计算效率。

著录项

  • 公开/公告号CN113128034A

    专利类型发明专利

  • 公开/公告日2021-07-16

    原文格式PDF

  • 申请/专利权人 西安邮电大学;

    申请/专利号CN202110372068.2

  • 申请日2021-04-07

  • 分类号G06F30/20(20200101);G06F17/10(20060101);

  • 代理机构61241 西安亚信智佳知识产权代理事务所(普通合伙);

  • 代理人骆怡洁

  • 地址 710121 陕西省西安市长安南路563号

  • 入库时间 2023-06-19 11:52:33

说明书

技术领域

本发明涉及水下无线光通信技术领域,尤其涉及一种基于GPU的水下无线光信道并行仿真方法。

背景技术

距离是制约水下无线光通信技术发展的关键,其中,限制光在海水信道中传输距离的主要因素为:吸收和散射,光子在海水信道中运动时会与水分子或其他微小颗粒物碰撞,产生能量的损失和方向的改变,这一过程会导致多径效应和能量损耗,造成码间串扰。因此,通过建模表征信道散射程度的环节必不可少。

相关技术中,基于蒙特卡洛仿真的水下无线光通信算法主要是通过计算在不同水文因素下(衰减系数、方位角、天顶角、散射相函数)利用表观光学量反映水下光场分布的一种模拟方法,该方法能够通过样本模拟的方式有效计算吸收、散射对水下光传播的影响。为了模拟在不同海水信道的水文参数和不同发射功率条件下信道的衰减,模拟光子的数目在不断增加的同时,所模拟海域的参数也日臻复杂,至此,基于蒙特卡洛法的仿真程序的运算效率逐渐降低。因此,有必要改善上述相关技术方案中存在的一个或者多个问题,以提高仿真模型的计算效率。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本发明的目的在于提供一种基于GPU的水下无线光信道并行仿真方法,以提高仿真模型的计算效率。

本发明提供了一种基于GPU的水下无线光信道并行仿真方法,该方法包括以下步骤:

设定水下无线光通信中各光学特征参数;

CPU端将随机数的生成任务分配给GPU端,由GPU端生成满足所有预设光子运算的随机数;

通过对方位角、散射角以及步长的计算并赋值,确定光子在水下的吸收散射过程;

追踪各光子的所述吸收散射过程,将所有光子的所述吸收散射过程分配给GPU端运算;

所有光子的所述吸收散射过程结束后,将GPU端产生的运算数据拷贝至CPU端,并进行文本数据存储;

根据所述文本数据,统计到达接收端光子的时间,累加同一时间光子的能量得到光子权重与时间的关系曲线,统计到达接收端光子的位置,累加同一位置光子的能量得到光子权重与位置的关系曲线。

本发明的一实施例中,所述CPU端将随机数的生成任务分配给GPU端的步骤包括:

所述CPU根据程序需求和GPU的型号确定块、网格、线程的维度与尺寸,并开辟相应数目的子线程,将计算任务分配给各个所述子线程。

本发明的一实施例中,所述GPU端生成满足所有预设光子运算的随机数的步骤包括:

在GPU端预定义函数生成范围为0到1的随机数,通过一维数组存储决定随机方位角、步长、散射角的随机数。

本发明的一实施例中,所述追踪各光子的所述吸收散射过程,将所有光子的所述吸收散射过程分配给GPU端运算的步骤包括:

计算所述光子的随机步长;

通过所述随机步长、散射角、方位角确定所述光子的下一次传输方向及位置;

计算所述光子的权重;

根据当前所述光子的位置,判断此时所述光子是否到达接收面,若否则重复上述步骤,若是则统计该光子的位置、时间以及权重参数,并进行下一光子的散射碰撞;

判断是否是最后一个光子,若是则统计该光子的位置、时间以及权重参数,若否则重复上述步骤。

本发明的一实施例中,将Z轴正半轴作为所述光子的传输方向,Z=0表征为光源光子的集合。

本发明的一实施例中,所述光子的随机步长的计算方式为:

其中,吸收系数α取值为0.1~3/m,散射系数β取值为0.01~3/m,信道的总衰减系数c=α+β;r

本发明的一实施例中,所述方位角的计算方式为:

其中,方位角为所述光子的散射方向在XOY面上的投影与X轴正半轴的夹角,r

所述散射角的计算方式为:

其中,g为非对称因子,

本发明的一实施例中,所述光子的下一次传输方向为

所述光子的下一次传输位置为(x

其中,(x

本发明的一实施例中,所述光子的权重计算方式为:

W

其中,W

本发明的一实施例中,所述光学特征参数包括吸收系数、散射系数以及各向异性因子。

本发明提供的技术方案可以包括以下有益效果:

本发明的实施例中,利用GPU与CPU协同合作的方式实现程序的高速运行,并通过文本形式对返回数据进行存储,该方法能够有效实现表征水信道的三维散射过程的架构方式,提高了仿真模型的计算效率、缩短了计算时间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见的,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明示例性实施例中一种基于GPU的水下无线光信道并行仿真方法的步骤示意图;

图2示出本发明示例性实施例中GPU端计算各光子的吸收散射过程的步骤示意图;

图3示出本发明示例性实施例中GPU端计算各光子的吸收散射过程的流程示意图;

图4示出本发明示例性实施例中基于GPU的水下无线光信道并行仿真流程示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本示例实施方式中首先提供了一种基于GPU的水下无线光信道并行仿真方法,参考图1中所示,该方法可以包括以下步骤:

步骤S101:设定水下无线光通信中各光学特征参数;

步骤S102:CPU端将随机数的生成任务分配给GPU端,由GPU端生成满足所有预设光子运算的随机数;

步骤S103:通过对方位角、散射角以及步长的计算并赋值,确定光子在水下的吸收散射过程;

步骤S104:追踪各光子的所述吸收散射过程,将所有光子的所述吸收散射过程分配给GPU端运算;

步骤S105:所有所述光子的吸收散射过程结束后,产生的运算数据由GPU端拷贝至CPU端,并进行文本数据存储;

步骤S106:根据所述文本数据,统计到达接收端光子的时间,累加同一时间光子的能量得到光子权重与时间的关系曲线,统计到达接收端光子的位置,累加同一位置光子的能量得到光子权重与位置的关系曲线。

本发明的实施例中,利用GPU与CPU协同合作的方式实现程序的高速运行,并通过文本形式对返回数据进行存储,该方法能够有效实现表征水信道的三维散射过程的架构方式,提高了仿真模型的计算效率、缩短了计算时间。

下面,将对本示例实施方式中的上述方法的各个步骤进行更详细的说明。

在步骤S101中,设定仿真海水信道的光学特征参数,信道的光学特征参数包括:海水的吸收系数、海水的散射系数和仿真中复合海水散射特性的散射相函数及各异性因子。具体的,上述光学特征参数可通过参考文献或各地水文监测站监测参数获得,然而需要注意的是,各参数的选取需要与选择光源的波长一致。一般的,为了选取在海水中衰减较小的光波波长,通常波长λ的选取范围约为400nm~600nm,相应的其水体可以通过表1中的吸收散射系数获得。在本发明的实施例中,选取I号水域部分水文系数作为例子,其中吸收系数α为0.114m

表1三种水域的吸收散射系数

在步骤S102中,为了优化随机数生成部分降低随机生成重复率,本发明选取了philox_4x32_10生成器,根据C语言函数库中对philox_4x32_10函数的集成,通过调用生成随机数。

具体的,利用CPU端决定调用内核函数网格、块、线程的维度及尺寸,基于GPU型号,通过结构体dim3 threads()开辟相应数目的子线程,将计算任务分配给各个子线程。且上述过程基于GPU,能够实现CPU中主存数据与GPU显存部分相互传输,进行对并行部分核函数的调用。

在一个的实施例中,步骤S102还包括以下步骤:在GPU端预定义函数生成范围为0到1的随机数,通过一维数组存储决定随机方位角、步长、散射角的随机数。

具体的,随机数的生成过程包括:

Random seed//获得随机种子数;

curand_init()//通过子序列和偏移量来设置调用者分配的初始状态,保证不同的种子产生不同的起始状态和不同的序列;

kernel_set_random()//通过核函数,即GPU端生成随机数;

clock_for_rand//由于philox_4x32_10的伪随机数生成器是通过线性同余法进行迭代计算,为了能够降低随机数的重复性选取钟表时间作为种子的起始值,降低各线程随机数生成时的重复概率。

在步骤S103中,将Z轴正半轴作为光子的传输方向,将出射位置即Z=0表征为光源光子的集合,通过对方位角、散射角以及步长的计算并赋值,确定光子在水下的吸收散射过程。

在步骤S104中,在海水信道内追踪每一个光子的吸收散射过程,将其中运算独立、复杂度高、运算时间长的光子散射轨迹计算部分安排至GPU端,对于初始参量的设定、线程的分配、返回数据的存储、返回数据的排序、返回数据的寻址合并步骤安排到CPU部分运算。

具体的,参照图2和图3,可确定原点位置(0,0,0)为光子的投放位置,通过将该点设定为光子的发射位置,光子沿Z轴正半轴向接收端位置移动,则GPU端计算各光子的散射轨迹的步骤包括以下步骤S1041-S1046。

步骤S1041:计算所述光子的随机步长d,其计算公式为:

当光子进入海水信道时,根据当前水域的吸收系数α和散射系数β确定光子在信道中的传输规律,其中,吸收系数α取值为0.1~3/m,散射系数β取值为0.01~3/m,信道的总衰减系数c=α+β;r

步骤S1042:通过所述随机步长、散射角、方位角确定所述光子的下一次传输方向及位置。

方位角

其中,方位角

散射角θ的计算公式为:

其中,r

其中g为非对称因子,即:散射角的余弦值的平均值

设光子的下一次传输方向为

设光子的下一次传输位置为(x

其中,(x

步骤S1043:当光子散射方向改变时,同时的,光子的权重W

W

其中,W

步骤S1044:根据当前所述光子的位置,判断此时所述光子是否到达接收面,若否则重复上述步骤S1041-S1043,若是则统计该光子的位置、时间以及权重参数,并进行下一光子的散射碰撞;

步骤S1045:判断是否是最后一个光子,若是则统计该光子的位置、时间以及权重参数,若否则重复上述步骤S1044。

在步骤S105中,当最后一个光子的吸收散射结束后,将GPU端对于文本数据如光子设定接收位置的光子权重、光子位置X轴坐标、光子位置Y轴坐标和光子运行时间通过cudaMemcpyDeviceToHost返回CPU端处理。

在步骤S106中,利用快速排序法对返回数据中光子的接收时间、接收位置的X轴坐标、接收位置的Y轴坐标进行排序,并对同一时间或同一位置的光子权重寻址。根据上述这些文本数据,统计到达接收端光子的时间,累加同一时间光子的能量得到光子权重与时间的关系曲线,统计到达接收端光子的位置,累加同一位置光子的能量得到光子权重与位置的关系曲线。

最后,释放主存,退出并行运行,结束并退出GPU。

综上,本发明提供的一种基于GPU的水下无线光信道并行仿真方法,如图4所示,利用GPU与CPU协同合作的方式实现程序的高速运行,并通过文本形式对返回数据进行存储,该方法能够有效提高仿真模型的计算效率、缩短计算时间,能够为水下无线光通信方面提供一种新的并行方案。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号