当前位置: 首页 > 专利查询>北京大学专利>正文

一种用于GPU异构集群的高性能FFT方法技术

技术编号:12655254 阅读:123 留言:0更新日期:2016-01-06 13:33
本发明专利技术公布了一种用于GPU异构集群的高性能FFT方法,将数据进行维度划分并表示为数组数据,按照划分维度进行分割后分布到GPU异构集群中与划分维度相同数目的节点上,再进行FFT计算,包括:获得GPU集群的节点数目、节点上GPU数目、节点内存容量、GPU设备存储器容量信息;将数据采用数组维度表示为数组数据;针对x维度进行维度划分;按照x维度分割数据,分布在多个节点上;将y和z维度方向的数据进行FFT计算;进行集群节点之间的数据转置;进行x维度的FFT计算。本发明专利技术是针对GPU异构集群的多层存储器体系结构特征的FFT方法,具有良好的性能和可延展性。

【技术实现步骤摘要】

本专利技术涉及计算机高性能计算领域,涉及一种用于GPU异构集群上的高性能 FFT(FastFourierTransformation,快速傅氏变换)计算方法。
技术介绍
在异构处理器FFT的研究方面,Nvidia公司有针对单个GPU的数学库CUBLAS和 CUFFT,也正在研制针对单机上多个GPU的数学库;很多研究人员进行了单GPU上FFT算法 的研究。在发布MIC协处理器的同时,Intel公司也推出了MIC协处理器上的MKL数学库。 现有的传统集群上的商业版FFT数学库主要有FFTW和IntelMKL。FFTW是使用最为广泛 的FFT库,其基于MPI的3维FFT并没有考虑计算和通信的重叠优化问题;P3DFFT通过对 数据进行节点间高维分布以提高3维FFT的延展性,但没有考虑计算和通信的重叠优化问 题;2DEC0MP&FFT和Kandalla等通过优化多组输入数组间的计算通信重叠问题实现对批量 数据3维FFT计算的性能优化;针对一些科学计算问题中需要对一个数据数组进行多次3 维FFT计算的应用场景,Song等通过优化一次3维FFT内的计算通信重叠问题来提升性能; Bell等基于UPC和支持异步通信的硬件实现了一次3维FFT内的计算通信重叠优化;Fang 等使用特定通信API在多维网络结构中实现了计算通信重叠的3维FFT;Doi等考虑非对称 网状网络的拓扑结构,合理调度远距离进程之间的通信,在多核节点上使用不同的线程实 现通信和计算的重叠。在HPCC的集群FFT测试中,目前最快的集群FFT是IBMBlueGene, 达到 226. 10TFlop/s。 传统的集群3维FFT可以用维度表示法进行清晰的描述,如图2(a)所示,为 8X8X8的3维立方体数据,其中,z维度为最密集的,而X维度为最稀疏的,此时,数组可以1等该数组分布到4个节点的集群上去,一种方式是进行1维的分割,即将该数 组按照X维度的方向进行分割,如图2 (b)所示,此时,该数组记为数据分布在4个节点上,每个节点有2 (X。维度)个8X8 (y和z维度)的正方形数据,进行 3维FFT计算的步骤如下: 一,在4 (X1维度)个节点上分别并行进行2 (X。维度)次2维8X8的FFT,即将y 和z维度方向的1维FFT计算完成; 二,需要进行X维度方向的FFT,由于X维度方向的数据分布在不同的节点上,因 此需要进行通信。将数据再进行y维度方向的分割,如图2(b)所示。此时,该数组记为通过进行2次(X。维度)的分组AllT0All通信,即可将Xi维度和y:维 a 三,数据已经按照yi维度分布在4个节点上,但x维度的数据在内存中仍不连续。 为了使X维度的数据连续以保证cache访问的友好性,也可以在各个节点并行进行本地间); 四,在完成了对X维度数据的1维FFT之后,可以将整个步骤反序进行,把数据元 素恢复到初始的位置。 传统集群3维FFT的另一种分布数据的方法是按照2个维度对数据进行分布,对 8X8X8的3维立方体数据按照X维度和y维度进行划分,分布到4X4的节点阵列上,记为 -,z维度方向的数据都在同一个节点本地,16个节点并行计算2(x。维度)X2(y。 维度)个z维度方向的1维FFT; 二,为了通信的需要,将z维度做进一步的分裂, X1维度,将节点阵列分为4组,每组4(yi维度)个节点,各组节点内做2 (X。维度)X2 (y。维 度)次分组AllT0All通信,将yi维度和z:维度转置 三,y维度方向的数据都在同一个节点本地,16个节点并行计算2(x。维度)X2(z。 维度)个y维度方向的1维FFT; 四,按照Z1维度,将节点阵列分为4组,每组4(Xi维度)个节点,各组节点内做2 (X。 维度)X2 (y。维度)次AlIToAl1通信,将Xi维度和y:维度转置 五,在完成了对X维度数据的1维FFT之后,可以将整个步骤反序进行,把数据元 素恢复到初始的位置。 在上述计算方法中,第二步和第四步的通信都需要进行四次较小规模的AllT0All 通信,在节点具有足够内存容量做缓冲区的情况下,可以通过本地数据转置将通信减少为1 个AlIToAll通信。 综上所述,已有高性能FFT方法针对的是单机或传统集群,到目前,尚未出现基于 GPU异构集群的高性能FFT方法。对于GPU异构集群,由于其具有更加复杂的多层存储器结 构,传统集群上的FFT算法已经不再适合其体系结构的特征,难以取得更高的性能。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供一种用于GPU异构集群上的高性能 FFT(FastFourierTransformation,快速傅氏变换)计算方法,针对GPU异构集群的多层 存储器体系结构特征,通过适应性的数据维度划分和传输转置方法,实现天河IA系统上的 大规模3维FFT,该方法得到了良好的性能和可延展性。 本专利技术提供的技术方案是: -种用于GPU异构集群的高性能FFT方法,所述方法将待处理数据进行维度划分 并表示为数组数据,对数组数据按照划分维度进行分割,将数据分布到GPU异构集群中与 划分维度相同数目的节点上,再进行FFT计算;图1是本专利技术方法的流程图,具体包括如下 步骤: 1)测试所使用GPU集群的体系结构特征,获取包括节点数目、节点上GPU数目、节 点内存容量、GPU设备存储器容量等信息;设定d为GPU异构集群的节点数目; 2)针对待处理数据,针对X维度进行维度划分,采用数组维度表示方法进行表示, X维度的大小设为a,其中,x、y和z为维度的名称,a、b和c为相应维度的大 小;该数组表示和传统编程语言中的数组表示相同,只是在各个维度上加上该维度的命名, 方便对FFT计算问题的表示; 3)将数组数据(一般情况下,数据需为三维结构,但各个维度的大小可以不同)按 照X维度分割为d份,数据分布在a个节点上; 这样,每一个节点的数据为(a/d)*b*c个复数,此时数据记为 维度分裂为xJPX。两个维度,维度大小分别为d和a/d; 4)每个节点上的GPU将y维度方向和z维度方向的数据进行FFT计算;具体是进 行X。维度个FFT计算,即进行a/d个2维的FFT计算; 由于计算的时间与数据传输的时间相比基本上可以忽略,在此直接使用CUFFT调 用(CUFFT为Nvidia公司的单GPU上的FFT数学库函数)即可。 5)在进行X维度的FFT计算之前,需要进行集群节点之间的数据转置,将y维度的 数据做进一步的划分,得到 在集群上直接进行通信,将数据分布变换为 这样,y维度和X维度得到交换,数据按照yi维度分布在集群节点上,X维度方向 的数据存储在各个节点之内。 6)此时,各个节点可以分b/d(y。维度)次,将a*c的数据拷贝到GPU设备存储器 上,并进行二维数据转置,使得X维度的数据完全连续,得到 7)进行X维度的FFT计算; 8)在使用CUFFT进行X维度的1维FFT计算之后,反方向重复整个数据移动过程, 即回溯整个数据转置和传输的过程,将数据恢复为初始的分布状态,最终将数据恢复到最 将上述用于GPU异构集群的高性能FFT方法应用于天河IA系统,天河IA是我国自 主组建的大型GPU异构集群系统,该集群共有8100个节点,每一个本文档来自技高网
...
一种用于GPU异构集群的高性能FFT方法

