一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于GPU的短波辐射传输模式三维加速方法与流程

2022-03-02 02:41:55 来源:中国专利 TAG:

一种基于gpu的短波辐射传输模式三维加速方法
技术领域
1.本发明涉及高性能计算技术领域,具体涉及一种基于gpu的短波辐射传输模式三维加速方法。


背景技术:

2.太阳辐射是大气物理中的关键因素之一。能够合理准确地模拟来自地球表面的大气辐射分布及变化情况,对预测未来天气和气候变化有很大影响。大气辐射传输消耗了整个大气物理过程大量的计算资源,因此,开发出高精度和高速度的辐射传输模型对于全球大气建模非常有意义。快速辐射传输模型(rrtmg)是大气环流中计算长波和短波辐射通量的一个相关k分布模型。由于rrtmg的高准确性,已将其大量应用于天气预报和多种气候模型中。虽然rrtmg的计算速度相当快,但它仍然占据整个大气物理过程25%到35%的计算时间,所以非常有必要对其进一步加速。目前,已经开发出了基于cuda c的短波辐射模式加速模型cc-rrtmg_sw,但是其仅使用了一维并行计算且没有针对并行算法进行性能优化,未充分发挥出使用gpu计算的优势,仍然有很大的优化空间。
3.rrtmg_sw由两个子例程mcica_subcol_sw和rrtmg_sw组成,其中rrtmg_sw是rrtmg_sw的驱动程序,计算耗时最多,所以主要对rrtmg_sw进行基于gpu的三维加速计算。在rrtmg_sw中,各个子例程的计算时间各异,其中spcvmc_sw耗时最长,占rrtmg_sw总计算时间的71.4%。对于这四个子例程,它们在水平、垂直、g-point以及jp-band维度的数据计算具有部分独立性,可以使用一维、二维和三维并行相结合的方式对其进行加速计算。
4.表1 rrtmg_sw各子程序计算时间(s)
[0005][0006]


技术实现要素:

[0007]
本发明的目的在于提供一种基于gpu的短波辐射传输模式三维加速方法,用以提高短波辐射传输模式rrtmg_sw的计算效率。
[0008]
为实现上述目的,本发明的技术方案为:
[0009]
步骤1.对rrtmg_sw中inatm_sw、clddprmc_sw、setcoef_sw以及spcvmc_sw四个子例程进行二维和三维并行化计算,并行后的kernel分别为inatm_d、cldprmc_d、setcoef_d、taumol_d以及spcvmc_d。
[0010]
inatm_d:由于数据依赖性以及数据同步需求,需要将inatm_sw划分为五个kernel进行计算,分别为inatm_d1、inatm_d2、inatm_d3、inatm_d4以及inatm_d5。其中,inatm_d1、inatm_d2和inatm_d4在水平和垂直维度的计算无依赖性,可以进行二维并行计算;inatm_d3在水平、垂直以及g-point维度的计算无依赖性,可以进行三维并行计算;inatm_d5仅在水平维度无计算依赖性,可以进行一维并行计算。
[0011]
cldprmc_d:cldprmc_sw用于传递三维辐射云属性参数,其计算部分在水平、垂直以及g-point维度均无依赖性,因此cldprmc_sw使用三维并行计算。
[0012]
setcoef_d:setcoef_sw被划分为了两个kernel,setcoef_d1和setcoef_d2。其中,setcoef_d1的计算在水平和垂直维度无依赖性,因此使用二维并行计算;setcoef_d2中的计算部分为累加操作,仅在水平维度计算无依赖性,因此使用一维并行计算。
[0013]
spcmvc_d:spcvmc_sw调用三个子例程taumol、reftra以及vrtqdr。在spcvmc_d的实现过程中,将taumol单独作为一个kernel即taumol_d,由于taumol_d在水平和垂直维度的计算无依赖性,因此采用二维并行计算。spcvmc_sw剩余的计算部分划分为两个kernel,分别为spcvmc_d1以及spcvmc_d2。spcvmc_d1的计算在水平和jp-band维度(jp-band维度用于区分短波十四个波段的计算)无依赖性,因此采用二维并行计算;spcvmc_d2是对短波十四个波段辐射通量的积分操作,仅在水平维度计算无依赖性,因此使用一维并行计算。
[0014]
步骤2.对kernel spcvmc_d2使用gpu寄存器进行访存优化。线程访问寄存器的速度远快于访问全局内存global memory,但是寄存器是gpu每个核中的有限资源,如果一个线程使用了过多的寄存器,就会使多核处理器的占用率降低,因此并不是使用越多的寄存器,程序的效率就会越高。在spcvmc_d2中,考虑寄存器的使用率和占用率的最佳平衡,将六个存储辐射通量的二维数组临时存储于寄存器中,在计算过程中将其降维为一维数组,计算完成之后再通过增加循环过程将其重新赋值到global memory的二维数组中。
[0015]
步骤3.使用cuda流对数据传输进行优化。创建四个cuda流,将spcvmc_d的数据传输、kernel计算划分为四部分,每部分运行于一个cuda流中,单个cuda流分别依次完成cuda memcpy htod、kernel execution、cuda memcpy dtoh三个过程,这样四个cuda流的计算和数据传输可以互相重叠,降低数据传输的时间。
[0016]
本发明具有如下优点:
[0017]
本发明将基于gpu的加速技术和cuda并行计算架构应用到了短波辐射传输模式rrtmg_sw中,在不考虑i/o传输下,在一个nvidia tesla v100gpu上实现了99.09倍的加速,在考虑i/o传输的情况下依然有27.19倍的加速。大幅提升了短波辐射传输模式rrtmg_sw的计算效率。
附图说明
[0018]
图1本发明的三维加速算法流程示意图。
[0019]
图2rrtmg短波辐射程序结构。
[0020]
图3当水平列数量(ncol值)不同时,rrtmg_sw的三维加速版本在一个v100gpu上相较于串行版本的运行时间加速比。
[0021]
图4当ncol=2048时,rrtmg_sw的三维加速版本在不同类型gpu上相较于串行版本运行时间的加速比。
具体实施方式
[0022]
下面将结合本发明实施例中的附图和表格,对本发明实施例中的技术方案进行清楚、完整地描述。
[0023]
rrtmg_sw基于gpu的三维加速算法如下:
[0024][0025]
以下算法2~6分别为核函数inatm_d、cldprmc_d、setcoef_d、taumol_d和spcvmc_d二维和三维并行算法实现的伪代码。
[0026][0027][0028]
[0029]
[0030][0031]
rrtmg_sw在tesla k20,k40和v100gpu上的运行时间和相较于串行版本的加速比如表2所示。表中串行时间为rrtmg_sw使用cpu串行计算的运行时间,gpu时间为rrtmg_sw在
三种gpu上三维并行计算的运行时间。实验数据规模为1024
×
768,为了使rrtmg_sw在不同gpu上并行计算效率能达到最高,表中分别在不同的gpu上取所能达到的最大ncol值(ncol为短波辐射水平列数量)。实验结果表明在一个tesla v100 gpu上rrtmg_sw的加速比最高能够达到99.09
×
,证明了该发明对提升短波辐射传输模式rrtmg_sw计算效率的有效性。
[0032]
表2不同gpu上的计算时间(s)及加速比(数据规模1024
×
768,block size=128)
[0033][0034][0035][0036]
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本
发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献