一种基于CUDA的Gridding算法优化方法及装置制造方法及图纸

技术编号:21999761 阅读:29 留言:0更新日期:2019-08-31 05:16
本发明专利技术涉及并行化技术领域,公开一种基于CUDA的Gridding算法优化方法,包括:步骤1:根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;步骤2:通过矩阵矢量化方法,在CUDA中对所述M个函数进行GPU并行化处理。本发明专利技术还公开一种基于CUDA的Gridding算法优化装置,包括:比较模块和并行化模块。本发明专利技术缩短了Gridding算法整体的运算时间,提高了运行效率,且不影响输入输出数据的格式和大小。

An Optimal Method and Device of Gridding Algorithms Based on CUDA

【技术实现步骤摘要】
一种基于CUDA的Gridding算法优化方法及装置
本专利技术涉及并行化
,特别涉及一种基于CUDA的Gridding算法优化方法及装置。
技术介绍
天文学数据不管是在数据量,数据的复杂度还是数据增长的速度上都在以非常惊人的速度增长。在过去的几十年里,研发的射电望远镜在灵敏度、数据的质量以及图像分辨率方面都有很大的提升,望远镜采集数据的速率非常大。SKA作为世界上最大综合孔径射电望远镜,每秒采集的数据量计划大于12Tb,相当于2013年底中国互联网国际出口带宽的3.5倍,相当于谷歌每年数据量的30倍。这样的科学数据处理需要百亿亿次级别的超级计算机来完成,这个处理速度相当于目前全球最快超级计算机天河2号性能的52倍,由于其本身对实时性有严格的要求,所以计算能力方面将面临一个巨大的挑战。就目前来说对计算能力以及处理速度在不断地提高,通过传统的提高CPU主频来提高处理能力上受到集成电路的种种限制,在这种情况下,多核处理器应运而生并逐渐成为主流。目前,新集群采用多核解决面临的计算问题。因此多核的CPU和多核加速器(如GPU、Cell/BE等)成为解决大量时效性数据的趋势。在天文成像过程中,网格化(Gridding)和去网格化(Degridding)是最耗时的两个操作。如果处理的数据是EB量级或以上时,消耗的时间非常多不能通过调整计算机的性能来缓和。目前来说并行化算法是提高计算速度的一个重要途径,也是射电天文数据处理的主要方式。传统的网格化一般都是在CPU上运行,使得加速器在每一个浮点上的带宽变得很小,应用的时效性降低。
技术实现思路
本专利技术针对现有的网格化算法应用时效性低的问题,提出了一种基于CUDA的Gridding算法优化方法及装置。为了实现上述目的,本专利技术采用以下技术方案:一种基于CUDA的Gridding算法优化方法,包括:步骤1:根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;步骤2:通过矩阵矢量化方法,在CUDA中对所述M个函数进行GPU并行化处理。进一步地,在所述步骤1之后,还包括:在CUDA中实现基于GPU的Gridding算法,替换ARL算法库中的Gridding算法。进一步地,所述步骤2包括:步骤2.1:对需要进行GPU并行化处理的所述M个函数,在显存上分配数组;步骤2.2:将需处理的数据从内存传输到显存;步骤2.3:划分块和线程,确定线程结构;步骤2.4:执行核函数,所述核函数包括初始化GCF函数和GPU下的Gridding算法;步骤2.5:将执行结果从显存复制回内存。一种基于CUDA的Gridding算法优化装置,包括:比较模块,用于根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;并行化模块,用于在CUDA中对所述M个函数进行GPU并行化处理。进一步地,还包括:替换模块,用于在CUDA中实现基于GPU的Gridding算法,替换ARL算法库中的Gridding算法。进一步地,所述并行化模块包括:分配子模块,用于对需要进行GPU并行化处理的所述M个函数,在显存上分配数组;传输子模块,用于将需处理的数据从内存传输到显存;划分子模块,用于划分块和线程,确定线程结构;执行子模块,用于执行核函数,所述核函数包括初始化GCF函数和GPU下的Gridding算法;复制子模块,用于将执行结果从显存复制回内存。与现有技术相比,本专利技术具有的有益效果:本专利技术对ARL算法库中的Gridding算法中调用次数多的前M个函数进行基于GPU的并行化,将ARL算法库中Gridding算法整体替换成GPU下的Gridding算法。方案缩短了Gridding算法整体的运算时间,提高了运行效率,且不影响输入输出数据的格式和大小。这一结果为SKA事业的发展提供了极大的改进可能,不仅能节约时间成本,还能减少经济成本。附图说明图1为本专利技术实施例的一种基于CUDA的Gridding算法优化方法的基本流程图;图2为本专利技术实施例的一种基于CUDA的Gridding算法优化方法的并行化流程图;图3为本专利技术实施例的一种基于CUDA的Gridding算法优化方法的Gridding算法优化前后运行时间对比图;图4为本专利技术实施例的一种基于CUDA的Gridding算法优化方法的Degridding算法优化前后运行时间对比图;图5为本专利技术实施例的一种基于CUDA的Gridding算法优化装置的结构示意图;图6为本专利技术实施例的一种基于CUDA的Gridding算法优化装置的并行化模块结构示意图。具体实施方式为使更好的理解本专利技术,对出现在本实施例中的名词进行解释:ARL:ARL(AlgorithmReferenceLibrary)是基于python的算法参考库,实现了校准和成像算法(https://github.com/SKA-ScienceDataProcessor/algorithm-reference-librarySKA)。下面结合附图和具体的实施例对本专利技术做进一步的解释说明:实施例一:如图1所示,一种基于CUDA的Gridding算法优化方法,包括以下步骤:步骤S101:根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;具体地,Gridding算法中可优化的主要函数及其被调用次数如表1所示。表1Gridding算法中可优化的主要函数及其被调用次数由表1可以看出,grdsf函数的被调用次数最高,达到370次,anti_aliasing_calculate(抗混淆函数)被调用185次,convolutional_degrid(卷积解网格函数)被调用47次,convolutional_grid(卷积网格函数)被调用44次,weight_gridding被调用2次,gridder和gridder_numba没有被调用。本实施例中,选择调用次数最高的前3个函数进行优化,分别为:anti_aliasing_calculate,convolutional_degrid,convolutional_grid。虽然grdsf函数被调用次数最高,但是不选择优化它,这是因为它在anti_aliasing_calculate函数中被调用了2次,因此选择优化anti_aliasing_calculate函数,这也就意味着优化了grdsf函数。其中,各函数功能如下:grdsf:将获取网格函数以及对网格进行修正,输入到图像边缘的距离,输出网格函数和网格校正函数。anti_aliasing_calculate:计算prolate(抛物线)球体抗混淆函数。convolutional_degrid:进行卷积解网格。convolutional_grid:进行卷积网格。weight_gridding:重新调整网格权重。gridder:在给定的位置上的网格,通过使用索引来选择卷积核。gridder_numba:在给定位置的网格,按照输入数据选择卷积核。进一步地,在所述步骤S101之后,还包括:在CUDA中实现基于GPU的Gridding算法,替换ARL算法库中的Gridding算法。对应的,还包括:在CUDA中实现基于GPU的Degridding(反网格化)算法,替换ARL算法库中的Degridding算本文档来自技高网...

【技术保护点】
1.一种基于CUDA的Gridding算法优化方法,其特征在于,包括:步骤1:根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;步骤2:通过矩阵矢量化方法,在CUDA中对所述M个函数进行GPU并行化处理。

【技术特征摘要】
1.一种基于CUDA的Gridding算法优化方法,其特征在于,包括:步骤1:根据Gridding算法中函数调用次数,得出调用次数最高的前M个函数;步骤2:通过矩阵矢量化方法,在CUDA中对所述M个函数进行GPU并行化处理。2.根据权利要求1所述的一种基于CUDA的Gridding算法优化方法,其特征在于,在所述步骤1之后,还包括:在CUDA中实现基于GPU的Gridding算法,替换ARL算法库中的Gridding算法。3.根据权利要求1所述的一种基于CUDA的Gridding算法优化方法,其特征在于,所述步骤2包括:步骤2.1:对需要进行GPU并行化处理的所述M个函数,在显存上分配数组;步骤2.2:将需处理的数据从内存传输到显存;步骤2.3:划分块和线程,确定线程结构;步骤2.4:执行核函数,所述核函数包括初始化GCF函数和GPU下的Gridding算法;步骤2.5:将执行结果从显存复制回内存。4.一...

【专利技术属性】
技术研发人员:胡馨艺赵亚群赵志诚
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1