CN101963916A - 编译处理方法及装置 - Google Patents
编译处理方法及装置 Download PDFInfo
- Publication number
- CN101963916A CN101963916A CN2010102966776A CN201010296677A CN101963916A CN 101963916 A CN101963916 A CN 101963916A CN 2010102966776 A CN2010102966776 A CN 2010102966776A CN 201010296677 A CN201010296677 A CN 201010296677A CN 101963916 A CN101963916 A CN 101963916A
- Authority
- CN
- China
- Prior art keywords
- program
- gpu
- compiled
- target program
- under
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种编译处理方法及装置。其方法包括:接收原程序;将所述原程序编译成能够在目标环境运行的目标程序,以供所述目标程序在所述目标环境下运行。本发明的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地降低在各种GPU开发环境之间进行开发的开发成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种编译处理方法及装置。
背景技术
通用处理单元(General Processing Unit;以下简称GPU)与中央处理单元(Central Processing Unit;以下简称CPU)设计理念不同。GPU把大部分晶体管用在算术逻辑单元(Arithmetic Logic Unit;以下简称ALU)上;而CPU除了逻辑运算单元,大部分晶体管用来做cache(缓存)和Control Unit(控制单元)上,与CPU相比,GPU拥有更多的可以用于计算的核心,在高性能计算上具有明显优势,导致GPU开发使用范围非常广泛。
如下表1所示,Nvidia公司推出的Cuda编程语言可以在Nvidia GPU硬件下运行,可以支持Windows操作系统和Linux操作系统。Opencl编程语言可以在所有(ALL)GPU硬件运行,可以支持Windows操作系统和Linux操作系统。Brook和Brook+编程语言可以在ATI(Array Technology Industry;简称ATI)技术公司推出的ATI GPU硬件下运行,支持Linux操作系统。DirectComputer编程语言可以在所有(ALL)GPU硬件运行,可以支持Windows操作系统。
表1
GPU也称之为图像处理单元(Graphic Processing Unit;简称GPU)。上述各种环境下的GPU除去正常的图形显示功能,主要可以作为通用处理器,完成数学计算,由于拥有大量的逻辑运算单元,GPU可以完成多线程大规模的并行计算,某些特定的数学运算,可以达到传统CPU几十倍甚至上百倍的速度。因此GPU是现有大规模线程运算一种常用的工具。
但是现有的GPU的编程语言及开发平台繁多,开发环境比较复杂。使得当用户需要在各种开发环境之间进行运算时,针对于每一种环境都需要编写对应的一套程序以进行运算,而且还需要配置相应的操作系统平台以支持运算,不仅大大提高了开发了成本,而且使用及其不方便。
发明内容
本发明提供一种编译处理方法及装置,用以解决现有技术中在各种开发环境之间开发成本较高的缺陷,能够同时支持多种GPU开发环境,且降低开发的成本。
本发明提供一种编译处理方法,包括:
接收原程序;将所述原程序编译成能够在目标环境运行的目标程序,以供所述目标程序在所述目标环境下运行。
本发明还提供一种编译处理装置,包括:
接收模块,用于接收原程序;
编译处理模块,用于将所述原程序编译成适合目标环境运行的目标程序,以供所述目标程序在所述目标环境下运行。
本发明的编译处理方法及装置,通过将原程序编译成能够在目标环境运行的目标程序。本发明的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地降低在各种GPU开发环境之间进行开发的开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的编译处理方法的流程图;
图2为本发明实施例二提供的编译处理方法的流程图;
图3为本发明实施例三提供的编译处理方法的流程图;
图4为本发明实施例四提供的编译处理装置的结构示意图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的编译处理方法的流程图。如图1所示,本实施例的编译处理方法的执行主体为一种编译处理设备。本实施例的编译处理设备具体可以为一种开发平台。该开发平台是基于现有技术的大同步并行(Bulk Synchronous Parallel;以下简称BSP)模型所作的改进,可以称之为流处理器大同步(Stream Processor Bulk Synchronous Parallel;以下简称SPBSP)模型开发平台。本实施例的程序处理方法,具体可以包括以下步骤:
步骤100、接收原程序;
具体地,这里的原程序是在SPBSP模型开发平台上输入的原程序,该原程序所采用的编程语言可以称之为SPBSP语言,该SPBSP语言和现有技术中的BSP语言一样,程序编写容易、可读性强、易于维护。该SPBSP语言同现有技术中的C语言程序相同,因此也可以称之为类C程序。这里的原程序可以直接在SPBSP模型开发平台上输入即编写,也可以预先编写好,直接复制过来。
步骤101、将原程序编译成能够在目标环境运行的目标程序,以供目标程序在目标环境下运行。
具体地,当用户想要在某一个特定的目标环境下运行某一程序,可以采用由编译处理设备将接收的原程序编译为该目标环境下运行的某一程序。具体地,这里的编译过程,也就是将一种程序语言编译为另一种程序语言。可以在编译处理设备内部预先设置各种可供转换的各种语言。例如,具体地可以在编译处理设备即SPBSP模型开发平台内部设置一个表格,该表格中可以记载同一算法在各种编程语言中的表述语句。例如,当某种特定环境仅能够运行A语言时,通过查询表格可以将原程序的SPBSP语言表示某一算法的语句转换为特定环境下能够运行的A语言所表示的算法的语句。
本实施例的编译处理方法,通过将原程序编译成能够在目标环境运行的目标程序。本发明的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地降低在各种GPU开发环境之间进行开发的开发成本。
图2为本发明实施例二提供的编译处理方法的流程图。如图2所示,本实施例的编译处理方法,具体可以包括如下步骤:
步骤200、接收SPBSP程序;
步骤201、判断目标环境下GPU的类型;
具体地,本实施例仅考虑背景技术中表1所示的几种GPU类型,即可以为Nvidia公司推出的Nvidia GPU;也可以为ATI技术公司推出的ATI GPU;还可以为任意一种GPU即ALL GPU。对于其余的GPU类型,情况类似,在此不再赘述。
步骤202、当确定目标环境下的GPU类型为Nvidia GPU,将SPBSP程序编译为Cuda程序;
具体地,由于Nvidia GPU无论是Windows操作系统还是Linux操作系统下,都能够支持Cuda语言编写的Cuda程序。
步骤203、当确定目标环境下的GPU类型为All GPU,判断该目标环境下的操作系统;
步骤204、当确定目标环境下的GPU类型为ATI GPU,将SPBSP程序编译为Brook程序或者Brook+程序;
具体地,当确定目标环境下的GPU类型为ATI GPU,这种硬件仅能够支持Linux操作系统,对应地程序语言可以为Brook程序的语言或者Brook+程序的语言。
步骤205、当确定目标环境下的GPU类型为All GPU,确定目标环境下的操作系统为Windows操作系统时,将SPBSP程序编译为Opencl程序或者Direct Computer程序;
具体地,当硬件GPU类型为ALL GPU,操作系统为Windows操作系统时,可以运行的程序语言有两种:Opencl和Direct Computer。因此SPBSP可以编译为两者任一种。
步骤206、当确定目标环境下的GPU类型为All GPU,确定目标环境下的操作系统为Linux操作系统时,将SPBSP程序编译为Opencl程序。
结合上述分析,如表2所示,SPBSP程序可以看作是编译处理设备上的SPBSP语言编写的程序。该SPBSP程序即为原程序。SPBSP程序可以编译为表2的第2-3行的第2列、第3列、第4列或第5列各所示的情形对应的语言的程序。
表2
本实施例的编译处理方法,通过将原程序编译成能够在目标环境运行的目标程序。本实施例的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地降低在各种GPU开发环境之间进行开发的开发成本。
图3为本发明实施例三提供的编译处理方法的流程图。如图3所示,本实施例的编译处理方法,具体可以包括如下步骤:
步骤300、接收SPBSP程序;
步骤301、判断目标环境下操作系统的类型;
步骤302、当确定目标环境下的操作系统为Windows操作系统时,判断目标环境下的GPU的类型;
步骤303、当确定目标环境下的操作系统为Linux操作系统时,判断目标环境下的GPU的类型;
步骤304、当确定目标环境下的操作系统为Windows操作系统,并确定目标环境下的GPU的类型为Nvidia GPU时,将SPBSP程序编译为Cuda程序;
步骤305、当确定目标环境下的操作系统为Windows操作系统,并确定目标环境下的GPU的类型为ALL GPU时,将SPBSP程序编译为Opencl程序或者Direct Computer程序;
步骤306、当确定目标环境下的操作系统为Linux操作系统时,并确定目标环境下的GPU的类型为ALL GPU时,将SPBSP程序编译为Opencl程序;
步骤307、当确定目标环境下的操作系统为Linux操作系统时,并确定目标环境下的GPU的类型为ATI GPU时,将SPBSP程序编译为Brook程序或者Brook+程序。
本实施例的编译处理方法,通过将原程序编译成能够在目标环境运行的目标程序。本实施例的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地降低在各种GPU开发环境之间进行开发的开发成本。
需要说明的是,上述实施例中“将原程序编译成能够在目标环境运行的目标程序的过程中,同时将原程序中的串行语句转换为并行语句。具体地,可以将原程序中的属于串行操作执行的某些算法或者说某些语句转换成并行操作执行的语句。例如将以前需要执行N个步骤,转换为并行语句之后,变为同时执行N个步骤。这样能够有效地提高程序运行速度,即提高计算速度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明实施例四提供的编译处理装置的结构示意图。如图4所示,本实施例的编译处理装置具体也可以称之为SPBSP模型开发平台。本实施例的编译处理装置具体可以包括接收模块10和编译处理模块11。
本实施例的编译处理装置中的接收模块10用于接收原程序。编译处理模块11与接收模块10连接,用于将接收模块10接收到的原程序编译成适合目标环境运行的目标程序,以供目标程序在目标环境下运行。
具体地,在编译处理装置中可以预存储有一个表格,该表格中可以记载有同一语句在各种语言的程序中的表述。编译处理模块11可以通过查询该表格将接收模块10接收到的原程序编译成适合目标环境运行的目标程序,以供目标程序在目标环境下运行。
本实施例的编译处理装置采用上述两个模块式先将原程序编译为能够在目标环境下运行目标程序的实现机制与上述方法实施例的实现机制相同,详细请参阅上述相关方法实施例的记载,在此不再赘述。
本实施例的编译处理装置,通过各模块实现将原程序编译成能够在目标环境运行的目标程序。本实施例的技术方案能够支持多种GPU开发环境,便于实现GPU通用计算的跨平台和跨硬件。与现有技术相比,不仅使用方便,还能够有效地减少在各种环境之间运算的GPU开发成本。
需要说明的是,上述实施例的编译处理模块11具体用于将原程序编译成能够在Windows操作系统下、所有通用处理单元或者Nvidia通用处理单元上运行的目标程序,以供目标程序在目标环境下运行。或者该编译处理模块11具体用于将原程序编译成能够在Linux操作系统下、所有通用处理单元或者Nvidia通用处理单元或者ATI通用处理单元上运行的目标程序,以供目标程序在目标环境下运行。其具体实现过程详细参见上述方法实施例的相关记载,在此不再赘述。
需要说明的是,上述实施例的编译处理模块11在用于将原程序编译成能够在目标环境运行的目标程序的过程中,同时将原程序中的串行语句转换为并行语句。具体地,将某一算法的语句在原程序中的串行语句转换为该算法能够在目标环境下运行的并行语句。采用该方案能够进一步增强编译效率,提高运算速度。其具体实现过程详细参见上述方法实施例的相关记载,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
下面将本发明实施例的编译处理方法及对应的编译处理装置即SPBSP模型开发平台,应用在石油或地震勘探上。
具体地,将本发明实施例的技术方案应用在石油或地震勘探中的非对称走时算法中,实现Kirchhoff积分法叠前时间偏移计算流程;并且能够在实际应用中取得了良好的效果。
叠前时间偏移是针对每一地震道计算偏移孔径后,再对孔径内的各个成像点分别计算炮点到成像点的下行走时(Travel time Downward;以下简称TD)和检波点到成像点的上行走时(Travel time Upward;以下简称TU),最终将该地震道上走时为TD+TU的能量值进行累加后置于成像点处。
为实现叠前时间偏移算法,在本发明实施例的编译处理设备上,采用SPBSP语言编写的串行程序需要设计四个嵌套循环,其中包括对各个输入道(Trace)、对各条主测线(inline)、对各条联络线(crossline)以及对各个时间采样点T进行的循环。如下所示程序为这个计算流程用的伪代码。
foreach trace(shot location src,receiver location recv)
foreach X in output image
foreach Y in output image
foreach T in output image
Here=(X,Y,T)
if(Inaperture(Here))
{
Time_Down=TravelTime(src,Here);
Time_Up=TravelTime(Here,recv);
Outputimage[here]+=ScaleFactor*Trace[Time_Down+Time_up];
}
SPBSP语言跟普通的C串行程序一样,但是为了并行计算需要同步信息(barrier),用来告诉程序如果在GPU上进行并行计算。SPBSP语言把所有的2个同步信息中间的语句作为一个超级步(super step)翻译成GPU需要的kernel函数,实现并行计算。
一个SPBSP程序编译成GPU的stream过程,通常需要进行如下操作:
(1)把所有包含barriers的函数展开;
(2)通过优化减少对数据依赖性,去掉没有用的变量和常量,减少存储开销。这一步工作同时去除那些运行不到的代码(Dead code);
(3)把CPU和GPU代码分开,生成在GPU上运行的kernel函数,和在CPU上启动kernel的函数。顺序执行代码放到CPU上面运行,并行计算代码放到GPU上面;
(4)把CPU的相关变量转换成在GPU上面kernel函数的参数;
(5)找到所有的需要保存的变量,产生用来保存、加载这些变量的代码;
(6)生成临时变量分配的代码。
经上述操作能够将SPBSP语言的原程序编译为适合目标操作系统、目标GPU类型的环境下运行的目标程序。同时将SPBSP程序中的串行程序转换为并行程序,进一步增强计算效率。
本实施例中,编译后的并行程序为如下所示。
kirchhoff偏移的SPBSP伪代码:
foreach trace(shot location src,reveiver location recv)
kernel<<<X,Y,T>>>(outputimage,Trace,src,recv);
kernel(outputimage,Trace,src,recv)
{
Here=(blockidx,blockidy,blockidz)
If(Inapture(here))
{
Time_Down=TravelTime(src,Here);
Time_Up=TravelTime(Here,recv);
OutputImage[here]+=ScaleFactor*Trace[Time_Down+Time_up];
}
}
数值计算流程的计算效率向来是判断算法是否具有工业应用价值的重要标志之一。可见,除了从偏移算法本身尽量减少计算量之外,提高算法并行度应是增强叠前时间偏移计算效率的重要举措。也是本发明实施例的编译处理的效率所在。
当利用CPU机群实现上述积分法叠前时间偏移程序时,其编程模式有用输出道模式和输入道模式之区分。用输出道模式时,每次输出一道甚至可以只输出几个样点,但是需要对输入数据进行多次重复读取。这种模式的优点在于节省了内存空间,可是致命的缺点则在于因需多次读取数据而致使GPU的有效占有率显著下降,从而浪费了甚巨的计算用时。
然而,输入道模式则与输出道模式相反,每次输入一道数据,则将该输入道的输入数据分配到成像空间去。其优点在于只读取一遍输入数据,缺点是需要将整个输出成像空间的数据分置于计算机的内存中。这时计算机内存的需求,必随计算规模的扩大而巨量提升。尤其是需要输出共成像点道集时,根据输出共成像点道集内道数的不同,所要求的计算机内存大小可与叠前地震数据体的大小相当。对于目前所用机群的硬件功能而言,由于每个节点上都有一块内存,可视之为分布式内存模式,故而可以通过增加计算节点数量的办法,以求满足输入道模式的要求。然而,由于机群网络传输速度的瓶颈和多次读取数据的系统时间消耗,显而易见,选择直接在机群上采用输出道模式是不明智的。可见,两种模式相较而言,对机群选择输入道模式更为可取。不过,由于采用输入道模式时因每次的输入的数据量甚为有限,故需进一步克服固有的并行度限制。
若采用GPU进行叠前时间偏移的计算流程,不难发现,凭借充分利用GPU与CPU之间的通信带宽,从而可摒弃网络传输过程,由于每个线程都可以访问同一块共享内存,从而可显著减少反复读取输入数据的次数,这样就可以满足输出道模式的要求。按此思路,本发明实施例中采用输入道模式和输出道模式相结合的方式,可以实现叠前时间偏移的并行计算。具体实现方法为:首先把GPU的多核处理器划分为若干个计算块(block),同时每个计算块又可以划分为若干个线程(thread),利用GPU的充分多的线程数实现大规模并行计算。这样就可以实现多道输入和多道输出的偏移模式,最大限度地增加了并行度,达到提高计算效率的目的。在实际地震资料的测试中,与单个CPU相比可以使计算速度约可提升15倍。
例如可以将SPBSP程序转换为采用硬件环境为GPU NVIDIA GForce8800GT,GPU主频1.5GHz,包含128个流处理器(SP)的Cuda程序以进行运算,具体采用上述程序计算叠前时间偏移。与其对比的是至强双核主频3.0GHz的CPU;机群环境为10个双路双核3.0GHz的CPU,每个节点发送4个计算进程,一共是40个计算进程并行。CPU编译时利用-O3选项优化。计算中选取的实验数据分别为中国东部某区块数据和西部的某区块数据。
经采用上述两种硬件分别进行计算,对比发现,GPU计算230兆字节的地震叠前时间偏移数据量仅需19s用时,是单个CPU计算速度的15~16倍左右,是10个CPU计算速度的1.5~2.0倍。因此,实际应用中,可以采用其他硬件及操作系统,将SPBSP平台的SPBSP程序编译为对应的程序即可。且编译后目标程序在对应的GPU的硬件环境下进行计算处理。编译后的目标程序在对应的GPU环境下相对于在CPU环境下采用该CPU环境对应的语言程序进行计算处理,能够极大地提高计算速度。
上述实施例仅以计算地震叠前时间偏移为例来介绍本发明实施例的技术方案。与此类似,可以采用其他本发明实施例的技术方案进行其他各种程序的处理。而且均能够有效地提高计算速度。且非常便于在各种环境下进行各种程序语言的转换,从而不仅增强了开发的便利性,而且还降低了开发成本。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种编译处理方法,其特征在于,包括:
接收原程序;
将所述原程序编译成能够在目标环境运行的目标程序,以供所述目标程序在所述目标环境下运行。
2.根据权利要求1所述的编译处理方法,其特征在于,将所述原程序编译成能够在目标环境运行的目标程序,具体包括:将所述原程序编译成能够在Windows操作系统下、所有通用处理单元上运行的目标程序。
3.根据权利要求1所述的编译处理方法,其特征在于,将所述原程序编译成能够在目标环境运行的目标程序,具体包括:将所述原程序编译成能够在Windows操作系统下、Nvidia通用处理单元上运行的目标程序。
4.根据权利要求2或者3所述的编译处理方法,其特征在于,所述目标程序为Cuda、Opencl或者DirectComputer。
5.根据权利要求1所述的编译处理方法,其特征在于,将所述原程序编译成能够在目标环境运行的目标程序,具体包括:将所述原程序编译成能够在Linux操作系统下、所有通用处理单元上运行的目标程序。
6.根据权利要求1所述的编译处理方法,其特征在于,将所述原程序编译成能够在目标环境运行的目标程序,具体包括:将所述原程序编译成能够在Linux操作系统下、Nvidia通用处理单元或者ATI通用处理单元上运行的目标程序。
7.根据权利要求5或者6所述的编译处理方法,其特征在于,所述目标程序为Cuda、Opencl、Brook或者Brook+。
8.根据权利要求1-3、5和6任一所述的编译处理方法,其特征在于,所述将所述原程序编译成能够在目标环境运行的目标程序的过程中,同时将所述原程序中的串行语句转换为并行语句。
9.一种编译处理装置,其特征在于,包括:
接收模块,用于接收原程序;
编译处理模块,用于将所述原程序编译成适合目标环境运行的目标程序,以供所述目标程序在所述目标环境下运行。
10.根据权利要求9所述的编译处理装置,其特征在于,所述编译处理模块,具体用于将所述原程序编译成能够在Windows操作系统下、所有通用处理单元或者Nvidia通用处理单元上运行的目标程序,以供所述目标程序在所述目标环境下运行;或者用于将所述原程序编译成能够在Linux操作系统下、所有通用处理单元或者Nvidia通用处理单元或者ATI通用处理单元上运行的目标程序,以供所述目标程序在所述目标环境下运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102966776A CN101963916A (zh) | 2010-09-28 | 2010-09-28 | 编译处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102966776A CN101963916A (zh) | 2010-09-28 | 2010-09-28 | 编译处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101963916A true CN101963916A (zh) | 2011-02-02 |
Family
ID=43516798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102966776A Pending CN101963916A (zh) | 2010-09-28 | 2010-09-28 | 编译处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101963916A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097253A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | Gpu系统及其处理方法 |
CN103514025A (zh) * | 2012-06-22 | 2014-01-15 | 阿尔特拉公司 | Opencl编译 |
CN105510961A (zh) * | 2014-09-29 | 2016-04-20 | 中国石油化工股份有限公司 | 一种处理叠前逆时偏移数据的系统及方法 |
CN106526667A (zh) * | 2016-10-26 | 2017-03-22 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN107544794A (zh) * | 2016-06-28 | 2018-01-05 | 华为技术有限公司 | 程序信息的处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1265488A (zh) * | 2000-03-06 | 2000-09-06 | 周大凯 | 程序执行方法 |
CN1661558A (zh) * | 2004-02-24 | 2005-08-31 | 何积丰 | 基于程序代数的硬件编译器设计方法 |
CN101446905A (zh) * | 2008-12-29 | 2009-06-03 | 北京飞天诚信科技有限公司 | 编译方法及编译器 |
CN101556543A (zh) * | 2008-04-09 | 2009-10-14 | 辉达公司 | 由通用处理器执行重定目标的图形处理器加速代码 |
CN101667135A (zh) * | 2009-09-30 | 2010-03-10 | 浙江大学 | 一种交互式并行化编译系统及其编译方法 |
-
2010
- 2010-09-28 CN CN2010102966776A patent/CN101963916A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1265488A (zh) * | 2000-03-06 | 2000-09-06 | 周大凯 | 程序执行方法 |
CN1661558A (zh) * | 2004-02-24 | 2005-08-31 | 何积丰 | 基于程序代数的硬件编译器设计方法 |
CN101556543A (zh) * | 2008-04-09 | 2009-10-14 | 辉达公司 | 由通用处理器执行重定目标的图形处理器加速代码 |
CN101446905A (zh) * | 2008-12-29 | 2009-06-03 | 北京飞天诚信科技有限公司 | 编译方法及编译器 |
CN101667135A (zh) * | 2009-09-30 | 2010-03-10 | 浙江大学 | 一种交互式并行化编译系统及其编译方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013097253A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | Gpu系统及其处理方法 |
CN103299277A (zh) * | 2011-12-31 | 2013-09-11 | 华为技术有限公司 | Gpu系统及其处理方法 |
CN103299277B (zh) * | 2011-12-31 | 2016-11-09 | 华为技术有限公司 | Gpu系统及其处理方法 |
CN103514025A (zh) * | 2012-06-22 | 2014-01-15 | 阿尔特拉公司 | Opencl编译 |
CN105510961A (zh) * | 2014-09-29 | 2016-04-20 | 中国石油化工股份有限公司 | 一种处理叠前逆时偏移数据的系统及方法 |
CN107544794A (zh) * | 2016-06-28 | 2018-01-05 | 华为技术有限公司 | 程序信息的处理方法和装置 |
CN106526667A (zh) * | 2016-10-26 | 2017-03-22 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abdelkhalek et al. | Fast seismic modeling and reverse time migration on a GPU cluster | |
Stantchev et al. | Fast parallel particle-to-grid interpolation for plasma PIC simulations on the GPU | |
Cann | Retire fortran? a debate rekindled | |
CN101963916A (zh) | 编译处理方法及装置 | |
CN104182571B (zh) | 基于Delaunay和GPU的Kriging插值方法 | |
Castro et al. | Seismic wave propagation simulations on low-power and performance-centric manycores | |
Barrett et al. | Navigating an evolutionary fast path to exascale | |
Liu | Parallel and scalable sparse basic linear algebra subprograms | |
Song et al. | Cambricon-G: A polyvalent energy-efficient accelerator for dynamic graph neural networks | |
Xue et al. | An efficient GPU implementation for locating micro-seismic sources using 3D elastic wave time-reversal imaging | |
Ito et al. | A GPU implementation of dynamic programming for the optimal polygon triangulation | |
Abdelkhalek et al. | Fast seismic modeling and reverse time migration on a graphics processing unit cluster | |
PELTIES | Accelerating SeisSol by generating vectorized code for sparse matrix operators | |
Wang et al. | A scalable spatial skyline evaluation system utilizing parallel independent region groups | |
Prat et al. | Combining task-based parallelism and adaptive mesh refinement techniques in molecular dynamics simulations | |
Wang et al. | Towards ultra-high-resolution e3sm land modeling on exascale computers | |
Wu et al. | MIC acceleration of short-range molecular dynamics simulations | |
CN113360187B (zh) | 一种基于CUDA与OpenMP的三维Kriging算法协同加速方法 | |
Hansen et al. | An MPI+ X X implementation of contact global search using Kokkos | |
CN105572730B (zh) | 三维复杂结构声波正演方法 | |
Ciobanu et al. | Scalability evaluation of a Polymorphic Register File: a CG case study | |
Wang et al. | Design and optimization of DBSCAN Algorithm based on CUDA | |
Medeiros et al. | High performance implementation of RTM seismic modeling on FPGAs: Architecture, arithmetic and power issues | |
Yan et al. | Optimizing algorithm of sparse linear systems on gpu | |
Eisner | Supercomputers in seismic exploration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110202 |