CN111222240B - 利用gpu加速的热化学非平衡流场数据计算方法和装置 - Google Patents
利用gpu加速的热化学非平衡流场数据计算方法和装置 Download PDFInfo
- Publication number
- CN111222240B CN111222240B CN202010008678.XA CN202010008678A CN111222240B CN 111222240 B CN111222240 B CN 111222240B CN 202010008678 A CN202010008678 A CN 202010008678A CN 111222240 B CN111222240 B CN 111222240B
- Authority
- CN
- China
- Prior art keywords
- gpu
- chemical reaction
- flow field
- field data
- calculation
- 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
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种利用GPU加速的热化学非平衡流场数据计算方法和装置。所述方法包括:通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中,通过GPU从全局内存中读取网格数据和初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和初始来流条件,更新边界条件,通过GPU从全局内存中读取化学反应模型,根据化学反应模型和所述初始来流条件,计算化学反应源项,GPU根据化学反应源项、边界条件以及预先设置的通量计算格式,迭代计算得到流场数据,GPU将所述流场数据存入全局内存;CPU从全局内存读取流场数据并输出。采用本方法能够提高流场数据计算效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种利用GPU加速的热化学非平衡流场数据计算方法和装置。
背景技术
在飞行器进行高超声速飞行时,飞行器周围空气的温度迅速升高,这时气体的状态特征开始发生改变,逐渐出现“热化学非平衡效应”。热化学非平衡效应的出现会严重影响飞行器的气动热环境、气动力载荷以及电磁信号的传输,由于地面试验设备很难对此类现象进行精确地模拟,因此数值计算成为了研究热化学非平衡流动的重要方法。
由于热化学非平衡流动的控制方程是非线性的,并且组分连续方程中存在化学源项,因此给数值模拟带来了巨大的计算开销。随着高超声速技术的逐步实际应用,对热化学非平衡流动数值模拟的计算规模也提出了更高的要求,因此在热化学非平衡流动数值模拟中引入加速技术将具有重要的实际意义。
目前针对高超声速热化学非平衡流动的数值模拟普遍基于x86架构的英特尔(Intel)的中央处理器(Central Processing Units,CPU),CPU虽然功能强大,但不适合执行浮点运算任务,并且CPU运算能力的提升受到摩尔定律的限制,单一的CPU不能满足对热化学非平衡流动这类复杂问题模拟的需要,因此多CPU并行计算成为一种可行的方法。为了进行大规模热化学非平衡流动数值模拟,往往需要借助于包含成千上万颗CPU的超级计算机来完成,并行计算的性能与成本都是与CPU数目成正比的,而超级计算机由于造价高昂不能得到普及,并且这种通过增加内核数量、提高时钟频率的发展方式逐渐受到散热和能耗的问题的限制,对计算性能的提升也越来越有限,因此基于CPU的计算方法不能对热化学非平衡流动问题进行快速、高效地模拟。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决CPU的计算方法不能对热化学非平衡流动问题进行快速、高效地模拟问题的利用GPU加速的热化学非平衡流场数据计算方法和装置。
一种利用GPU加速的热化学非平衡流场数据计算方法,所述方法包括:
通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;
通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;
GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
GPU将所述流场数据存入全局内存;
CPU从全局内存读取流场数据并输出。
在其中一个实施例中,还包括:通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算所述初始来流中各组分的浓度、计算前后向反应常数、计算所述初始来流中各组分的质量生成率、所述初始来流中各组分的生成率倒数项以及计算振动能生成率及其导数项。
在其中一个实施例中,还包括:获取所述化学反应模型中组分个数以及双原子组分个数;根据所述双原子组分个数,设置所述双原子个数对应的计算函数;GPU根据所述计算函数分别进行所述组分个数次数计算得到折合质量、一次计算得到振动松弛特征时间以及一次计算单位体积的能量交换速率;GPU根据双原子个数对应的计算函数得到的折合质量、振动松弛特征时间以及单位体积的能量交换速率,累加得到振动能生成率及其导数项。
在其中一个实施例中,还包括:将预先设置的通量计算格式去分支化,得到分支优化算法;其中所述通量计算格式包括多个选择分支,选择分支分别为间断左侧声波大于0、间断右侧声波小于0以及间断左侧声波小于或等0且间断右侧声波大于或等于0;GPU根据所述化学反应源项、所述边界条件以及所述分支优化算法,迭代计算得到流场数据。
在其中一个实施例中,还包括:GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,采用预先设置的树化归约算法对迭代过程中最大值和加和部分的计算进行优化,迭代计算得到流场数据。
一种利用GPU加速的热化学非平衡流场数据计算装置,所述装置包括:
初始化模块,用于通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
GPU加速模块,用于通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
输出模块,用于GPU将所述流场数据存入全局内存;CPU从全局内存读取流场数据并输出。
一种计算机设备,包括存储器、处理器和图形处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;
通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;
GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
GPU将所述流场数据存入全局内存;
CPU从全局内存读取流场数据并输出。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;
通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;
GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
GPU将所述流场数据存入全局内存;
CPU从全局内存读取流场数据并输出。
上述利用GPU加速的热化学非平衡流场数据计算方法、装置、计算机设备和存储介质,通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中,这部分在计算过程中消耗的时间极少,因此采用CPU直接执行,对于需要消耗大量时间的迭代计算过程,采用GPU进行浮点计算,将GPU作为加速部件与CPU进行配合,可以大大地对流场数据计算过程进行加速,最终将计算的流场数据由CPU输出,本发明实施例,可以显著地对流场数据计算过程进行加速。
附图说明
图1为一个实施例中利用GPU加速的热化学非平衡流场数据计算方法的流程示意图;
图2为一个实施中计算振动能生成率及其导数项步骤的流程示意图;
图3为一个实施例中树状规约算法工作的示意图;
图4为一个实施例中空天飞机算例外形和网格的示意图;
图5为一个实施例中利用GPU加速的热化学非平衡流场数据计算装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的利用GPU加速的热化学非平衡流场数据计算方法,所引入的GPU加速方法的实现是基于CUDA(Compute Unified Device Architecture,统一计算架构)架构实现的。CUDA是NVIDIA推出的用于GPU通用计算的集成编程环境,在该集成编程环境下,开发人员能够在不了解图形知识的条件下进行高级语言环境下的GPU编程,进而高效快速地解决复杂的计算问题。在CUDA架构中,CPU及其内存系统被称为“主机(Host)”,GPU及其存储单元称为“设备(Device)”,由于目前GPU不能独立于CPU存在,所以一个GPU系统包含一个主机和一个以上的设备,它们之间通过PCIe总线连接。
在一个实施例中,如图1所示,提供了一种利用GPU加速的热化学非平衡流场数据计算方法,包括以下步骤:
步骤102,通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中。
在研究热化学非平衡流动问题时,首先需要根据实际问题和物理模型,确定计算区域,对计算区域进行网格划分,从而获得网格数据。
CPU首先读取网格数据,然后根据该计算区域中的实际宏观物理参量,读取质量分数、密度、来流马赫数和所选择的化学反应模型等初始来流条件。
CPU将上述参数均保存在全局内存中,以便GPU的直接调用。
步骤104,通过GPU从全局内存中读取网格数据和初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和初始来流条件,更新边界条件。
由于在进行迭代计算时,迭代算法采用的是无粘通量的计算公式,因此,将初始来流条件作为迭代算法的输入条件,用边界条件作为迭代算法的限制条件。本步骤中,可以采用网格点计算结果和初始来流条件,在迭代过程进行更新。
值得说明的是,在初始条件下,可以计算得到初始边界条件,根据迭代计算的结果,可以再次更新边界条件,由于本发明算流场数据需要大量迭代计算,因此统称为更新边界条件。
步骤106,通过GPU从全局内存中读取化学反应模型,根据化学反应模型和所述初始来流条件,计算化学反应源项。
由于流场中存在热化学非平衡现象,因此需要计算热化学反应源项,以此真实反映流场数据。
步骤108,GPU根据化学反应源项、边界条件以及预先设置的通量计算格式,迭代计算得到流场数据。
根据化学反应源项和通量计算格式,可以确定进行热化学非平衡条件下的通量计算格式,通过边界条件,以通量计算格式为迭代公式,进行迭代可以计算得到流场数据。
步骤110,GPU将流场数据存入全局内存。
GPU将流场数据存入全局内存,以便CPU直接调用。
步骤112,CPU从全局内存读取流场数据并输出。
CPU从全局内存读取流场数据并输出,完成流场数据的计算。
上述利用GPU加速的热化学非平衡流场数据计算方法中,通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中,这部分在计算过程中消耗的时间极少,因此采用CPU直接执行,对于需要消耗大量时间的迭代计算过程,采用GPU进行浮点计算,将GPU作为加速部件与CPU进行配合,可以大大地提高流场数据计算的速度,最终将计算的流场数据由CPU输出,本发明实施例,可以显著地实现对流场数据计算过程进行加速。
在其中一个实施例中,计算各化学反应源项的步骤包括:通过GPU从全局内存中读取化学反应模型,根据化学反应模型和初始来流条件,计算初始来流中各组分的浓度、计算前后向反应常数、计算初始来流中各组分的质量生成率、初始来流中各组分的生成率导数项以及计算振动能生成率及其导数项。
具体地,CPU从全局内存中读取初始来流条件中的组分密度、平动-转动温度、振动温度、组分振动能以及振动定容热容等信息,然后根据化学反应模型,计算各组分的浓度、计算前后向反应常数、计算初始来流中各组分的质量生成率、初始来流中各组分的生成率导数项以及计算振动能生成率及其导数项。
在其中一个实施例中,如图2所示,提供一种计算振动能生成率及其导数项步骤的示意性流程图,具体步骤如下:
步骤202,获取化学反应模型中组分个数以及双原子组分个数。
步骤204,根据双原子组分个数,设置双原子个数对应的计算函数。
步骤206,GPU根据计算函数分别进行所述组分个数次数计算得到折合质量、一次计算得到振动松弛特征时间以及一次计算单位体积的能量交换速率。
步骤208,GPU根据双原子个数对应的计算函数得到的折合质量、振动松弛特征时间以及单位体积的能量交换速率,累加得到振动能生成率及其导数项。
本实施例中,由于GPU进行循环计算的效率低,代码内多次循环计算导致计算效率低,因此采用的用双原子个数对应的计算函数替代双原子个数个循环,以此可以使GPU在每个计算过程执行相同的代码,提高GPU的计算速度。
在一个具体实施例中,振动能生成率及其导数的计算需要进行如下循环:mol×ns次循环计算μsr,mol次循环计算τs,mol次循环计算QT-V,其中μsr为碰撞组分s和r的折合质量,τs是振动松弛特征时间,QT-V为单位体积的能量交换速率,ns和mol分别指化学反应模型中的组分个数和其中的双原子组分个数,考虑到各个mol循环间无数据依赖关系,本发明用mol个函数代替所有的mol循环,此时每个函数执行相同的操作,依次完成ns次μsr计算,一次τs计算及一次QT-V计算,最后累加完成结果计算,以提高GPU的计算效率。
具体的,以5组分17反应的Gupta化学反应模型为例,假设气体中只存在N2、O2、NO、N和O五种组分,则ns为5、mol为3。
在其中一个实施例中,通量计算格式可以选择HLLEM-EC格式,HLLEM-EC格式是在HLLEM格式的中间通量计算方法的基础上引入了一项压力修正项,其形式如下:
经过修正的无粘通量可以写为如下形式:
其中向量F代表数值通量,U代表守恒量,fp是一个与当地马赫数相关的权函数,a是声速,下标“L”和“R”分别代表间断左右两侧的物理量,Δp=pR-pL表示间断两侧的压力差,R2和R3是雅可比矩阵的第二和第三个右特征值,α2和α3是对应的波强,δ2和δ3为逆耗散系数。SL和SR分别为左右声波,可以通过下式计算得到:
符号“^”代表相应变量的Roe平均值。
在其中一个实施例中,迭代计算得到流场数据的步骤包括:将预先设置的通量计算格式去分支化,得到分支优化算法;其中通量计算格式为选择算法,判断条件分别为间断左侧声波大于0、间断右侧声波小于0以及间断左侧声波小于或等0且间断右侧声波大于或等于0;GPU根据化学反应源项、边界条件以及分支优化算法,迭代计算得到流场数据。
本实施例中,因为束内线程执行的指令都是相同的,任何一个线程导致的分支都会使束内所有线程都执行这个分支,不同的执行路径会被串行化同时执行的指令数会相应的增加。如果代码中存在多个判断与分支语句或者它们的多重嵌套结构,此时束内分支将变得非常严重。由于通量计算格式是选择算法,因此存在多个分支,导致计算效率变低。
以上述通量计算格式为例,在去分支化时,无粘通量可以写为如下形式:
本实施例中,可以显著提升GPU的计算效率。
在其中一个实施例中,还可以采用树化归约算法提升GPU的计算效率,具体步骤为:GPU根据化学反应源项、所述边界条件以及预先设置的通量计算格式,采用预先设置的树化归约算法对迭代过程中最大值和求和部分的计算进行优化,迭代计算得到流场数据。
具体地,应用树形归约算法求最大值或加和问题。GPU的指令发射单位是线程束(现代CUDAGPU以32条线程为一束),需要考虑指令的一致性问题。树形并行规约算法是适合CUDA GPU架构特点的最优规约算法,可对解算器中的全局运算完成规约操作,同时最大限度地避免了指令分支问题,进而提高并行效率。对于每次迭代都需要规约的CFD计算问题,会带来较为明显的优化效果。该优化方法属于指令流优化。图3演示了树状规约算法的基本思路,其出发点是尽量规避分支指令的出现给GPU运算造成的指令不一致导致的效率降低,上述算法保证了束内线程的路径一致性。同时通过指定步长,可避免Bank访问冲突,使算法性能达到最优。CFD算法中全局求时间步,误差统计等操作,均可应用此算法实现优化。
利用一个空天飞机算例对本发明提出的GPU加速算法进行验证,其外形和网格如图4所示。经过对此外形不同网格量情况的计算,结果表明相对于Intel Xeon E5-2670 CPU单一核心的计算时间,单块NVIDIA GTX Titan Black GPU可获得107至125倍的加速比。
应该理解的是,虽然图1和图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种利用GPU加速的热化学非平衡流场数据计算装置,包括:初始化模块502、GPU加速模块504和输出模块506,其中:
初始化模块502,用于通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中。
GPU加速模块504,用于通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据。
输出模块506,用于GPU将所述流场数据存入全局内存;CPU从全局内存读取流场数据并输出。
在其中一个实施例中,GPU加速模块504还用于通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算所述初始来流中各组分的浓度、计算前后向反应常数、计算所述初始来流中各组分的质量生成率、所述初始来流中各组分的生成率倒数项以及计算振动能生成率及其导数项。
在其中一个实施例中,GPU加速模块504还用于获取所述化学反应模型中组分个数以及双原子组分个数;根据所述双原子组分个数,设置所述双原子个数对应的计算函数;GPU根据所述计算函数分别进行所述组分个数次数计算得到折合质量、一次计算得到振动松弛特征时间以及一次计算单位体积的能量交换速率;GPU根据双原子个数对应的计算函数得到的折合质量、振动松弛特征时间以及单位体积的能量交换速率,累加得到振动能生成率及其导数项。
在其中一个实施例中,GPU加速模块504还用于将预先设置的通量计算格式去分支化,得到分支优化算法;其中所述通量计算格式包括多个选择分支,选择分支分别为间断左侧声波大于0、间断右侧声波小于0以及间断左侧声波小于或等0且间断右侧声波大于或等于0;GPU根据所述化学反应源项、所述边界条件以及所述分支优化算法,迭代计算得到流场数据。
在其中一个实施例中,GPU加速模块504还用于GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,采用预先设置的树化归约算法对迭代过程中最大值和加和部分的计算进行优化,迭代计算得到流场数据。
关于利用GPU加速的热化学非平衡流场数据计算装置的具体限定可以参见上文中对于利用GPU加速的热化学非平衡流场数据计算方法的限定,在此不再赘述。上述利用GPU加速的热化学非平衡流场数据计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器包括中央处理器(CPU)和图形处理器(GPU),用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种利用GPU加速的热化学非平衡流场数据计算方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、中央处理器和图形处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被中央处理器和图形处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种利用GPU加速的热化学非平衡流场数据计算方法,所述方法包括:
通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;
通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;
GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
GPU将所述流场数据存入全局内存;
CPU从全局内存读取流场数据并输出。
2.根据权利要求1所述的方法,其特征在于,通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项,包括:
通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算所述初始来流中各组分的浓度、计算前后向反应常数、计算所述初始来流中各组分的质量生成率、所述初始来流中各组分的生成率倒数项以及计算振动能生成率及其导数项。
3.根据权利要求2所述的方法,其特征在于,所述计算振动能生成率及其导数项的步骤,包括:
获取所述化学反应模型中组分个数以及双原子组分个数;
根据所述双原子组分个数,设置所述双原子个数对应的计算函数;
GPU根据所述计算函数分别进行所述组分个数次数计算得到折合质量、一次计算得到振动松弛特征时间以及一次计算单位体积的能量交换速率;
GPU根据双原子个数对应的计算函数得到的折合质量、振动松弛特征时间以及单位体积的能量交换速率,累加得到振动能生成率及其导数项。
4.根据权利要求1至3任一项所述的方法,其特征在于,GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据,包括:
将预先设置的通量计算格式去分支化,得到分支优化算法;其中所述通量计算格式包括多个选择分支,选择分支分别为间断左侧声波大于0、间断右侧声波小于0以及间断左侧声波小于或等0且间断右侧声波大于或等于0;
GPU根据所述化学反应源项、所述边界条件以及所述分支优化算法,迭代计算得到流场数据。
5.根据权利要求1至3任一项所述的方法,其特征在于,GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据,包括:
GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,采用预先设置的树化归约算法对迭代过程中最大值和加和部分的计算进行优化,迭代计算得到流场数据。
6.一种利用GPU加速的热化学非平衡流场数据计算装置,其特征在于,包括:
初始化模块,用于通过CPU读取预先设置的网格数据、化学反应模型以及初始来流条件,并存储在全局内存中;
GPU加速模块,用于通过GPU从全局内存中读取所述网格数据和所述初始来流条件,进行预先设置流场区域内的网格点计算,根据网格点计算结果和所述初始来流条件,更新边界条件;通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算化学反应源项;GPU根据所述化学反应源项、所述边界条件以及预先设置的通量计算格式,迭代计算得到流场数据;
输出模块,用于GPU将所述流场数据存入全局内存;CPU从全局内存读取流场数据并输出。
7.根据权利要求6所述的装置,其特征在于,所述GPU加速模块还用于通过GPU从全局内存中读取所述化学反应模型,根据所述化学反应模型和所述初始来流条件,计算所述初始来流中各组分的浓度、计算前后向反应常数、计算所述初始来流中各组分的质量生成率、所述初始来流中各组分的生成率倒数项以及计算振动能生成率及其导数项。
8.根据权利要求7所述的装置,其特征在于,获取所述化学反应模型中组分个数以及双原子组分个数;根据所述双原子组分个数,设置所述双原子个数对应的计算函数;GPU根据所述计算函数分别进行所述组分个数次数计算得到折合质量、一次计算得到振动松弛特征时间以及一次计算单位体积的能量交换速率;GPU根据双原子个数对应的计算函数得到的折合质量、振动松弛特征时间以及单位体积的能量交换速率,累加得到振动能生成率及其导数项。
9.一种计算机设备,包括存储器、中央处理器和图形处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008678.XA CN111222240B (zh) | 2020-01-06 | 2020-01-06 | 利用gpu加速的热化学非平衡流场数据计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008678.XA CN111222240B (zh) | 2020-01-06 | 2020-01-06 | 利用gpu加速的热化学非平衡流场数据计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111222240A CN111222240A (zh) | 2020-06-02 |
CN111222240B true CN111222240B (zh) | 2022-08-19 |
Family
ID=70831242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010008678.XA Active CN111222240B (zh) | 2020-01-06 | 2020-01-06 | 利用gpu加速的热化学非平衡流场数据计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111222240B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257313B (zh) * | 2020-10-21 | 2024-05-14 | 西安理工大学 | 一种基于gpu加速的污染物输移高分辨率数值模拟方法 |
CN114925627B (zh) * | 2022-05-12 | 2024-03-15 | 南京航空航天大学 | 一种基于图形处理器的直升机流场数值模拟系统及方法 |
CN115938494B (zh) * | 2022-11-24 | 2024-01-09 | 中国科学院大气物理研究所 | 气相化学模块的dcu加速计算方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681972A (zh) * | 2012-04-28 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种利用GPU加速格子-Boltzmann的方法 |
CN106092496A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 针对跨尺度流动的apdsmc流场检测方法 |
-
2020
- 2020-01-06 CN CN202010008678.XA patent/CN111222240B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681972A (zh) * | 2012-04-28 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种利用GPU加速格子-Boltzmann的方法 |
CN106092496A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 针对跨尺度流动的apdsmc流场检测方法 |
Non-Patent Citations (2)
Title |
---|
多图形处理器上Lattice-Boltzmann方法的加速;吴亮等;《计算机辅助设计与图形学学报》;20101115(第11期);全文 * |
高超声速热化学非平衡绕流分布式并行计算;王江峰等;《中国科学技术大学学报》;20080515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111222240A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111222240B (zh) | 利用gpu加速的热化学非平衡流场数据计算方法和装置 | |
Waidyasooriya et al. | OpenCL-based FPGA-platform for stencil computation and its optimization methodology | |
Brandvik et al. | Acceleration of a 3D Euler solver using commodity graphics hardware | |
Huthwaite | Accelerated finite element elastodynamic simulations using the GPU | |
Li et al. | GPU-accelerated preconditioned iterative linear solvers | |
Brandvik et al. | An accelerated 3D Navier–Stokes solver for flows in turbomachines | |
Corrigan et al. | Semi‐automatic porting of a large‐scale Fortran CFD code to GPUs | |
US20120254845A1 (en) | Vectorizing Combinations of Program Operations | |
Brandvik et al. | An accelerated 3D Navier-Stokes solver for flows in turbomachines | |
US10180996B2 (en) | Multi-component computational fluid dynamics simulations | |
Shershnev et al. | HyCFS, a high-resolution shock capturing code for numerical simulation on hybrid computational clusters | |
Krommydas et al. | On the characterization of opencl dwarfs on fixed and reconfigurable platforms | |
Falch et al. | Register caching for stencil computations on GPUs | |
Bjerge et al. | A scalable and efficient convolutional neural network accelerator using HLS for a system-on-chip design | |
Ma et al. | A parallel meshless dynamic cloud method on graphic processing units for unsteady compressible flows past moving boundaries | |
US8495120B2 (en) | Method for using a graphics processing unit for accelerated iterative and direct solutions to systems of linear equations | |
CN111930491B (zh) | 一种全局通信优化加速方法、装置和计算机设备 | |
Lanzagorta et al. | Introduction to reconfigurable supercomputing | |
Binotto et al. | Iterative sle solvers over a cpu-gpu platform | |
Diamantopoulos et al. | A system-level transprecision FPGA accelerator for BLSTM using on-chip memory reshaping | |
Baptista et al. | Raising the abstraction level of a deep learning design on FPGAs | |
Lorenzo et al. | Using an extended Roofline Model to understand data and thread affinities on NUMA systems | |
Corrigan et al. | Porting of FEFLO to multi-GPU clusters | |
CN112100099B (zh) | 一种面向多核向量处理器的格子玻尔兹曼优化方法 | |
Marongiu et al. | GPU implementation of a SPH-ALE fluid dynamics solver |
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 |