CN107728199A - 基于多gpu并行的多分量各向异性叠前时间偏移加速方法 - Google Patents
基于多gpu并行的多分量各向异性叠前时间偏移加速方法 Download PDFInfo
- Publication number
- CN107728199A CN107728199A CN201710864617.1A CN201710864617A CN107728199A CN 107728199 A CN107728199 A CN 107728199A CN 201710864617 A CN201710864617 A CN 201710864617A CN 107728199 A CN107728199 A CN 107728199A
- Authority
- CN
- China
- Prior art keywords
- gpu
- data
- gather
- thread
- imaging
- 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.)
- Granted
Links
- 238000013508 migration Methods 0.000 title claims abstract description 67
- 230000005012 migration Effects 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003384 imaging method Methods 0.000 claims abstract description 59
- 238000004364 calculation method Methods 0.000 claims abstract description 45
- 230000001133 acceleration Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 33
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 7
- 230000006872 improvement Effects 0.000 claims description 6
- 238000005498 polishing Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims description 6
- 239000000523 sample Substances 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 10
- 238000005265 energy consumption Methods 0.000 abstract description 8
- 241001269238 Data Species 0.000 abstract 2
- 230000005540 biological transmission Effects 0.000 abstract 1
- 101710146995 Acyl carrier protein Proteins 0.000 description 22
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000002679 ablation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
- G01V1/34—Displaying seismic recordings or visualisation of seismic data or attributes
- G01V1/345—Visualisation of seismic data or attributes, e.g. in 3D cubes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/50—Corrections or adjustments related to wave propagation
- G01V2210/51—Migration
- G01V2210/512—Pre-stack
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/70—Other details related to processing
- G01V2210/74—Visualisation of seismic data
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Acoustics & Sound (AREA)
- Environmental & Geological Engineering (AREA)
- Geology (AREA)
- General Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Geophysics (AREA)
- Geophysics And Detection Of Objects (AREA)
Abstract
本发明公开了一种基于多GPU并行的多分量各向异性叠前时间偏移加速方法,属于地震数据偏移处理领域,该方法用于处理CMP道集或ACP道集地震数据,运行于带有若干个GPU的服务器,包括把整体成像网格以参与计算的GPU个数为单位划分为多个部分,计算每个成像部分称为一个计算周期,在每个计算周期中,分别在各个GPU上声明变量、CMP道集或ACP道集地震数据空间、通过各向异性抽道集方法得到的速度数据空间、各向异性参数空间及一条CIP道集主测线成像空间,传输上述数据后在各个GPU中开启多个GPU线程同时进行偏移计算,偏移完成后,将偏移所得CIP道集地震数据传输回CPU,输出到成像结果文件中,直至全部网格成像完毕。本发明能耗低、造价低、占地面积小并且加速明显。
Description
技术领域
本发明涉及地震数据偏移处理领域,特别是指一种基于多GPU并行的多分量各向异性叠前时间偏移加速方法。
背景技术
传统地震勘探利用纵波信息来解决构造问题,但随着剩余油气勘探难度的增加,仅使用纵波信息已不能满足现代油气勘探的需求。多分量地震勘探是一种能够同时获得纵波和转换波资料的勘探技术,已成功应用于海上地震勘探。
多分量地震数据的各向异性叠前时间偏移随着各向异性理论的发展,已经成为地震勘探的前沿技术,各向异性参数也被证明是提高地震偏移成像精度的关键因素。Kirchhoff叠前时间偏移算法是经典偏移算法,该算法计算量非常庞大,也是整个常规数据处理周期中最为费时的环节。随着勘探目标越来越大,地震数据处理周期也越来越长,无法满足地震资料解释的需求,需要配合并行计算提高计算效率,缩短处理时间。
传统的CPU并行加速框架受限于CPU的计算核心数,想要达到较好的加速效果,需要的CPU数很多,相应的就需要更多的服务器支撑,会导致占地面积太大、维护困难、能耗高等问题。
发明内容
本发明提供一种能耗低、造价低、占地面积小并且加速明显的基于多GPU并行的多分量各向异性叠前时间偏移加速方法。
为解决上述技术问题,本发明提供技术方案如下:
本发明提供一种基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述方法运行于带有若干个GPU的计算机或服务器,所述方法,包括:
步骤1:从参数文件中读取偏移参数,并根据偏移参数设置成像网格,同时在GPU上声明通过各向异性抽道集方法得到的速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间;
步骤2:按顺序选定GPU个数条成像主测线,并根据偏移参数中的扩展线数属性,读取本计算周期所需CMP道集或ACP道集地震数据、速度数据和各向异性参数数据;
步骤3:开启多个CPU线程,并使每个CPU线程唯一对应一个GPU,同时根据各个CPU线程的线程号分割所需CMP道集或ACP道集数据、速度数据和各向异性参数数据,并传输到各个对应的GPU上;
步骤4:在各个GPU上创建其专属的一条主测线成像空间,偏移开始,每个GPU开启多个GPU线程同时进行部分成像空间内各个成像点的偏移,每个线程分别计算各道CMP道集或ACP道集地震数据相对全部采样点的地震波旅行时,并将旅行时对应的CMP道集或ACP道集地震数据点叠加到相应的成像点上;
步骤5:将各个GPU计算所得CIP道集数据按顺序传输到CPU上并写入成像结果文件中,若全部成像网格偏移完毕,则退出计算,否则,返回步骤2,按顺序选择下一个部分的成像网格进行计算。
进一步的,所述步骤1中,所述成像网格的分辨率和速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间均通过参数文件修改。
进一步的,所述步骤2中,设置协同CPU加速的GPU个数,同时输入通过各向异性抽道集方法得到的速度数据、各向异性参数数据,配合CMP道集或ACP道集地震数据进行偏移计算。
进一步的,所述步骤3中精确分割各个GPU所需数据,在输入CMP道集或ACP道集地震数据时需要创建用于辅助分割的数据地址索引。
进一步的,所述步骤4中,每个GPU线程控制一道CMP道集或ACP道集地震数据的偏移;
所述步骤4中,利用CUDA的核函数结合OpenMP技术,实现其在多个GPU上的线程级并行。
进一步的,所述步骤4中,求解地震波旅行时的公式为基于Kirchhoff叠前时间偏移改进的VTI介质精确时差公式:
其中:tPS是PS波旅行时,tPP是PP波旅行时,xP和xP1是炮点到成像点距离,xS和xP2是检波点到成像点距离,t0P和t0PS分别是PP波与PS波的自激自收时间,VP是PP波NMO速度,VS是PS波NMO速度,θP和θP1是PP波入射角,θS和θP2分别是PS波与PP波的出射角,ηp是PP波速度的各向异性参数,ηs是PS波速度的各向异性参数。
进一步的,所述步骤5中,写入成像结果文件时按照主测线号的顺序进行。
进一步的,基于CUDA的并行架构,通过设定线程格Grid、线程格内线程块Block及线程块内线程Thread的数量,设定并行加速的GPU总线程量,从而实现线程级并行。
进一步的,所述步骤1中,将最常使用的参数载入读取速度最快的寄存器中;将数据量最大且读取不频繁的数据载入容量最大但读取速度慢的全局内存中;将固定不变的参数载入读取速度最快且运行期间只读的常量内存中;将读取位置在逻辑上比较靠近且读取频繁的数据载入纹理内存中。
进一步的,通过基于共享内存并行架构的OpenMP技术开启多个CPU线程,并且每个CPU线程控制一个GPU。
本发明具有以下有益效果:
本发明通过多分量各向异性叠前时间偏移算法进行并行化处理,实现了多个GPU并行,在占地空间小、计算成本低、能耗小的情况下获得了极大的速度提升。
附图说明
图1为本发明的基于多GPU并行的多分量各向异性叠前时间偏移加速方法的流程图;
图2为本发明的基于多GPU并行的多分量各向异性叠前时间偏移加速方法的CUDA多线程模式与GPU存储模式示意图;
图3为本发明的基于多GPU并行的多分量各向异性叠前时间偏移加速方法的实施例1的一个计算周期的示意图;
图4为本发明的基于多GPU并行的多分量各向异性叠前时间偏移加速方法的实施例1实验结果图;
图5为本发明的基于多GPU并行的多分量各向异性叠前时间偏移加速方法的实施例1的加速比对比图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供一种基于多GPU并行的多分量各向异性叠前时间偏移加速方法,如图1~5所示,基于多GPU并行的多分量各向异性叠前时间偏移加速方法运行于带有若干个GPU的计算机或服务器,该加速方法包括:
步骤1:从参数文件中读取偏移参数,并根据偏移参数设置成像网格,同时在GPU上声明通过各向异性抽道集方法得到的速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间,加快数据读取速度;
步骤2:按顺序选定GPU个数条成像主测线,并根据偏移参数中的扩展线数属性,读取本计算周期所需CMP道集或ACP道集地震数据、速度数据和各向异性参数数据;
步骤3:开启多个CPU线程,并使每个CPU线程唯一对应一个GPU,同时根据各个CPU线程的线程号分割所需CMP道集或ACP道集地震数据、速度数据和各向异性参数数据,并传输到各个对应的GPU上;
步骤4:在各个GPU上创建其专属的一条CIP道集主测线成像空间,偏移开始,每个GPU开启多个GPU线程同时进行部分成像空间内各个成像点的偏移,每个GPU线程分别计算各道CMP道集或ACP道集地震数据相对全部采样点的地震波旅行时,并将旅行时对应的CMP道集或ACP道集地震数据点叠加到相应的成像点上;
步骤5:将各个GPU计算所得CIP道集数据,按顺序传输到CPU上并写入成像结果文件中,若全部成像网格偏移完毕,则退出计算,否则,返回步骤2,按顺序选择下一个部分的成像网格进行计算。
本发明的有益效果在于:
本发明通过多分量各向异性叠前时间偏移算法进行并行化处理,实现了多个GPU并行,在占地空间小、计算成本低、能耗小的情况下获得了极大的速度提升。
进一步的,步骤1中,成像网格分辨率及各个成像参数可以通过参数文件修改,初始化时需要设置协同CPU加速的GPU个数,以及输入通过各向异性抽道集得到的速度数据、各向异性参数数据,配合CMP道集或ACP道集地震数据进行偏移计算。偏移参数中的扩展线数x作用是当偏移第A(数字)号线时,输入A-x到A+x号线CMP道集或ACP道集地震数据共同对第A号线进行偏移,以提高偏移成像效果及分辨率,同时,算法的整体计算量相比无扩展线数算法成倍增加。
进一步的,整体任务划分的同时需要精确分割各个GPU所需数据,并且考虑到算法性能,需要在输入数据时创建数据地址索引,辅助进行分割数据。
优选的,使用多GPU线程偏移计算每个GPU线程控制一道CMP道集或ACP道集地震数据的偏移,达到并行加速的效果,写入成像结果文件必须按照主测线号的顺序进行;
所述步骤4中,利用CUDA的核函数结合OpenMP技术,实现其在多个GPU上的线程级并行。基于CUDA的并行架构,通过设定线程格Grid、线程格内线程块Block及线程块内线程Thread的数量,设定并行加速的GPU总线程量,从而实现线程级并行。
其中,步骤4中,求解地震波旅行时的公式为基于Kirchhoff叠前时间偏移改进的VTI介质精确时差公式:
其中:tPS是PS波旅行时,tPP是PP波旅行时,xP和xP1是炮点到成像点距离,xS和xP2是检波点到成像点距离,t0P和t0PS分别是PP波与PS波的自激自收时间,VP是PP波NMO速度,VS是PS波NMO速度,θP和θP1是PP波入射角,θS和θP2分别是PS波与PP波的出射角,ηp是PP波速度的各向异性参数,ηs是PS波速度的各向异性参数。
本发明中,充分利用GPU各种不同存储结构的特点优化数据读取方式,将最常使用的参数载入读取速度最快的寄存器中;将数据量最大且读取不频繁的数据载入容量最大但读取速度慢的全局内存中;将固定不变的参数载入读取速度最快且运行期间只读的常量内存中;将读取位置在逻辑上比较靠近且读取频繁的数据载入纹理内存中,以适应各类数据的读取特点。
另外,通过基于共享内存并行架构的OpenMP技术,开启多个CPU线程,并且每个CPU线程控制一个GPU,充分利用了服务器上多个GPU卡的情况,每个计算周期计算更多数据,进一步加快了计算速度。
上述方法选用具有多个GPU作为加速部件的服务器执行,同时由于分割了整体计算任务,具有内存使用率低、能耗低、造价低占地面积小的优点,同时加速效果明显。
实施例1:
下面通过一个实际工区的叠前偏移对本发明进行进一步描述,在PP纵波叠前时间偏移计算过程中,扩展线数属性为2条,偏移孔径为50米,偏移角度为10度,拉伸切除比为1.2。在PS转换波叠前时间偏移计算过程中,扩展线数属性为2条,偏移孔径为50米,偏移角度为15度,拉伸切除比为1.2。偏移成像文件网格与输入文件相同。对此实际工区的具体多分量叠前时间偏移加速过程如图1所示:
步骤1:从参数文件中读取偏移参数,并根据参数设置成像网格,同时在GPU上声明速度数据通过各向异性抽道集方法得到的速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间,加快数据读取速度。
步骤2:按顺序选定GPU个数条成像主测线,并根据偏移参数中的扩展线数属性,读取本计算周期所需CMP道集或ACP道集地震数据、速度数据通过各向异性抽道集方法得到的速度数据、各向异性参数数据。同时浏览全部数据,创建地址索引数组,以方便在后面的计算过程中准确而快速地多次读取所需数据。由于将整体任务分割成多个小任务,所以在计算每个小任务时,系统的内存占用率很低,可以通用于比实施例1数据更大的工区。
步骤3:开启多个CPU线程,并使每个CPU线程都唯一对应一个GPU,同时根据各个CPU线程的线程号分割计算所需数据,并将其数据传输到各个对应的GPU上。分割数据时需要根据工区边缘情况自适应扩展线数属性。如在工区左边界时,第1条成像主测线只能根据输入的第1~3条CMP道集或ACP道集主测线地震数据计算,第2条成像主测线只能根据输入的第1~4条CMP道集或ACP道集主测线地震数据计算;工区右边界同理。
步骤4:在各个GPU上创建其专属的一条主测线成像空间。偏移开始,每个GPU开启多个GPU线程同时进行部分成像空间内各个成像点的偏移,每个GPU线程分别计算各道输入CMP道集或ACP道集地震数据相对全部采样点的地震波旅行时,并将旅行时对应的输入CMP道集或ACP道集地震数据点叠加到相应的成像点上。求解地震波旅行时的过程,是基于Kirchhoff叠前时间偏移改进的VTI介质精确时差公式:
其中:tPS是PS波旅行时,tPP是PP波旅行时,xP和xP1是炮点到成像点距离,xS和xP2是检波点到成像点距离,t0P和t0PS分别是PP波与PS波的自激自收时间,VP是PP波NMO速度,VS是PS波NMO速度,θP和θP1是PP波入射角,θS和θP2分别是PS波与PP波的出射角,ηp是PP波速度的各向异性参数,ηs是PS波速度的各向异性参数。
步骤5:将各个GPU计算所得数据,按顺序传输到CPU上并写入结果成像文件中,若全部成像网格偏移完毕,则退出计算,否则返回步骤2,按顺序选择下一个部分的成像网格进行计算。本实施例1的第1个计算周期过程如图3所示。
基于CPU与多GPU并行的多分量各向异性叠前时间偏移加速系统硬件部分为带有多个GPU作为加速部件的服务器,软件部分均在该服务器上执行。具体的,该发明计算核心部分由CUDA的核函数结合OpenMP技术实现其在多个GPU上的线程级并行。
通过CUDA实现函数的线程级并行时,需要设定线程格Grid、线程格内线程块Block以及块内线程Thread的数量,从而设定并行使用的GPU的总线程数。本实施例1将线程格设定为1,每个线程块的线程数设置为512,线程块的数量与各个GPU分配的CMP或ACP道集地震道数相适应自动调整。在和函数中,通过threadIdx.x+blockIdx.x*blockDim.x获得每个GPU线程的绝对线程号,从而控制每一个GPU线程执行地震数据偏移操作。CUDA的执行模型和GPU的存储模型如图2所示。
在计算过程中必然需要通过GPU内存读取数据,包括每个GPU线程独立的寄存器、本地内存,线程块内共享的共享内存以及全部GPU线程可见的全局内存等,还有存储容量小但读取速度快且在计算过程中只读的常量内存,容量较大且读取速度较快、计算过程中只读的纹理内存。常量内存需要通过全局的__constant__关键字定义,且在核函数计算之前通过cudaMemcpyToSymbol()函数相分配在GPU上的常量内存传输数据。纹理内存需要通过全局的texture<type>声明,并且要在使用cudaMemcpy()将数据拷贝到全局内存后,使用cudaBindTexture()函数绑定到纹理内存上。通过使用不同层次的GPU存储结构,优化数据读取效率。
进一步的,通过基于共享内存的OpenMP并行架构,可以开启多个CPU线程,同时控制多个GPU参与计算,进一步扩充总计算线程数量,从而实现了更多主测线的并行,进一步缩短计算时间。
每个GPU只进行部分主测线的计算,所以实际上每个GPU只计算了成像主测线数/GPU个数条主测线。
写结果文件时时,每个GPU计算的结果必须按照顺序写入结果文件中,所以必须串行写入文件中。
本实施例1在多个GPU作为加速部件的服务器上并行的结果如图4所示,图4(a)为PP纵波偏移结果,图4(b)为PS转换波偏移结果,可以看出PP纵波2.5秒到3.1秒层位对应PS转换波3.5秒到4.5秒,PP纵波3.6秒到3.9秒层位对应PS转换波5秒到5.5秒。
本实施例1在具有多个GPU作为加速部件的服务器上实现并行获得的加速比如图5所示,图5(a)为PP波偏移结果加速比,图5(b)为PS波偏移结果加速比,可以看出,采用多个GPU提速效果明显。
本发明是把整体工区的成像网格以参与计算的GPU个数为单位划分为多个部分,按顺序依次计算各个成像部分,计算每个成像部分称为一个计算周期。每个计算周期中,分别在各个GPU上声明变量、CMP道集或ACP道集地震数据空间、通过各向异性抽道集方法得到的速度数据空间及各向异性参数空间,将CPU上涉及到计算的数据传入各个GPU,在各个GPU中开启多个GPU线程同时进行地震数据的偏移,偏移完成后传输回CPU,进行成像文件输出,直至全部网格成像完毕。本发明采用具有多个GPU作为协处理器加速的服务器,具有能耗低、造价低、占地面积小的特点,且算法加速效果明显。
本发明通过对多分量各向异性叠前时间偏移算法进行并行化处理,实现了在具有多个GPU作为加速部件的服务器上的运行,在占地空间更小、计算成本更低、能耗更小的情况下获得了极大的速度提升,在保证精度的基础上提供较高的运行效率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述方法运行于带有若干个GPU的计算机或服务器,所述方法,包括:
步骤1:从参数文件中读取偏移参数,并根据偏移参数设置成像网格,同时在GPU上声明通过各向异性抽道集方法得到的速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间;
步骤2:按顺序选定GPU个数条成像主测线,并根据偏移参数中的扩展线数属性,读取本计算周期所需CMP道集或ACP道集地震数据、速度数据和各向异性参数数据;
步骤3:开启多个CPU线程,并使每个CPU线程唯一对应一个GPU,同时根据各个CPU线程的线程号分割所需CMP道集或ACP道集数据、速度数据和各向异性参数数据,并传输到各个对应的GPU上;
步骤4:在各个GPU上创建其专属的一条CIP道集主测线成像空间,偏移开始,每个GPU开启多个GPU线程同时进行部分成像空间内各个成像点的偏移,每个线程分别计算各道CMP道集或ACP道集地震数据相对全部采样点的地震波旅行时,并将旅行时对应的CMP道集或ACP道集地震数据点叠加到相应的成像点上;
步骤5:将各个GPU计算所得CIP道集数据按顺序传输到CPU上并写入成像结果文件中,若全部成像网格偏移完毕,则退出计算,否则,返回步骤2,按顺序选择下一个部分的成像网格进行计算。
2.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤1中,所述成像网格的分辨率和速度数据、各向异性参数数据及各地震道坐标数据的纹理内存空间均通过参数文件修改。
3.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤2中,设置协同CPU加速的GPU个数,同时输入通过各向异性抽道集方法得到的速度数据、各向异性参数数据,配合CMP道集或ACP道集地震数据进行偏移计算。
4.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤3中精确分割各个GPU所需数据,在输入CMP道集或ACP道集地震数据时需要创建用于辅助分割的数据地址索引。
5.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤4中,每个GPU线程控制一道CMP道集或ACP道集地震数据的偏移;
所述步骤4中,利用CUDA的核函数结合OpenMP技术,实现其在多个GPU上的线程级并行。
6.根据权利要求5所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤4中,求解地震波旅行时的公式为基于Kirchhoff叠前时间偏移改进的VTI介质精确时差公式:
<mrow>
<msub>
<mi>t</mi>
<mrow>
<mi>P</mi>
<mi>S</mi>
</mrow>
</msub>
<mo>=</mo>
<msqrt>
<mrow>
<msubsup>
<mi>t</mi>
<mrow>
<mn>0</mn>
<mi>P</mi>
<mi>S</mi>
</mrow>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>x</mi>
<mi>P</mi>
<mn>2</mn>
</msubsup>
<mrow>
<msubsup>
<mi>V</mi>
<mi>P</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<msub>
<mi>&eta;</mi>
<mi>P</mi>
</msub>
<msup>
<mi>sin</mi>
<mn>2</mn>
</msup>
<msub>
<mi>&theta;</mi>
<mi>P</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
</msqrt>
<mo>+</mo>
<msqrt>
<mrow>
<msubsup>
<mi>t</mi>
<mrow>
<mn>0</mn>
<mi>P</mi>
<mi>S</mi>
</mrow>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>x</mi>
<mi>S</mi>
<mn>2</mn>
</msubsup>
<mrow>
<msubsup>
<mi>V</mi>
<mi>S</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<msub>
<mi>&eta;</mi>
<mi>S</mi>
</msub>
<msup>
<mi>sin</mi>
<mn>2</mn>
</msup>
<msub>
<mi>&theta;</mi>
<mi>S</mi>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
</msqrt>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>t</mi>
<mrow>
<mi>P</mi>
<mi>P</mi>
</mrow>
</msub>
<mo>=</mo>
<msqrt>
<mrow>
<msubsup>
<mi>t</mi>
<mrow>
<mn>0</mn>
<mi>P</mi>
</mrow>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>x</mi>
<mrow>
<mi>P</mi>
<mn>1</mn>
</mrow>
<mn>2</mn>
</msubsup>
<mrow>
<msubsup>
<mi>V</mi>
<mi>P</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<msub>
<mi>&eta;</mi>
<mi>P</mi>
</msub>
<msup>
<mi>sin</mi>
<mn>2</mn>
</msup>
<msub>
<mi>&theta;</mi>
<mrow>
<mi>P</mi>
<mn>1</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
</msqrt>
<mo>+</mo>
<msqrt>
<mrow>
<msubsup>
<mi>t</mi>
<mrow>
<mn>0</mn>
<mi>P</mi>
</mrow>
<mn>2</mn>
</msubsup>
<mo>+</mo>
<mfrac>
<msubsup>
<mi>x</mi>
<mrow>
<mi>P</mi>
<mn>2</mn>
</mrow>
<mn>2</mn>
</msubsup>
<mrow>
<msubsup>
<mi>V</mi>
<mi>P</mi>
<mn>2</mn>
</msubsup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>+</mo>
<mn>2</mn>
<msub>
<mi>&eta;</mi>
<mi>P</mi>
</msub>
<msup>
<mi>sin</mi>
<mn>2</mn>
</msup>
<msub>
<mi>&theta;</mi>
<mrow>
<mi>P</mi>
<mn>2</mn>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</mrow>
</msqrt>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
其中:tPS是PS波旅行时,tPP是PP波旅行时,xP和xP1是炮点到成像点距离,xS和xP2是检波点到成像点距离,t0P和t0PS分别是PP波与PS波的自激自收时间,VP是PP波NMO速度,VS是PS波NMO速度,θP和θP1是PP波入射角,θS和θP2分别是PS波与PP波的出射角,ηp是PP波速度的各向异性参数,ηs是PS波速度的各向异性参数。
7.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤5中,写入成像结果文件时按照主测线号的顺序进行。
8.根据权利要求5所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,基于CUDA的并行架构,通过设定线程格Grid、线程格内线程块Block及线程块内线程Thread的数量,设定并行加速的GPU总线程量,从而实现线程级并行。
9.根据权利要求1所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,所述步骤1中,将最常使用的参数载入读取速度最快的寄存器中;将数据量最大且读取不频繁的数据载入容量最大但读取速度慢的全局内存中;将固定不变的参数载入读取速度最快且运行期间只读的常量内存中;将读取位置在逻辑上比较靠近且读取频繁的数据载入纹理内存中。
10.根据权利要求9所述的基于多GPU并行的多分量各向异性叠前时间偏移加速方法,其特征在于,通过基于共享内存并行架构的OpenMP技术开启多个CPU线程,并且每个CPU线程控制一个GPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710864617.1A CN107728199B (zh) | 2017-09-22 | 2017-09-22 | 基于多gpu并行的多分量各向异性叠前时间偏移加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710864617.1A CN107728199B (zh) | 2017-09-22 | 2017-09-22 | 基于多gpu并行的多分量各向异性叠前时间偏移加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107728199A true CN107728199A (zh) | 2018-02-23 |
CN107728199B CN107728199B (zh) | 2019-05-31 |
Family
ID=61206702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710864617.1A Active CN107728199B (zh) | 2017-09-22 | 2017-09-22 | 基于多gpu并行的多分量各向异性叠前时间偏移加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107728199B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2184869A1 (en) * | 2008-11-06 | 2010-05-12 | Studer Professional Audio GmbH | Method and device for processing audio signals |
CN102141633A (zh) * | 2010-12-10 | 2011-08-03 | 中国科学院地质与地球物理研究所 | 各向异性三维叠前时间偏移方法 |
CN102565854A (zh) * | 2011-12-27 | 2012-07-11 | 中国科学院地质与地球物理研究所 | 一种海量数据gpu波动方程逆时偏移成像方法 |
CN103135132A (zh) * | 2013-01-15 | 2013-06-05 | 中国科学院地质与地球物理研究所 | Cpu/gpu协同并行计算的混合域全波形反演方法 |
CN103675895A (zh) * | 2012-08-30 | 2014-03-26 | 中国石油化工股份有限公司 | 一种利用gpu提高波场延拓计算效率的方法 |
CN105717539A (zh) * | 2016-01-28 | 2016-06-29 | 中国地质大学(北京) | 一种基于多gpu计算的三维tti介质逆时偏移成像方法 |
CN105868022A (zh) * | 2016-03-24 | 2016-08-17 | 中国地质大学(北京) | 一种在多GPU上分偏移距的Kirchhoff类偏移并行计算方法 |
CN106199692A (zh) * | 2015-05-30 | 2016-12-07 | 中国石油化工股份有限公司 | 一种基于gpu的波动方程反偏移方法 |
-
2017
- 2017-09-22 CN CN201710864617.1A patent/CN107728199B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2184869A1 (en) * | 2008-11-06 | 2010-05-12 | Studer Professional Audio GmbH | Method and device for processing audio signals |
CN102141633A (zh) * | 2010-12-10 | 2011-08-03 | 中国科学院地质与地球物理研究所 | 各向异性三维叠前时间偏移方法 |
CN102565854A (zh) * | 2011-12-27 | 2012-07-11 | 中国科学院地质与地球物理研究所 | 一种海量数据gpu波动方程逆时偏移成像方法 |
CN103675895A (zh) * | 2012-08-30 | 2014-03-26 | 中国石油化工股份有限公司 | 一种利用gpu提高波场延拓计算效率的方法 |
CN103135132A (zh) * | 2013-01-15 | 2013-06-05 | 中国科学院地质与地球物理研究所 | Cpu/gpu协同并行计算的混合域全波形反演方法 |
CN106199692A (zh) * | 2015-05-30 | 2016-12-07 | 中国石油化工股份有限公司 | 一种基于gpu的波动方程反偏移方法 |
CN105717539A (zh) * | 2016-01-28 | 2016-06-29 | 中国地质大学(北京) | 一种基于多gpu计算的三维tti介质逆时偏移成像方法 |
CN105868022A (zh) * | 2016-03-24 | 2016-08-17 | 中国地质大学(北京) | 一种在多GPU上分偏移距的Kirchhoff类偏移并行计算方法 |
Non-Patent Citations (3)
Title |
---|
张建磊等: "GeoEast积分法叠前深度偏移处理技术", 《石油工业计算机应用》 * |
王玉凤: "三维多波地震资料逆时偏移成像技术及GPU并行实现", 《中国优秀硕士学位论文全文数据库》 * |
马召贵等: "基于CPU+GPU联合计算真地表叠前时间偏移实用化研究", 《石油地球物理勘探》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107728199B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DiCecco et al. | Caffeinated FPGAs: FPGA framework for convolutional neural networks | |
Abdelkhalek et al. | Fast seismic modeling and reverse time migration on a GPU cluster | |
Luo et al. | Canny edge detection on NVIDIA CUDA | |
Zhong et al. | Data partitioning on heterogeneous multicore and multi-GPU systems using functional performance models of data-parallel applications | |
CN107657599B (zh) | 基于混合粒度划分和动态负载分配的遥感图像融合系统并行实现方法 | |
Zhang et al. | Scalable collision detection using p-partition fronts on many-core processors | |
Ito et al. | A GPU implementation of dynamic programming for the optimal polygon triangulation | |
WO2021127382A1 (en) | Full waveform inversion in the midpoint-offset domain | |
Mahmoudi et al. | Multi-CPU/multi-GPU based framework for multimedia processing | |
CN107728199A (zh) | 基于多gpu并行的多分量各向异性叠前时间偏移加速方法 | |
Li et al. | Eventor: an efficient event-based monocular multi-view stereo accelerator on FPGA platform | |
Kim et al. | Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing | |
CN108072895B (zh) | 一种基于gpu的各向异性叠前逆时偏移优化方法 | |
Claus et al. | High performance FPGA based optical flow calculation using the census transformation | |
CN105869105B (zh) | 一种针对a+超分辨率技术的gpu加速方法 | |
Wang et al. | Egpuip: An embedded gpu accelerated library for image processing | |
CN113344765A (zh) | 一种频域天文图像目标检测方法及系统 | |
Zach et al. | Scanline optimization for stereo on graphics hardware | |
Liu et al. | Practical implementation of prestack Kirchhoff time migration on a general purpose graphics processing unit | |
Medeiros et al. | High performance implementation of RTM seismic modeling on FPGAs: Architecture, arithmetic and power issues | |
Pallipuram et al. | A multi-node GPGPU implementation of non-linear anisotropic diffusion filter | |
CN107783184B (zh) | 一种基于多流优化的gpu逆时偏移方法及系统 | |
Liao et al. | A graphics processing unit implementation and optimization for parallel double‐difference seismic tomography | |
US20230351667A1 (en) | Method and apparatus for performing high speed parallel locally order clustering for a bounding volume hierarchy | |
Saha et al. | Fast and Parallel Semblance Algorithm for Detecting Faults in Large Seismic Volumes |
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 |