【技术保护点】
一种用于GPU异构集群的高性能FFT方法,所述方法将待处理数据进行维度划分并表示为数组数据,对数组数据按照划分维度进行分割后将数据分布到GPU异构集群中与划分维度相同数目的节点上,再进行FFT计算;具体包括如下步骤:1)测试获得所使用GPU集群的体系结构特征,包括节点数目、节点上GPU数目、节点内存容量、GPU设备存储器容量信息;设定d为GPU异构集群的节点数目;2)将待处理数据采用数组维度表示方法表示为数组数据;针对x维度进行维度划分,x维度的大小设为a,记为其中,x、y和z为维度的名称,a、b和c为相应维度的大小;3)将步骤2)所述数组数据按照x维度分割为d份,数据分布在a个节点上;每一个节点的数据为(a/d)*b*c个复数,此时数据记为其中,x维度分裂为x1和x0两个维度,维度大小分别为d和a/d;4)每个节点上的GPU将y维度方向和z维度方向的数据进行FFT计算;具体是进行x0维度个FFT计算,即进行a/d个2维的FFT计算;5)在进行x维度的FFT计算之前,进行集群节点之间的数据转置,将y维度的数据做进一步的划分,得到在集群上直接进行通信,将y维度和x维度进行交换,数据分布变换为得到数据按照y1维度分布在集群节点上,x维度方向的数据存储在各个节点上;6)各个节点分为y0维度大小b/d次,将a*c的数据拷贝到GPU设备存储器上,并进行二维数据转置,使得x维度的数据完全连续,得到7)进行x维度的FFT计算;8)反方向重复整个数据移动过程,回溯整个数据转置和传输的过程,将数据恢复为初始的分布状态,最终将数据恢复到最初始的位置,即...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈一峯崔翔王韬严磊
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

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

1