一种基于FPGA的高阶波动方程求解方法技术

技术编号:26171504 阅读:21 留言:0更新日期:2020-10-31 13:44
本发明专利技术公开了一种基于FPGA的高阶波动方程求解方法,本发明专利技术针对FPGA设备应用,与以往使用CPU,GPU等冯诺依曼架构计算单元相比,FPGA具有更高的可定制性,以及更高的并发性。FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数不足的问题。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元,FPGA具有布线资源丰富,可重复变成,集成度高等优势。

【技术实现步骤摘要】
一种基于FPGA的高阶波动方程求解方法
本专利技术涉及石油勘探、地质成像领域,具体是一种在地质成像过程中基于FPGA的高阶波动方程求解方法。
技术介绍
随着油气田勘探程度的不断深化,普通易探明油气田几乎没有剩余,但油气资源又是现代工业所必须产品,故只能向结构复杂地域、海洋进行探索。现有呈像方法多使用克希霍夫射线法来进行呈像处理,此方法对盐下构造、复杂地质构造探照度不够,从而使用逆时偏移(RTM)方法来对地下地质结构进行呈像。这是一种基于波动方程在时间-空间域用高阶差分方方程求解声波偏微分方程的呈像方法,此方法可以真实的模拟波在地下的传播过程,无倾角限制,适合海洋及复杂地质结构,在复杂三维结构呈像方面有明显优势,呈像精度较射线法更高。在油气地质勘探过程中使用逆时偏移方法进行呈像涉及到对波动方程的求解,此过程计算量巨大,现有技术方案使用的为GPU加速卡进行多核多线程,相较于传统使用CPU计算有较大的提升。但在现今阶段GPU加速卡价格昂贵且功耗高,现有方案均是通过调用NVIDIA公司发布CUDA平台对高阶差分方法波动方程进行求解,由于CUDA平台为GPU通用性方案,且GPU硬件结构的限制,故没有针对高阶差分方程求解波动方程方法进行优化,从而造成GPU在求解波动方程时有一定局限性,在保留计算精度的情况下计算花费时间比较长。本专利技术利用了FPGA硬件特性,针对高阶差分方程求解波动方程做了硬件上的特异化的优化,对方程进行了等价拆分、组合,从而达到流水的方式对方程进行计算求解,充分利用硬件资源,较现有GPU方案同精度下更快,功耗更低。
技术实现思路
本专利技术的目的在于提供一种基于FPGA的高阶波动方程求解方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种基于FPGA的高阶波动方程求解方法,将三维双程波动方程降为三个一维方程进行求解即分解成x,y,z三个分量,求解主体为波动方程的差分方程求解方式,所述基于FPGA的高阶波动方程求解方法包括:S101:将需要计算的点坐标数据从硬盘或其他存储介质中传入FPGA内存中,FPGA芯片将数据从内存中读取到芯片内部;S102:将传至芯片内部的数据按照一定的顺序进行组合计算,按照差分方程计算公式,需读取P(i,j,k,n),p(i,j,k,n-1),p(i-1,j,k,n)、p(i+1,j,k,n),p(i-2,j,k,n)、p(i+2,j,k,n),...,p(i-m,j,k,n)、p(i+m,j,k,n),p(i,j-1,k,n)、p(i,j+1,k,n),p(i,j-2,k,n)、p(i,j+2,k,n),...,p(i,j-m,k,n)、p(i,j+m,k,n),p(i,j,k-1,n)、p(i,j,k+1,n),p(i,j,k-2,n)、p(i,j,k+2,n),...,p(i,j,k-m,n)、p(i,j,k+m,n)和对应的v(i,j,k)处的速度场值,m为所计算阶数M/2,M均为偶数;S103:将对应值乘以对应差分系数进行相加,a等于w0乘以P(i,j,k,n)加上w1乘以p(i-1,j,k,n)加上p(i+1,j,k,n)的和,b等于w2乘以p(i-2,j,k,n)加上p(i+2,j,k,n)的和,...,c等于Wm乘以p(i-m,j,k,n)加上p(i+m,j,k,n)的和,d等于w0乘以P(i,j,k,n)加上w1乘以p(i,j-1,k,n)加上p(i,j+1,k,n)的和,e等于w2乘以p(i,j-2,k,n)加上p(i,j+2,k,n)的和,...,f等于Wm乘以p(i,j-m,k,n)加上p(i,j+m,k,n)的和,g等于w0乘以P(i,j,k,n)加上w1乘以p(i,j,k-1,n)加上p(i,j,k+1,n)的和,h等于w2乘以p(i,j,k-2,n)加上p(i,j,k+2,n)的和,...,l等于Wm乘以p(i,j,k-m,n)加上p(i,j,k+m,n)的和;S104:对上诉计算得出的结果分别乘以对应速度场在其所对应分量上的系数,XX乘以a加上b加上,...,c的和,再加上YY乘以d加上e加上,...,f的和,再加上ZZ乘以g加上h加上l的和,最后再加上2倍的p(i,j,k,n),减去p(i,j,k,n-1),即可得出最终p(i,j,k,n+1)的值,此点下一时刻的值;S105:重复步骤二、步骤三、步骤四,直到将所有当前时刻点遍历完毕,得到下一时刻波场数值P(n+1);S106:基于P(n+1)波场值,重复步骤四,直到遍历完成所有时刻的值,得到最终P(nmax)值。作为本专利技术进一步的方案:所述波动方程为:其中,p(x,y,z,t)为波场,v(x,y,z)为介质速度。作为本专利技术再进一步的方案:所述差分方程为:其中,M为阶数。与现有技术相比,本专利技术的有益效果是:1、本专利技术针对FPGA设备应用,与以往使用CPU,GPU等冯诺依曼架构计算单元相比,FPGA具有更高的可定制性,以及更高的并发性。2、FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数不足的问题。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。由于FPGA具有布线资源丰富,可重复编程和集成度高。3、基于FPGA的可定制,可编程的特性,我们针对算法求解过程做了等价变形,使得在计算时充分发挥FPGA芯片的并发性能,使得计算指令无需等待,以流水的方式实现无缝连接的计算,省去了CPU、GPU等传统冯诺依曼架构芯片的指令调度、指令执行等待、数据搬运时间。从而大大加速了计算过程。据统计比同价位GPU快5倍以上,较CPU快百倍以上。4、同时,市场现存的GPU有较大的内存限制,导致数据无法装载完全,从而限制GPU运算速度,或者针对某些规模数据无法计算。而当前FPGA实现方式通过流水来提高并发量,有效缓解了内存的压力,使得在FPGA上可实现大规模数据的计算附图说明图1为一种基于FPGA的高阶波动方程求解方法的原理图。图2为一种基于FPGA的高阶波动方程求解方法的流程图。图中:Pn:当前时间切片波长数据,Pn-1:前一时间切片波长数据,V:速度参数场,wm:差分系数,Pn+1:后一时间切片波长数据具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1~2,本专利技术实施例中,一种基于FPGA的高阶波动方程求解方法,将三维双程波动方程降为三个一维方程进行求解即分解成x,y,z三个分量,求解主体为波动方程的差本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的高阶波动方程求解方法,其特征在于,将三维双程波动方程降为三个一维方程进行求解即分解成x,y,z三个分量,求解主体为波动方程的差分方程求解方式,所述基于FPGA的高阶波动方程求解方法包括:/nS101:将需要计算的点坐标数据从硬盘或其他存储介质中传入FPGA内存中,FPGA芯片将数据从内存中读取到芯片内部;/nS102:将传至芯片内部的数据按照顺序进行组合计算,按照差分方程计算公式,需读取P(i,j,k,n),p(i,j,k,n-1),p(i-1,j,k,n)、p(i+1,j,k,n),p(i-2,j,k,n)、p(i+2,j,k,n),...,p(i-m,j,k,n)、p(i+m,j,k,n),p(i,j-1,k,n)、p(i,j+1,k,n),p(i,j-2,k,n)、p(i,j+2,k,n),...,p(i,j-m,k,n)、p(i,j+m,k,n),p(i,j,k-1,n)、p(i,j,k+1,n),p(i,j,k-2,n)、p(i,j,k+2,n),...,p(i,j,k-m,n)、p(i,j,k+m,n)和对应的v(i,j,k)处的速度场值,m为所计算阶数M/2,M均为偶数;/nS103:将对应值乘以对应差分系数进行相加,a等于w0乘以P(i,j,k,n)加上w1乘以p(i-1,j,k,n)加上p(i+1,j,k,n)的和,b等于w2乘以p(i-2,j,k,n)加上p(i+2,j,k,n)的和,...,c等于Wm乘以p(i-m,j,k,n)加上p(i+m,j,k,n)的和,d等于w0乘以P(i,j,k,n)加上w1乘以p(i,j-1,k,n)加上p(i,j+1,k,n)的和,e等于w2乘以p(i,j-2,k,n)加上p(i,j+2,k,n)的和,...,f等于Wm乘以p(i,j-m,k,n)加上p(i,j+m,k,n)的和,g等于w0乘以P(i,j,k,n)加上w1乘以p(i,j,k-1,n)加上p(i,j,k+1,n)的和,h等于w2乘以p(i,j,k-2,n)加上p(i,j,k+2,n)的和,...,l等于Wm乘以p(i,j,k-m,n)加上p(i,j,k+m,n)的和;/nS104:对上述计算得出的结果分别乘以对应速度场在其所对应分量上的系数;/n...

