一种海量数据叠前逆时偏移多gpu卡协同快速计算方法

文档序号:8256064阅读:259来源:国知局
一种海量数据叠前逆时偏移多gpu卡协同快速计算方法
【技术领域】
[0001]本发明属于地震资料处理领域,具体涉及一种海量数据叠前逆时偏移多GPU卡协同快速计算方法。
【背景技术】
[0002]三维叠前逆时深度偏移是目前最精确的一种成像方法,计算量大是制约其应用的瓶颈。高性能计算设备GPU及其CUDA编程模型的出现,为逆时偏移快速计算提供了新的机遇。相比传统的微机群技术,GPU具有更多的计算核心,更高的数据传输带宽,可以大幅提高计算密集型算法的运算效率。在逆时偏移实现过程中,通常采用高阶有限差分求解波动方程实现波场延拓。有限差分是一个局部化算法,波场延拓时仅需要周围空间的信息。显式差分计算可以抽象为矩阵数乘与矩阵求和的形式,非常适合于GPU运算。包括中国石化胜利油田分公司物探研究院在内的国内多家研究单位,在利用GPU平台实现逆时偏移快速计算方面有很多成功的实践。但以往实现方法均是针对较小规模单炮数据开发的单GPU卡快速计算方法。然而,为满足精细勘探的要求,野外地震采集数据的规模持续增大。对基于炮集的逆时偏移而言,大规模地震数据带来的挑战是单炮成像空间规模增大,波场外推计算量增大。数据规模的增大也进一步带来了数据传输与磁盘占有量的增大。特别在对大规模地震数据进行基于炮集的逆时偏移计算时,所需要的内存空间达到6-10GB。在此情况下,目前任何一款独立GPU的显存都难以存放整个偏移空间数据。这就导致以往基于单个GPU实现逆时偏移快速计算的策略不再满足需要,制约了叠前逆时偏移技术在实际地震资料成像处理中的应用。

【发明内容】

[0003]野外地震采集数据规模逐渐增大,基于单GPU卡的三维叠前逆时偏移快速计算方法在应用过程中,遇到单GPU显存无法满足偏移计算内存需要的难题,制约了叠前逆时偏移这一精确成像技术在大规模实际地震数据成像处理中的应用。为了能够利用叠前逆时偏移技术处理大规模地震数据,实现该方法的实用化,发明了海量地震数据叠前逆时偏移多GPU卡协同快速计算方法。
[0004]本发明采用的技术方案是:
一种海量数据叠前逆时偏移多GPU卡协同快速计算方法,其特征在于:包括下列步骤:
(1)根据单炮数据的逆时偏移成像空间规模与计算节点GPU设备资源状况,对单炮数据的成像空间进行分解,为每个GPU分配进行有限差分计算和成像的数据;
(2)在每个数据分解边界外增加一定空间用于存放来自相邻GPU的差分结果,称为缓冲区;
(3)在每个GPU对分解边界以内,设立与缓冲区范围相同的空间进行有限差分计算,称为计算区域;
(4)在每个GPU完成各自剩余数据空间的有限差分计算,同时通过缓冲区完成与相邻GPU的计算区域的数据交换。
[0005]作为优选,所述相邻GPU之间的数据交换通过CPU内存为中转来实现。
[0006]作为优选,所述GPU为具有统一存储器地址空间(Unified Virtual Addressing,UVA)的Fermi架构或比Fermi架构更新的架构的GPU ;利用CUDA4.0或CUDA4.0更新的版本和上述GPU设备,实现相同1H下的GPU间内存数据的点对点(peer-to-peer,P2P)通讯,无需通过系统内存进行中转。
[0007]作为优选,在对单炮数据的成像空间进行分解时,以尽量减小传递数据的规模为原则选择空间分解的方向。
[0008]本发明在地震数据区域分解基础上,基于点对点(peer-to-peer, P2P)数据交换技术,研究形成了多GPU协同的三维叠前逆时偏移快速计算方法,开发了海量地震数据逆时偏移在CPU/GPU异构平台上的实用化算法和技术,并在多块三维实际地震数据中进行了应用。
[0009]本项发明很好地利用了 CUDA程序语言和Fermi及以上架构GPU设备所具备的性能,基于多GPU卡间能够进行点对点(P2P)直接数据通讯技术,实现了多GPU卡有限差分快速计算,解决了单GPU显存无法满足海量地震数据叠前逆时偏移对内存空间的要求,实现了任意规模三维地震数据的叠前逆时偏移成像。基于P2P技术,多GPU卡间数据交换时间可以完全隐藏在有限差分核函数计算时间内,叠前逆时偏移的整体计算效率未受到卡间数据传递时间的影响。实际地震资料成像处理应用表明,基于P2P数据交换的海量数据叠前逆时偏移多GPU卡协同快速计算方法的整体计算效率高,且成像效果理想,总体性能达到可实用化水平。
【附图说明】
[0010]图1是双GPU卡地震数据区域分解与分配示意图图2是双GPU协同计算与数据交换策略示意图。
[0011]图3a是在传统GPU Directl.0技术下数据传输示意图。
[0012]图3b是在GPU Direct2.0技术下数据传输示意图。
[0013]图4a是应用本发明方法的叠前逆时深度偏移成像结果。
[0014]图4b是Kirchhoff叠前深度偏移成像结果。
【具体实施方式】
[0015]下面,结合附图和具体实施例对本发明做进一步说明。
[0016]实施例1。一种海量数据叠前逆时偏移多GPU卡协同快速计算方法,包括下列步骤:
(1)根据单炮数据的逆时偏移成像空间规模与计算节点GPU设备资源状况,对单炮数据的成像空间进行分解,为每个GPU分配进行有限差分计算和成像的数据;
(2)在每个数据分解边界外增加一定空间用于存放来自相邻GPU的差分结果,称为缓冲区;
(3)在每个GPU对分解边界以内,设立与缓冲区范围相同的空间进行有限差分计算,称为计算区域; (4)在每个GPU完成各自剩余数据空间的有限差分计算,同时通过缓冲区完成与相邻GPU的计算区域的数据交换。
[0017]具体的步骤是:
地震数据区域分解,就是根据单炮数据的逆时偏移成像空间规模与计算节点GPU设备资源状况,沿地表空间X (或Y)方向对单炮数据的成像空间进行分解(如图1所示,沿X方向)。每个GPU负责完成所分配数据的有限差分计算和成像。以两个GPU协同完成一炮数据的M阶有限差分计算为例。设单炮数据在X方向的空间网格点数为Nx,则每个GPU负责计算X方向上Nx/2个网格范围的数据。同时,考虑到每个外推时间步骤的差分计算需要相邻空间点的波场值,为了确保分解边界处波场差分计算的正确性,需要在每个数据分解边界外增加厚度为M/2的空间(M为差分阶数)用于存放来自相邻GPU的差分结果,称为缓冲区。两个相邻GPU卡之间需进行数据交换,且数据传递必须高效。为此,需在计算之初,合理选择成像空间分解的方向(
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1