基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf

上传人:梁腾 文档编号:10481448 上传时间:2021-06-22 格式:PDF 页数:16 大小:667.55KB
收藏 版权申诉 举报 下载
基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf_第1页
第1页 / 共16页
基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf_第2页
第2页 / 共16页
基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf_第3页
第3页 / 共16页
文档描述:

《基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf》由会员分享,可在线阅读,更多相关《基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf(16页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010564168.0 (22)申请日 2020.06.19 (71)申请人 上海眼控科技股份有限公司 地址 200030 上海市徐汇区中山南二路107 号1幢20层I单元 (72)发明人 周康明李震坤 (74)专利代理机构 广州华进联合专利商标代理 有限公司 44224 代理人 曹瀚青 (51)Int.Cl. G06F 8/65(2018.01) G06F 8/71(2018.01) (54)发明名称 基于WRF模式的GPU移植方法、 装置、 设备和 存储介质 (57)摘。

2、要 本申请涉及一种基于WRF模式的GPU移植方 法、 装置、 设备和存储介质。 该方法包括: 获取目 标函数所需的输入参数; 目标函数为WRF模式执 行程序中的功能函数, 用于实现WRF模式的气象 数据处理过程; 根据输入参数执行目标函数对应 的CPU版本和GPU版本, 得到CPU版本的执行结果 和GPU版本的执行结果; 将CPU版本的执行结果和 GPU版本的执行结果进行比较, 当比较结果满足 预设条件时, 将GPU版本进行存储, 完成WRF模式 的GPU移植过程; 预设条件用于表征GPU版本的执 行性能。 由此通过对比CPU版本和GPU版本的执行 结果高效率完成GPU版本的移植过程, 后续由。

3、GPU 版本执行WRF模式的气象数据处理过程时, 可大 大提高相应的执行性能, 对当前WRF模式的计算 需要提供良好的数据基础。 权利要求书2页 说明书10页 附图3页 CN 111580848 A 2020.08.25 CN 111580848 A 1.一种基于WRF模式的GPU移植方法, 其特征在于, 所述方法包括: 获取目标函数所需的输入参数; 所述目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 根据所述输入参数执行所述目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行 结果和GPU版本的执行结果; 将所述CPU版本的执行结果和所述GPU版。

4、本的执行结果进行比较, 当比较结果满足预设 条件时, 将所述GPU版本进行存储, 完成WRF模式的GPU移植过程; 所述预设条件用于表征GPU 版本的执行性能。 2.根据权利要求1所述的方法, 其特征在于, 所述目标函数包括WSM6函数; 在所述获取 目标函数所需的输入参数之前, 所述方法还包括: 执行所述WRF模式执行程序中气象数据的预处理过程, 得到所述WSM6函数所需的输入 参数, 并将所述输入参数保存至存储文件。 3.根据权利要求2所述的方法, 其特征在于, 所述获取目标函数所需的输入参数, 包括: 通过执行移植主程序, 从所述存储文件中获取目标函数所需的输入参数。 4.根据权利要求1。

5、所述的方法, 其特征在于, 在所述根据所述输入参数执行所述目标函 数对应的CPU版本和GPU版本之前, 所述方法还包括: 采用预设的GPU版本规则对所述目标函数对应的CPU版本进行改写, 得到所述GPU版本; 所述GPU版本规则包括CUDA规则和/或OpenACC规则, 所述GPU版本的调用接口与所述CPU版 本的调用接口相同。 5.根据权利要求4所述的方法, 其特征在于, 所述根据所述输入参数执行所述目标函数 对应的CPU版本和GPU版本, 得到CPU版本的执行结果和GPU版本的执行结果, 包括: 执行移植主程序, 通过调用接口将所述输入参数传入所述目标函数对应的CPU版本, 执 行所述CP。

6、U版本得到对应的执行结果; 执行移植主程序, 通过调用接口将所述输入参数传入所述目标函数对应的GPU版本, 执 行所述GPU版本得到对应的执行结果。 6.根据权利要求1所述的方法, 其特征在于, 所述执行结果包括执行时间和气象预测结 果; 所述将所述CPU版本的执行结果和所述GPU版本的执行结果进行比较, 当比较结果满足 预设条件时, 将所述GPU版本进行存储, 包括: 将所述GPU版本的执行时间与所述CPU版本的执行时间进行比较, 确定所述GPU版本的 加速倍数; 将所述GPU版本的气象预测结果和所述CPU版本的气象预测结果进行比较, 确定所述 GPU版本的结果误差; 当所述GPU版本的加速。

7、倍数大于或者等于预设的倍数阈值, 且所述GPU版本的结果误差 小于或者等于预设的误差阈值, 将所述GPU版本保存至存储文件。 7.根据权利要求6所述的方法, 其特征在于, 所述方法还包括: 若所述GPU版本的加速倍数小于所述倍数阈值, 或者所述GPU版本的结果误差大于所述 误差阈值, 则对所述GPU版本进行更新; 更新后返回执行根据所述输入参数执行所述目标函 数对应的GPU版本的步骤。 8.一种基于WRF模式的GPU移植装置, 其特征在于, 所述装置包括: 权利要求书 1/2 页 2 CN 111580848 A 2 获取模块, 用于获取目标函数所需的输入参数; 所述目标函数为WRF模式执行程。

8、序中的 功能函数, 用于实现WRF模式的数据处理过程; 执行模块, 用于根据所述输入参数执行所述目标函数对应的CPU版本和GPU版本, 得到 CPU版本的执行结果和GPU版本的执行结果; 比较模块, 用于将所述CPU版本的执行结果和所述GPU版本的执行结果进行比较, 当比 较结果满足预设条件时, 将所述GPU版本进行存储, 完成WRF模式的GPU移植过程; 所述预设 条件用于表征GPU版本的执行性能。 9.一种计算机设备, 包括存储器和处理器, 所述存储器存储有计算机程序, 其特征在 于, 所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述方法的步骤。 10.一种计算机可读存储介质,。

9、 其上存储有计算机程序, 其特征在于, 所述计算机程序 被处理器执行时实现权利要求1-7中任一项所述方法的步骤。 权利要求书 2/2 页 3 CN 111580848 A 3 基于WRF模式的GPU移植方法、 装置、 设备和存储介质 技术领域 0001 本申请涉及气象科学技术领域, 特别是涉及一种基于WRF模式的GPU移植方法、 装 置、 设备和存储介质。 背景技术 0002 随着气象科学的发展, 数值预报(numerical weather prediction)已成为提高气 象预报能力的核心技术, 数值模式则是开展数值预报不可或缺的工具。 WRF(The Weather Research 。

10、and Forecasting Model)模式是天气预报中常用的数值模式, 该模式中的微物 理模块WSM6(WRF-Single-Moment 6-Class)是一种高度计算密集型模块, 当前WSM6模块的 计算过程多是基于CPU架构来执行的。 0003 现如今, WRF模式向着更高分辨率、 更复杂物理过程、 集合预报、 多模式耦合的方向 发展, 则其对计算机处理能力的要求也越来越高。 因此, 现有的CPU架构已不能满足WRF模式 的计算需要。 发明内容 0004 基于此, 有必要针对传统技术中现有的CPU架构已不能满足WRF模式的计算需求的 问题, 提供一种基于WRF模式的GPU移植方法、。

11、 装置、 设备和存储介质。 0005 一种基于WRF模式的GPU移植方法, 该方法包括: 0006 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 0007 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行结果 和GPU版本的执行结果; 0008 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结果满足预设条件 时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的执行性 能。 0009 在其中一个实施例中, 目标函数包括WSM6函数; 在获取目标。

12、函数所需的输入参数 之前, 上述方法还包括: 0010 执行WRF模式执行程序中气象数据的预处理过程, 得到WSM6函数所需的输入参数, 并将输入参数保存至存储文件。 0011 在其中一个实施例中, 获取目标函数所需的输入参数, 包括: 0012 通过执行移植主程序, 从存储文件中获取目标函数所需的输入参数。 0013 在其中一个实施例中, 在根据输入参数执行目标函数对应的CPU版本和GPU版本之 前, 上述方法还包括: 0014 采用预设的GPU版本规则对目标函数对应的CPU版本进行改写, 得到GPU版本; 该 GPU版本规则包括CUDA规则和/或OpenACC规则, GPU版本的调用接口与。

13、CPU版本的调用接口 相同。 说明书 1/10 页 4 CN 111580848 A 4 0015 在其中一个实施例中, 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得 到CPU版本的执行结果和GPU版本的执行结果, 包括: 0016 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的CPU版本, 执行 CPU版本得到对应的执行结果; 0017 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的GPU版本, 执行 GPU版本得到对应的执行结果。 0018 在其中一个实施例中, 上述执行结果包括执行时间和气象预测结果; 将CPU版本的 执行结果和GPU版本的执行结果进。

14、行比较, 当比较结果满足预设条件时, 将GPU版本进行存 储, 包括: 0019 将GPU版本的执行时间与CPU版本的执行时间进行比较, 确定GPU版本的加速倍数; 0020 将GPU版本的气象预测结果和CPU版本的气象预测结果进行比较, 确定GPU版本的 结果误差; 0021 当GPU版本的加速倍数大于或者等于预设的倍数阈值, 且GPU版本的结果误差小于 或者等于预设的误差阈值, 将GPU版本保存至存储文件。 0022 在其中一个实施例中, 上述方法还包括: 0023 若GPU版本的加速倍数小于倍数阈值, 或者GPU版本的结果误差大于误差阈值, 则 对GPU版本进行更新; 更新后返回执行根据。

15、输入参数执行目标函数对应的GPU版本的步骤。 0024 一种基于WRF模式的GPU移植装置, 该装置包括: 0025 获取模块, 用于获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的 功能函数, 用于实现WRF模式的数据处理过程; 0026 执行模块, 用于根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版 本的执行结果和GPU版本的执行结果; 0027 比较模块, 用于将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结 果满足预设条件时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征 GPU版本的执行性能。 0028。

16、 一种计算机设备, 包括存储器和处理器, 存储器存储有计算机程序, 处理器执行该 计算机程序时实现以下步骤: 0029 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 0030 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行结果 和GPU版本的执行结果; 0031 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结果满足预设条件 时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的执行性 能。 0032 一种计算机可读存储介质, 其上存储有计算。

17、机程序, 该计算机程序被处理器执行 时实现以下步骤: 0033 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 0034 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行结果 说明书 2/10 页 5 CN 111580848 A 5 和GPU版本的执行结果; 0035 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结果满足预设条件 时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的执行性 能。 0036 上述基于WRF模式的GPU移植方法、。

18、 装置、 计算机设备和可读存储介质, 能够获取目 标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于实现WRF模式的 气象数据处理过程; 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的 执行结果和GPU版本的执行结果; 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当 比较结果满足预设条件时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用 于表征GPU版本的执行性能。 由此通过对比CPU版本和GPU版本的执行结果高效率完成GPU版 本的移植过程, 后续由GPU版本执行WRF模式的气象数据处理过程时, 可大大提高相。

19、应的执 行性能, 对当前WRF模式的计算需要提供良好的数据基础。 附图说明 0037 图1为一个实施例中计算机设备的内部结构图; 0038 图2为一个实施例中基于WRF模式的GPU移植方法的流程示意图; 0039 图3为另一个实施例中基于WRF模式的GPU移植方法的流程示意图; 0040 图4为又一个实施例中基于WRF模式的GPU移植方法的流程示意图; 0041 图5为一个实施例中基于WRF模式的GPU移植装置的结构框图。 具体实施方式 0042 为了使本申请的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本申请进行进一步详细说明。 应当理解, 此处描述的具体实施例仅仅用以。

20、解释本申请, 并不 用于限定本申请。 0043 本申请实施例提供的基于WRF模式的GPU移植方法, 可以适用于如图1所示的计算 机设备。 该计算机设备包括通过系统总线连接的处理器、 存储器, 该存储器中存储有计算机 程序, 处理器执行该计算机程序时可以执行下述方法实施例的步骤。 可选地, 该计算机设备 还可以包括通信接口、 显示屏和输入装置。 其中, 该计算机设备的处理器用于提供计算和控 制能力。 该计算机设备的存储器包括非易失性存储介质、 内存储器, 该非易失性存储介质存 储有操作系统和计算机程序。 该内存储器为非易失性存储介质中的操作系统和计算机程序 的运行提供环境。 该计算机设备的通信接。

21、口用于与外部的终端通过网络连接通信。 可选地, 该计算机设备可以是个人计算机(personal computer, 简称PC), 还可以是个人数字助理, 还可以是其他的终端设备, 例如平板电脑(portable android device, 简称PAD)、 手机等 等, 还可以是云端或者远程服务器, 本申请实施例对计算机设备的具体形式并不做限定。 0044 在一个实施例中, 如图2所示, 提供了一种基于WRF模式的GPU移植方法, 本实施例 涉及的是基于WRF模式下CPU版本和GPU版本的执行结果, 对GPU版本进行移植的具体过程。 以该方法应用于图1中的计算机设备为例进行说明, 包括以下步。

22、骤: 0045 S101, 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函 数, 用于实现WRF模式的气象数据处理过程。 说明书 3/10 页 6 CN 111580848 A 6 0046 其中, 数值预报模式是在一定的初值和边值条件下(如通过气象站观测的地表气 压、 地表湿度等气象数值), 由大型计算机作数值计算, 求解描写天气演变过程的流体力学 和热力学的方程组, 预测大气运动状态和天气现象的方法; 而WRF模式为其中常用的数值预 报模式, 可以看出, WRF模式的计算过程非常复杂, 其中包含多个计算模块, 微物理模块WSM6 便是其中的一种高度计算密集型模块。 0。

23、047 通常, WSM6模块对应WRF模式代码中的WSM6函数, WRF模式通过在module_ microphysics_driver.F程序(即WRF模式执行程序)中调用WSM6函数来执行WSM模块。 可选 地, 上述目标函数可以WSM6函数, 当然也可以为WRF模式中其他模块对应的函数, 可用于实 现WRF模式的气象数据处理过程。 为将WSM6函数的代码移植到GPU上并方便后续调试, 本实 施例将WSM6函数从整个module_microphysics_driver.F程序中抽离出来单独执行, 那么在 调用WSM6函数时需要确定该函数的输入参数。 可选地, 计算机设备可以在module_。

24、 microphysics_driver.F程序执行过程中, 调用WSM6函数之前获取到要输入该函数的输入 参数。 0048 S102, 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行 结果和GPU版本的执行结果。 0049 具体地, 本实施例中WSM6函数对应的原始代码为CPU版本, 计算机设备可以根据 GPU版本的相关规则将CPU版本改写为GPU版本, 然后将上述输入参数分别输入CPU版本和 GPU版本的输入接口, 以分别执行对应的CPU版本和GPU版本, 得到CPU版本的执行结果和GPU 版本的执行结果。 0050 S103, 将CPU版本的执行结果和GPU。

25、版本的执行结果进行比较, 当比较结果满足预 设条件时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的 执行性能。 0051 具体地, 计算机设备将得到的CPU版本的执行结果和GPU版本的执行结果进行比 较; 可选地, 可以对比两者对气象数据的计算时间, 若GPU版本的计算时间明显低于CPU版本 的计算时间, 或低于CPU版本计算时间的预设倍数(如3倍), 则认为比较结果满足预设条件, 说明改写的GPU版本执行性能较好, 可对复杂的气象数据加速处理, 满足实用场景的需要。 那么, 计算机设备可以将此时的GPU版本进行存储, 便完成了WRF模式中WSM6函。

26、数的GPU移植 过程。 而对于其他函数的GPU移植过程, 与WSM6函数的移植过程类似, 在此不再赘述。 0052 可选地, 若上述比较结果没有满足预设条件, 则计算机设备还可以对GPU版本进行 优化更新, 减少执行步骤的冗余性等, 然后再将输入参数输入更新后的GPU版本, 再次判断, 直至满足预设条件。 0053 本实施例提供的基于WRF模式的GPU移植方法, 计算机设备首先获取用于实现WRF 模式的气象数据处理过程的目标函数所需的输入参数, 然后根据输入参数执行目标函数对 应的CPU版本和GPU版本, 得到CPU版本的执行结果和GPU版本的执行结果, 并将两个执行结 果进行比较; 当比较结。

27、果满足预设条件时, 将GPU版本进行存储, 表征完成了WRF模式的GPU 移植过程。 由此通过对比CPU版本和GPU版本的执行结果高效率完成GPU版本的移植过程, 后 续由GPU版本执行WRF模式的气象数据处理过程时, 可大大提高相应的执行性能, 对当前WRF 模式的计算需要提供良好的数据基础。 0054 可选地, 在一个实施例中, 计算机设备在获取目标函数所需的输入参数之前, 还可 说明书 4/10 页 7 CN 111580848 A 7 以执行上述WRF模式执行程序中气象数据的预处理过程, 即WSM6函数之前的程序过程, 如对 气象数据的降噪滤波、 标准化或其他的处理过程, 以得到WSM。

28、6函数所需的输入参数; 并在调 用WSM6函数之前加入相关版本使得将输入参数保存至存储文件中, 例如存储在磁盘文件 等。 由此, 在后续执行CPU版本或GPU版本时可以直接从该存储文件中获取到输入参数, 以提 高执行效率。 0055 可选地, 在一个实施例中, 当目标函数所需的输入参数保存至存储文件后, 计算机 设备可以通过执行移植主程序, 从该存储文件中获取目标函数所需的输入参数。 其中, 移植 主程序的功能为读取存储文件以获取输入参数, 并调用执行目标函数对应的CPU版本和GPU 版本。 0056 可选地, 在一个实施例中, 计算机设备还可以先对CPU版本进行改写, 以得到对应 的GPU版。

29、本, 则上述方法还包括: 采用预设的GPU版本规则对目标函数对应的CPU版本进行改 写, 得到GPU版本; 该GPU版本规则包括CUDA规则和/或OpenACC规则, GPU版本的调用接口与 CPU版本的调用接口相同。 0057 其中, 统一计算设备架构(Compute Unified Device Architecture, CUDA)是一种 由NVIDIA推出的通用并行计算架构, 该架构使GPU能够解决复杂的计算问题, 它包含了CUDA 指令集架构(ISA)以及GPU内部的并行计算引擎。 OpenACC为一种实现GPU并行计算的编程规 则。 计算机设备可以根据该两种版本规则对目标函数对应的。

30、CPU版本进行改写, 得到GPU版 本; 并且, 改写的GPU版本的调用接口与CPU版本的调用接口相同, 由此, 可实现由一个移植 主程序分别对CPU版本和GPU版本进行调用, 便于后续的编译和调试过程。 在此基础上, 可选 地, 计算机设备可以执行移植主程序, 通过上述调用接口将输入参数传入目标函数对应的 CPU版本, 执行该CPU版本得到对应的执行结果; 以及执行移植主程序, 通过调用接口将输入 参数同时传入目标函数对应的GPU版本, 执行该GPU版本得到对应的执行结果。 0058 在一个实施例中, 上述执行结果包括执行时间和气象预测结果, 本实施例涉及的 是将CPU版本的执行结果和GPU。

31、版本的执行结果进行比较, 并将GPU版本进行存储的具体过 程。 可选地, 如图3所示, 上述S103可以包括: 0059 S201, 将GPU版本的执行时间与CPU版本的执行时间进行比较, 确定GPU版本的加速 倍数。 0060 具体的, 计算机设备可以计算CPU版本执行时间与GPU版本执行时间的比值, 将得 到的比值作为GPU版本的加速倍数。 例如, CPU版本的执行时间为30s, GPU版本的执行时间为 10s, 则GPU版本的加速倍数为(30/10)3倍。 0061 S202, 将GPU版本的气象预测结果和CPU版本的气象预测结果进行比较, 确定GPU版 本的结果误差。 0062 具体地。

32、, 计算机设备可以将GPU版本的气象预测结果和CPU版本的气象预测结果分 别在相同维度上进行比较, 如分别在风速、 湿度、 温度等维度上比较预测结果, 将比较结果 作为GPU版本的结果误差。 例如, GPU版本的气象预测结果为预测温度20度, CPU版本的气象 预测结果为预测温度25度, 则GPU版本在温度维度下的结果误差为5度。 0063 S203, 当GPU版本的加速倍数大于或者等于预设的倍数阈值, 且GPU版本的结果误 差小于或者等于预设的误差阈值, 将GPU版本保存至存储文件。 0064 具体地, 当GPU版本的加速倍数大于或者等于预设的倍数阈值, 且结果误差小于或 说明书 5/10 。

33、页 8 CN 111580848 A 8 者等于预设的误差阈值时, 表征GPU版本的执行性能满足需求, 则计算机设备可以将GPU版 本保存至存储文件。 示例性的, 假设预设的倍数阈值为3倍, 温度维度下的误差阈值为2度, 则对于上述示例, GPU版本的加速倍数为3倍满足条件, 结果误差为5度不满足条件, 则表征 本次改写的GPU版本的执行性能未满足需求; 若GPU版本的加速倍数为3倍, 结果误差为2度, 则表征本次改写的GPU版本的执行性能满足需求。 0065 可选地, 若GPU版本的加速倍数小于倍数阈值, 或者GPU版本的结果误差大于误差 阈值时, 则计算机设备可以按照上述的GPU版本规则对。

34、GPU版本进行优化更新, 更新后再返 回执行根据输入参数执行目标函数对应的GPU版本的步骤, 即再次对GPU版本的执行结果和 CPU版本的执行结果进行对比, 直至比较结果满足预设条件。 0066 本实施例提供的基于WRF模式的GPU移植方法, 计算机设备分别将GPU版本的执行 时间和气象预测结果与CPU版本的执行时间和气象预测结果进行比较, 得到GPU版本的加速 倍数和结果误差, 基于该加速倍数与倍数阈值、 以及结果误差与误差阈值, 将GPU版本保存 至存储文件。 由此, 通过执行时间和预测结果来评估GPU版本的执行性能, 可在保证准确性 的基础上实现加速, 则极大程度上提高了WRF模式的计算。

35、性能。 0067 为更好理解基于WRF模式的GPU移植方法的整个流程, 下面以一个整体实施例方式 对该方法再次介绍, 如图4所示, 该方法包括: 0068 S301, 执行WRF模式执行程序中气象数据的预处理过程, 得到WSM6函数所需的输入 参数, 并将输入参数保存至存储文件; 0069 S302, 通过执行移植主程序, 从存储文件中获取目标函数所需的输入参数; 0070 S303, 采用预设的GPU版本规则对目标函数对应的CPU版本进行改写, 得到GPU版 本; 0071 S304, 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行 结果和GPU版本的执行结果;。

36、 0072 S305, 将CPU版本的执行结果和GPU版本的执行结果进行比较; 0073 S306, 当比较结果满足预设条件时, 将GPU版本进行存储, 完成WRF模式的GPU移植 过程; 0074 S307, 当比较结果不满足预设条件时, 对GPU版本进行更新; 更新后返回执行根据 输入参数执行目标函数对应的GPU版本的步骤。 0075 关于各步骤的实现方法可以参见上述实施例的描述, 其实现原理和技术效果类 似, 在此不再赘述。 0076 应该理解的是, 虽然图2-图4的流程图中各个步骤按照箭头的指示依次显示, 但是 这些步骤并不是必然按照箭头指示的顺序依次执行。 除非本文中有明确的说明, 。

37、这些步骤 的执行并没有严格的顺序限制, 这些步骤可以以其它的顺序执行。 而且, 图2-图4中的至少 一部分步骤可以包括多个子步骤或者多个阶段, 这些子步骤或者阶段并不必然是在同一时 刻执行完成, 而是可以在不同的时刻执行, 这些子步骤或者阶段的执行顺序也不必然是依 次进行, 而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替 地执行。 0077 在一个实施例中, 如图5所示, 提供了一种基于WRF模式的GPU移植装置, 包括: 获取 模块11、 执行模块12和比较模块13。 说明书 6/10 页 9 CN 111580848 A 9 0078 具体地, 获取模块11, 用于。

38、获取目标函数所需的输入参数; 目标函数为WRF模式执 行程序中的功能函数, 用于实现WRF模式的数据处理过程; 0079 执行模块12, 用于根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU 版本的执行结果和GPU版本的执行结果; 0080 比较模块13, 用于将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较 结果满足预设条件时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表 征GPU版本的执行性能。 0081 本实施例提供的基于WRF模式的GPU移植装置, 可以执行上述方法实施例, 其实现 原理和技术效果类似, 在此不再赘述。 00。

39、82 在一个实施例中, 目标函数包括WSM6函数; 上述执行模块12, 还用于执行WRF模式 执行程序中气象数据的预处理过程, 得到WSM6函数所需的输入参数, 并将输入参数保存至 存储文件。 0083 在一个实施例中, 获取模块11, 具体用于通过执行移植主程序, 从存储文件中获取 目标函数所需的输入参数。 0084 在一个实施例中, 上述装置还包括改写模块, 用于采用预设的GPU版本规则对目标 函数对应的CPU版本进行改写, 得到GPU版本; 该GPU版本规则包括CUDA规则和/或OpenACC规 则, GPU版本的调用接口与CPU版本的调用接口相同。 0085 在一个实施例中, 执行模块。

40、12, 具体用于执行移植主程序, 通过调用接口将输入参 数传入目标函数对应的CPU版本, 执行CPU版本得到对应的执行结果; 执行移植主程序, 通过 调用接口将输入参数传入目标函数对应的GPU版本, 执行GPU版本得到对应的执行结果。 0086 在一个实施例中, 上述执行结果包括执行时间和气象预测结果; 比较模块13, 具体 用于将GPU版本的执行时间与CPU版本的执行时间进行比较, 确定GPU版本的加速倍数; 将 GPU版本的气象预测结果和CPU版本的气象预测结果进行比较, 确定GPU版本的结果误差; 当 GPU版本的加速倍数大于或者等于预设的倍数阈值, 且GPU版本的结果误差小于或者等于预。

41、 设的误差阈值, 将GPU版本保存至存储文件。 0087 在一个实施例中, 上述改写模块, 还用于若GPU版本的加速倍数小于倍数阈值, 或 者GPU版本的结果误差大于误差阈值, 则对GPU版本进行更新; 更新后返回执行根据输入参 数执行目标函数对应的GPU版本的步骤。 0088 关于基于WRF模式的GPU移植装置的具体限定可以参见上文中对于基于WRF模式的 GPU移植方法的限定, 在此不再赘述。 上述基于WRF模式的GPU移植装置中的各个模块可全部 或部分通过软件、 硬件及其组合来实现。 上述各模块可以硬件形式内嵌于或独立于计算机 设备中的处理器中, 也可以以软件形式存储于计算机设备中的存储器。

42、中, 以便于处理器调 用执行以上各个模块对应的操作。 0089 在一个实施例中, 提供了一种计算机设备, 该计算机设备可以是终端, 其内部结构 图可以如图1所示。 该计算机设备包括通过系统总线连接的处理器、 存储器、 通信接口、 显示 屏和输入装置。 其中, 该计算机设备的处理器用于提供计算和控制能力。 该计算机设备的存 储器包括非易失性存储介质、 内存储器。 该非易失性存储介质存储有操作系统和计算机程 序。 该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。 该计算 机设备的通信接口用于与外部的终端进行有线或无线方式的通信, 无线方式可通过WIFI、 说明书 7/10 页 。

43、10 CN 111580848 A 10 运营商网络、 NFC(近场通信)或其他技术实现。 该计算机程序被处理器执行时以实现一种基 于WRF模式的GPU移植方法。 该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示 屏, 该计算机设备的输入装置可以是显示屏上覆盖的触摸层, 也可以是计算机设备外壳上 设置的按键、 轨迹球或触控板, 还可以是外接的键盘、 触控板或鼠标等。 0090 本领域技术人员可以理解, 图1中示出的结构, 仅仅是与本申请方案相关的部分结 构的框图, 并不构成对本申请方案所应用于其上的计算机设备的限定, 具体的计算机设备 可以包括比图中所示更多或更少的部件, 或者组合某些部件。

44、, 或者具有不同的部件布置。 0091 在一个实施例中, 提供了一种计算机设备, 包括存储器和处理器, 存储器中存储有 计算机程序, 该处理器执行计算机程序时实现以下步骤: 0092 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 0093 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行结果 和GPU版本的执行结果; 0094 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结果满足预设条件 时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的。

45、执行性 能。 0095 本实施例提供的计算机设备, 其实现原理和技术效果与上述方法实施例类似, 在 此不再赘述。 0096 在一个实施例中, 目标函数包括WSM6函数; 处理器执行计算机程序时还实现以下 步骤: 0097 执行WRF模式执行程序中气象数据的预处理过程, 得到WSM6函数所需的输入参数, 并将输入参数保存至存储文件。 0098 在一个实施例中, 处理器执行计算机程序时还实现以下步骤: 0099 通过执行移植主程序, 从存储文件中获取目标函数所需的输入参数。 0100 在一个实施例中, 处理器执行计算机程序时还实现以下步骤: 0101 采用预设的GPU版本规则对目标函数对应的CPU。

46、版本进行改写, 得到GPU版本; 该 GPU版本规则包括CUDA规则和/或OpenACC规则, GPU版本的调用接口与CPU版本的调用接口 相同。 0102 在一个实施例中, 处理器执行计算机程序时还实现以下步骤: 0103 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的CPU版本, 执行 CPU版本得到对应的执行结果; 0104 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的GPU版本, 执行 GPU版本得到对应的执行结果。 0105 在一个实施例中, 上述执行结果包括执行时间和气象预测结果; 处理器执行计算 机程序时还实现以下步骤: 0106 将GPU版本的执行时间。

47、与CPU版本的执行时间进行比较, 确定GPU版本的加速倍数; 0107 将GPU版本的气象预测结果和CPU版本的气象预测结果进行比较, 确定GPU版本的 结果误差; 0108 当GPU版本的加速倍数大于或者等于预设的倍数阈值, 且GPU版本的结果误差小于 说明书 8/10 页 11 CN 111580848 A 11 或者等于预设的误差阈值, 将GPU版本保存至存储文件。 0109 在一个实施例中, 处理器执行计算机程序时还实现以下步骤: 0110 若GPU版本的加速倍数小于倍数阈值, 或者GPU版本的结果误差大于误差阈值, 则 对GPU版本进行更新; 更新后返回执行根据输入参数执行目标函数对。

48、应的GPU版本的步骤。 0111 在一个实施例中, 提供了一种计算机可读存储介质, 其上存储有计算机程序, 计算 机程序被处理器执行时实现以下步骤: 0112 获取目标函数所需的输入参数; 目标函数为WRF模式执行程序中的功能函数, 用于 实现WRF模式的气象数据处理过程; 0113 根据输入参数执行目标函数对应的CPU版本和GPU版本, 得到CPU版本的执行结果 和GPU版本的执行结果; 0114 将CPU版本的执行结果和GPU版本的执行结果进行比较, 当比较结果满足预设条件 时, 将GPU版本进行存储, 完成WRF模式的GPU移植过程; 预设条件用于表征GPU版本的执行性 能。 0115 。

49、本实施例提供的计算机可读存储介质, 其实现原理和技术效果与上述方法实施例 类似, 在此不再赘述。 0116 在一个实施例中, 目标函数包括WSM6函数; 计算机程序被处理器执行时还实现以 下步骤: 0117 执行WRF模式执行程序中气象数据的预处理过程, 得到WSM6函数所需的输入参数, 并将输入参数保存至存储文件。 0118 在一个实施例中, 计算机程序被处理器执行时还实现以下步骤: 0119 通过执行移植主程序, 从存储文件中获取目标函数所需的输入参数。 0120 在一个实施例中, 计算机程序被处理器执行时还实现以下步骤: 0121 采用预设的GPU版本规则对目标函数对应的CPU版本进行改。

50、写, 得到GPU版本; 该 GPU版本规则包括CUDA规则和/或OpenACC规则, GPU版本的调用接口与CPU版本的调用接口 相同。 0122 在一个实施例中, 计算机程序被处理器执行时还实现以下步骤: 0123 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的CPU版本, 执行 CPU版本得到对应的执行结果; 0124 执行移植主程序, 通过调用接口将输入参数传入目标函数对应的GPU版本, 执行 GPU版本得到对应的执行结果。 0125 在一个实施例中, 上述执行结果包括执行时间和气象预测结果; 计算机程序被处 理器执行时还实现以下步骤: 0126 将GPU版本的执行时间与CP。

展开阅读全文
内容关键字: 基于 WRF 模式 GPU 移植 方法 装置 设备 存储 介质
关于本文
本文标题:基于WRF模式的GPU移植方法、装置、设备和存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10481448.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1