【技术特征摘要】
1.一种基于FPGA的高阶波动方程求解方法,其特征在于,将三维双程波动方程降为三个一维方程进行求解即分解成x,y,z三个分量,求解主体为波动方程的差分方程求解方式,所述基于FPGA的高阶波动方程求解方法包括:
S101:将需要计算的点坐标数据从硬盘或其他存储介质中传入FPGA内存中,FPGA芯片将数据从内存中读取到芯片内部;
S102:将传至芯片内部的数据按照顺序进行组合计算,按照差分方程计算公式,需读取P(i,j,k,n),p(i,j,k,n-1),p(i-1,j,k,n)、p(i+1,j,k,n),p(i-2,j,k,n)、p(i+2,j,k,n),...,p(i-m,j,k,n)、p(i+m,j,k,n),p(i,j-1,k,n)、p(i,j+1,k,n),p(i,j-2,k,n)、p(i,j+2,k,n),...,p(i,j-m,k,n)、p(i,j+m,k,n),p(i,j,k-1,n)、p(i,j,k+1,n),p(i,j,k-2,n)、p(i,j,k+2,n),...,p(i,j,k-m,n)、p(i,j,k+m,n)和对应的v(i,j,k)处的速度场值,m为所计算阶数M/2,M均为偶数;
S103:将对应值乘以对应差分系数进行相加,a等于w0乘以P(i,j,k,n)加上w1乘以p(i-1,j,k,n)加上p(i+1,j,k,n)的和,b等于w2乘以p(i-2,j,k,n)加上p(i+2,j,k,n)的和,...,c等于Wm乘以p(i-m,j,k,n)加上p(i+m,j,k,n)的和,d等于w0乘以P(i,j,k,n)加上w1乘以p(i,j-1...

【专利技术属性】
技术研发人员:高雨豪田志明
申请(专利权)人:上海雪湖科技有限公司
类型:发明
国别省市:上海;31

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

1