CN117724798A - Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method - Google Patents

Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method Download PDF

Info

Publication number
CN117724798A
CN117724798A CN202211134734.XA CN202211134734A CN117724798A CN 117724798 A CN117724798 A CN 117724798A CN 202211134734 A CN202211134734 A CN 202211134734A CN 117724798 A CN117724798 A CN 117724798A
Authority
CN
China
Prior art keywords
gpu
parameters
parameter
finite difference
space
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
Application number
CN202211134734.XA
Other languages
Chinese (zh)
Inventor
侯思安
韩永科
王春明
李涛
崔栋
蒋永祥
李文科
崔兴福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Petrochina Co Ltd
Original Assignee
Petrochina Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Petrochina Co Ltd filed Critical Petrochina Co Ltd
Priority to CN202211134734.XA priority Critical patent/CN117724798A/en
Publication of CN117724798A publication Critical patent/CN117724798A/en
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Complex Calculations (AREA)

Abstract

The invention discloses a parameter determination method, device and equipment of a three-dimensional finite difference forward modeling method, which can comprise the following steps: constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template; constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template; constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template; and carrying out finite difference forward modeling of the three-dimensional wave equation based on the determined thread grouping parameters calculated by the GPU, the spatial slicing parameters calculated by the GPU, the differential coefficients and the differential orders. The invention avoids the key parameters of operating efficiency generated by writing different codes newly after the GPU hardware parameters and programming languages are changed, avoids the CUDA language and hardware limitation used by programming, and saves the resource configuration and development cost.

Description

Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method
Technical Field
The invention relates to the technical field of petroleum geophysical exploration seismic wave numerical simulation, in particular to a parameter determination method, device and equipment of a three-dimensional finite difference forward modeling method.
Background
The three-dimensional wave equation finite difference forward modeling method is a key basic algorithm for petroleum geophysical exploration, and the calculation efficiency plays a decisive role in the overall performance of wave equation algorithms such as reverse time migration imaging, least square migration imaging, full waveform inversion and the like.
The three-dimensional wave equation finite difference forward modeling method has higher calculation/access ratio and extremely strong operator space consistency in the whole calculation range, and the algorithm is very suitable for GPU (graphic processing unit) acceleration calculation. Compared with a CPU single-threaded algorithm with the same price, the speed of the program accelerated by the GPU can be increased by 30-50 times; there is also about a 5-10 times acceleration compared to vectorized parallel CPU code, so GPU is already the most dominant hardware running environment in current industry.
Although the algorithm model based on GPU acceleration has been basically shaped and remains relatively stable for the last ten years, the hardware details of each generation of GPU have large differences, and the key parameters (such as Tile size and Block size) for achieving the best operation efficiency have large differences according to GPU models. Meanwhile, due to the limitation of CUDA language and hardware used by GPU programming, the key parameters cannot be set dynamically during program running, and different codes need to be written for each different GPU hardware, so that the difficulty of programming and testing is increased, and the error probability is also increased during the programming and testing process.
Disclosure of Invention
The present invention has been made in view of the above problems, and has as its object to provide a parameter determination method, apparatus and device for a three-dimensional finite difference forward modeling method which overcomes or at least partially solves the above problems.
In a first aspect, an embodiment of the present invention provides a method for determining parameters of a three-dimensional finite difference forward modeling method, which may include:
constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template;
constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template;
constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template;
and carrying out three-dimensional wave equation finite difference forward modeling based on the determined thread grouping parameters calculated by the GPU, the spatial slicing parameters calculated by the GPU, the differential coefficient and the differential order.
Optionally, the performing three-dimensional wave equation finite difference forward modeling based on the thread grouping parameter calculated by the GPU, the spatial slicing parameter calculated by the GPU, the difference coefficient and the difference order may include:
acquiring resources of a GPU shared memory based on the X parameter and the Z parameter of the thread grouping parameter calculated by the GPU, the X parameter and the Z parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential order and the differential coefficient;
acquiring resources of a GPU register based on the Y parameter of the thread grouping parameter calculated by the GPU, the Y parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential coefficient;
and based on the resources of the GPU shared memory and the resources of the GPU registers, reading the calculation data from the global memory into the corresponding shared memory and registers so as to perform three-dimensional wave equation finite difference forward modeling calculation.
Optionally, the generating the thread grouping parameters of the GPU computation based on the GPU thread grouping structural template may include:
defining parameters X, Y and Z of the GPU thread grouping structure template to respectively represent the thread numbers corresponding to the GPU in the directions of space X, Y and Z;
and respectively setting the values of the parameter X, the parameter Y and the parameter Z based on the GPU hardware parameters and/or the GPU programming language so as to generate the thread grouping parameters of GPU calculation.
Optionally, the generating the spatial slicing parameters of the GPU computation based on the GPU spatial slicing structure template may include:
defining parameters X, Y and Z of the GPU space slicing structure template to respectively represent the size proportion of the thread groups in the space X, Y and Z directions to the space slicing;
and respectively setting values of a parameter X, a parameter Y and a parameter Z based on the GPU hardware parameters to generate the space slicing parameters calculated by the GPU.
Optionally, the generating the differential coefficient and the differential order for performing finite difference computation based on the finite difference algorithm structural body template may include:
defining parameters C0, C1, C2, C3, C4, C5, C6, C7, and O of the differential coefficient and differential order of the finite difference calculation to characterize the differential coefficient and the differential order, respectively;
values of parameters C0, C1, C2, C3, C4, C5, C6, C7, and O are set based on the GPU hardware parameters, respectively, to generate differential coefficients and differential orders for finite difference computation.
Alternatively, the simulation of a three-dimensional wave equation using finite difference forward modeling is represented by:
the three-dimensional wave equation is:
wherein v represents the longitudinal wave propagation velocity of the analog medium; p represents the longitudinal wave amplitude of the analog medium; s represents a source term; x, y, z and t respectively represent three spatial directions and a temporal direction, and generally x and y correspond to two horizontal directions of space, z corresponds to a depth direction of space, and x, y and z are perpendicular to each other;
performing numerical discrete on the three-dimensional wave equation by using a finite difference forward modeling method, wherein the discrete equation is as follows:
the space coordinates and the time coordinates are respectively subjected to numerical discrete by using deltas and deltat, wherein deltas and deltat represent corresponding discrete step sizes; subscripts x, y, z and superscript t denote the spatial and temporal coordinates of the calculation, c i A difference coefficient representing an ith difference operator; n represents the length of the difference operator.
In a second aspect, an embodiment of the present invention provides a parameter determining apparatus of a three-dimensional finite difference forward modeling method, which may include:
the first construction module is used for constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template;
the second construction module is used for constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template;
the third construction module is used for constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template;
and the calculation module is used for carrying out three-dimensional wave equation finite difference forward modeling based on the thread grouping parameters calculated by the GPU, the space slicing parameters calculated by the GPU, the difference coefficient and the difference order.
In a third aspect, an embodiment of the present invention provides a computer readable storage medium having stored thereon a computer program, wherein the program when executed by a processor implements the method for determining parameters of the three-dimensional finite difference forward modeling method according to the first aspect.
In a fourth aspect, an embodiment of the present invention provides a computer device, including a memory, a processor and a computer program stored on the memory and executable on the processor, where the processor implements the method for determining parameters of the three-dimensional finite difference forward modeling method according to the first aspect when the processor executes the program.
In a fifth aspect, an embodiment of the present invention provides a seismic data processing method, which may include: processing the seismic data by using a three-dimensional wave equation finite difference forward modeling method;
the thread grouping parameters calculated by the GPU, the space slicing parameters calculated by the GPU, the differential coefficients and the differential orders used by the finite difference forward modeling method are determined according to the parameter determining method of the three-dimensional finite difference forward modeling method according to the first aspect.
The technical scheme provided by the embodiment of the invention has the beneficial effects that at least:
the embodiment of the invention provides a parameter determination method, device and equipment of a three-dimensional finite difference forward modeling method, which can comprise the following steps: constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template; constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template; constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template; and carrying out finite difference forward modeling of the three-dimensional wave equation based on the determined thread grouping parameters calculated by the GPU, the spatial slicing parameters calculated by the GPU, the differential coefficients and the differential orders. According to the embodiment of the invention, different templates are constructed to quickly generate different parameters according to the GPU operation environment, so that the calculation of the three-dimensional wave equation by the finite difference forward modeling method is realized, the key parameters of operation efficiency are avoided by writing different codes from new after the GPU hardware parameters and programming languages change, the limitation of CUDA language and hardware used by GPU programming is avoided, and the resource configuration and development cost are saved.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention may be realized and attained by the structure particularly pointed out in the written description and drawings.
The technical scheme of the invention is further described in detail through the drawings and the embodiments.
Drawings
The accompanying drawings are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate the invention and together with the embodiments of the invention, serve to explain the invention. In the drawings:
FIG. 1 is a flow chart of a method for determining parameters of a three-dimensional finite difference forward modeling method according to an embodiment of the present invention;
FIG. 2 is a finite difference method model of a three-dimensional longitudinal wave equation for GPU acceleration provided in an embodiment of the present invention;
fig. 3 is a schematic diagram of a parameter determining apparatus of a three-dimensional finite difference forward modeling method according to an embodiment of the present invention.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The embodiment of the invention provides a parameter determining method of a three-dimensional finite difference forward modeling method, which is shown by referring to fig. 1, and can comprise the following steps:
and S11, constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template.
And S12, constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template.
And S13, constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template.
And S14, performing finite difference forward modeling of the three-dimensional wave equation based on the determined thread grouping parameters calculated by the GPU, the spatial slicing parameters calculated by the GPU, the differential coefficients and the differential orders.
According to the method, different templates are constructed to quickly generate different parameters according to the GPU operation environment, so that the calculation of the three-dimensional wave equation by the finite difference forward modeling method is realized, the key parameters of operation efficiency are avoided by writing different codes from new after the GPU hardware parameters and programming languages are changed, the limitation of CUDA language and hardware used by GPU programming is avoided, and resource allocation and development cost are saved.
In an optional embodiment, the performing three-dimensional wave equation finite difference forward modeling based on the thread grouping parameter calculated by the GPU, the spatial slicing parameter calculated by the GPU, the difference coefficient and the difference order may specifically include:
acquiring resources of a GPU shared memory based on X parameters and Z parameters of thread grouping parameters calculated by the GPU, X parameters and Z parameters of space slicing parameters calculated by the GPU and Z parameters in differential order and differential coefficient;
acquiring resources of a GPU register based on a Y parameter of a thread grouping parameter calculated by the GPU, a Y parameter of a space slicing parameter calculated by the GPU and a Z parameter in a difference coefficient;
and based on the resources of the GPU shared memory and the resources of the GPU registers, reading the calculation data from the global memory into the corresponding shared memory and registers so as to perform three-dimensional wave equation finite difference forward modeling calculation.
In a specific embodiment, an embodiment of the present invention may include the steps of:
taking a three-dimensional longitudinal wave equation commonly used in the field of petroleum geophysical exploration as an example, performing numerical discrete on the three-dimensional wave equation by using a finite difference forward modeling method. The three-dimensional wave equation can be expressed as:
wherein v represents the longitudinal wave propagation velocity of the analog medium; p represents the longitudinal wave amplitude of the analog medium; s represents a source term; x, y, z and t respectively represent three spatial directions and a temporal direction, and generally x and y correspond to two horizontal directions of space, z corresponds to a depth direction of space, and x, y and z are perpendicular to each other;
in specific implementation, the three-dimensional wave equation is subjected to numerical discrete by a finite difference forward modeling method, and the discrete equation is as follows:
the space coordinates and the time coordinates are respectively subjected to numerical discrete by using deltas and deltat, wherein deltas and deltat represent corresponding discrete step sizes; subscripts x, y, z and superscript t denote the spatial and temporal coordinates of the calculation, c i A difference coefficient representing an ith difference operator; n represents the length of the difference operator.
And secondly, accelerating the finite difference method by using the GPU, wherein in order to fully exert the computing resources of the GPU during acceleration, a shared memory (shared memory) and a register (register) are required to be used for data caching, wherein the shared memory is used for caching data in the x and z directions, and the register is used for caching data in the y direction. Meanwhile, in order to meet the memory address alignment requirement of the GPU global memory (global memory), the value of the difference operator length N in the above formula is usually 4, 8, 12 or 16. Taking N as an example, the finite difference method model of the three-dimensional longitudinal wave equation of the GPU acceleration is shown in fig. 2.
The three-dimensional space in which GPU computation is required is represented in the cube of fig. 2; CUDA BLOCK represents a thread group of the GPU, the number of threads within the thread group being 2×16, 4×16, 8×16, or 16×16; CUDA TILE represents the space slicing of the GPU, the size of the space slicing is an integer multiple of CUDA BLOCK, the size relation between the space slicing and the Thread grouping is the number of space points to be calculated for each GPU Thread (Thread), as shown in FIG. 1, the size of the space slicing is 2 times of the Thread grouping, and then each Thread needs to calculate 2 space points; in the figure, shared Memory (Shared Memory) is shown, each thread group has mutually independent Shared Memory as GPU computing resource, data stored in the Shared Memory is Shared by all threads in the thread group, the size of the Shared Memory is broadside on the basis of space slicing, and the size of the broadside is the length N of a difference operator; for each spatial point (shown as the midpoint of the square frame in the figure), an independent GPU Thread (Thread) is used for calculation, and each Thread has an independent number of registers (registers) for data caching, wherein the number of registers is the length of a difference operator
In the calculation, starting from the time t=0, calculating one time step at a time until the desired total time length is reached; for any one moment, starting from a spatial position of y=0, calculating y=Δs, y=2Δs … step by step until the desired spatial length is reached; for any spatial location (e.g., y=100Δs), according to GPU thread grouping and spatial slicing settings, first, data involved in computation is read into a corresponding Shared Memory (Shared Memory) and Register (Register) from Global Memory (Global Memory), and then computation is performed according to the finite difference method described in summary 1.
Thirdly, constructing a key parameter template of the three-dimensional wave equation forward modeling method accelerated by the GPU.
Namely, the template is constructed through the steps S11 to S13, and the concrete steps are as follows:
in particular implementations, generating thread grouping parameters for GPU computing based on GPU thread grouping structural body templates includes: defining parameters X, Y and Z of the GPU thread grouping structure template to respectively represent the thread numbers corresponding to the GPU in the directions of space X, Y and Z; and respectively setting the values of the parameter X, the parameter Y and the parameter Z based on the GPU hardware parameters and/or the GPU programming language so as to generate the thread grouping parameters of GPU calculation.
A GPU thread grouping structure template (CudaBlockShape) is constructed, the structure template is used for describing thread grouping size meeting GPU hardware design requirements, and in order to meet GPU programming language and hardware design requirements, parameters in the structure template are static constant parameters (static constant):
wherein the structural body template has 3 parameters X, Y and Z, which respectively represent the corresponding threads of the GPU in the X, Y and Z directions of the space, wherein y=1, x=1, 2, 4, 8, 16 or 32, z=16 or 32, and x×z is less than or equal to 1024. Taking 2×16 as an example, a set of GPU-computed thread grouping parameters CudaBlockShape <1,2,16> can be generated using the fabric template.
Then, a GPU space slicing structure template (blocktile shape) is constructed, specifically implemented as follows: defining parameters X, Y and Z of the GPU space slicing structure template to respectively represent the size proportion of the thread groups in the space X, Y and Z directions and the space slicing; and respectively setting values of a parameter X, a parameter Y and a parameter Z based on the GPU hardware parameters to generate the space slicing parameters calculated by the GPU.
The structure template is used for describing the relation between the actual space fragment size and the thread grouping size, and in order to meet the requirements of GPU programming language and hardware design, the parameters in the structure template are static constant parameters (static constant):
wherein the structure template has 3 parameters X, Y and Z, representing the size ratio of the thread group to the spatial slice in the spatial X, Y and Z directions, respectively, typically y=1, x=1 or 2, z=1 or 2. Taking 1×2×1 as an example, the structure template can be used to generate a set of spatial tile parameters blocktile shape <1,2,1> for GPU computation.
Finally, a finite difference algorithm template (finitedifferenicoeffeffients) is constructed, and the implementation is as follows: defining a parameter C0, a parameter C1, a parameter C2, a parameter C3, a parameter C4, a parameter C5, a parameter C6 and a parameter C7 of the finite difference calculation and a parameter O of the differential coefficient and the differential order to respectively represent the differential coefficient and the differential order; values of parameters C0, C1, C2, C3, C4, C5, C6, C7, and O are set based on the GPU hardware parameters, respectively, to generate differential coefficients and differential orders for finite difference computation.
The structure body template is used for describing differential coefficients for finite difference calculation, in order to meet the requirements of GPU programming language and hardware design, parameters in the structure body template are static constant parameters (static const), and in the embodiment of the invention, a finite difference algorithm template library is described as follows:
wherein the structural body template has 9 parameters C0-C7 and O, and the differential coefficient and differential order of finite difference calculation, for example, a group of optional 4-order finite differential coefficients are expressed as FiniteDifference Coefficients < -296811100,170001000, -25546150,4445392, -494685,0,0,0,0,4>. And fourthly, reconstructing a computer algorithm by using the template described in the third step to the three-dimensional wave equation forward modeling method accelerated by the GPU described in the second step, and rapidly generating algorithms meeting different GPU hardware characteristics so as to maximize the utilization rate of computing resources of different GPU hardware environments. The algorithm is expressed as the following steps:
firstly, GPU computing resources are applied, and the applied shared memory size is (CudaBlockShape:: X multiplied by BlockTileShape:: X+2FiniteDifference Coefficients:: N) × (Cud aBlockShape:: Z multiplied by BlockTileShape::: Z+2FiniteDifference Coefficients::: Z); the applied register size is (2 FiniteDifference Coefficients:: Z+1) ×BlockTileShape::: X×BlockTileShape:: Z.
Then, starting from the spatial position of y=0, gradually calculating y=Δs and y=2Δs … until reaching a desired spatial length, for any spatial position (such as y=100deg.S), according to the GPU thread grouping and the spatial slicing setting, firstly reading the data participating in calculation from the Global Memory (Global Memory) into the corresponding Shared Memory (Shared Memory) and Register (Register), and then according to the difference formula, performing the following calculation:
if finitedifference coeffients: : o <4 then only calculates the following formula:
if 4 is less than or equal to finitedifference coeffients: : o <8 is also calculated as follows:
according to different GPU operating environments, parallel algorithm examples with different parameters are rapidly generated through the template library described in the fourth step, and the optimal algorithm example is optimized through actual testing.
Based on the same inventive concept, the embodiment of the invention also provides a parameter determining device of a three-dimensional finite difference forward modeling method, and referring to fig. 3, the device may include: the first construction module 11, the second construction module 12, the third construction module 13 and the calculation module 14 operate according to the following principle:
the first construction module 11 is configured to construct a GPU thread grouping structure template, so as to generate thread grouping parameters of GPU computation based on the GPU thread grouping structure template;
the second construction module 12 is configured to construct a GPU spatial slicing structure template, so as to generate spatial slicing parameters of GPU computation based on the GPU spatial slicing structure template;
the third construction module 13 is configured to construct a finite difference algorithm structural body template, so as to generate a difference coefficient and a difference order for performing finite difference calculation based on the finite difference algorithm structural body template;
the calculation module 14 is configured to perform finite difference forward modeling of the three-dimensional wave equation based on the thread grouping parameter calculated by the GPU, the spatial slicing parameter calculated by the GPU, the differential coefficient, and the differential order.
In an alternative embodiment, the calculation module 14 is specifically configured to: acquiring resources of a GPU shared memory based on the X parameter and the Z parameter of the thread grouping parameter calculated by the GPU, the X parameter and the Z parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential order and the differential coefficient;
acquiring resources of a GPU register based on the Y parameter of the thread grouping parameter calculated by the GPU, the Y parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential coefficient;
and based on the resources of the GPU shared memory and the resources of the GPU registers, reading the calculation data from the global memory into the corresponding shared memory and registers so as to perform three-dimensional wave equation finite difference forward modeling calculation.
In another alternative embodiment, the first building block 11 is specifically configured to: defining parameters X, Y and Z of the GPU thread grouping structure template to respectively represent the thread numbers corresponding to the GPU in the directions of space X, Y and Z;
and respectively setting the values of the parameter X, the parameter Y and the parameter Z based on the GPU hardware parameters and/or the GPU programming language so as to generate the thread grouping parameters of GPU calculation.
In another particular embodiment, the second build module 12 is specifically configured to:
defining parameters X, Y and Z of the GPU space slicing structure template to respectively represent the size proportion of the thread groups in the space X, Y and Z directions to the space slicing;
and respectively setting values of a parameter X, a parameter Y and a parameter Z based on the GPU hardware parameters to generate the space slicing parameters calculated by the GPU.
In another specific embodiment, the third building block 13 is specifically configured to:
defining parameters C0, C1, C2, C3, C4, C5, C6, C7, and O of the differential coefficient and differential order of the finite difference calculation to characterize the differential coefficient and the differential order, respectively;
values of parameters C0, C1, C2, C3, C4, C5, C6, C7, and O are set based on the GPU hardware parameters, respectively, to generate differential coefficients and differential orders for finite difference computation.
In another alternative embodiment, a finite difference forward modeling three-dimensional wave equation is used to represent the following:
the three-dimensional wave equation is:
wherein v represents the longitudinal wave propagation velocity of the analog medium; p represents the longitudinal wave amplitude of the analog medium; s represents a source term; x, y, z and t respectively represent three spatial directions and a temporal direction, and generally x and y correspond to two horizontal directions of space, z corresponds to a depth direction of space, and x, y and z are perpendicular to each other;
performing numerical discrete on the three-dimensional wave equation by using a finite difference forward modeling method, wherein the discrete equation is as follows:
the space coordinates and the time coordinates are respectively subjected to numerical discrete by using deltas and deltat, wherein deltas and deltat represent corresponding discrete step sizes; subscripts x, y, z and superscript t denote the spatial and temporal coordinates of the calculation, c i A difference coefficient representing an ith difference operator; n represents the length of the difference operator.
Based on the same inventive concept, the embodiment of the invention also provides a computer readable storage medium, on which a computer program is stored, which when executed by a processor, implements the parameter determination method of the three-dimensional finite difference forward modeling method.
Based on the same inventive concept, the embodiment of the invention also provides a computer device, which comprises a memory, a processor and a computer program stored on the memory and capable of running on the processor, wherein the processor realizes the parameter determination method of the three-dimensional finite difference forward modeling method when executing the program.
Based on the same inventive concept, the embodiment of the invention also provides a seismic data processing method, which can comprise the following steps: processing the seismic data by using a three-dimensional wave equation finite difference forward modeling method;
the thread grouping parameters calculated by the GPU, the space slicing parameters calculated by the GPU, the differential coefficients and the differential orders used by the finite difference forward modeling method are determined according to the parameter determining method of the three-dimensional finite difference forward modeling method.
The principle of the problems solved by the device, the medium and the related equipment in the embodiment of the invention is similar to that of the method, so that the implementation of the device, the medium and the related equipment can be referred to the implementation of the method, and the repetition is omitted.
It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, magnetic disk storage, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention also include such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.

Claims (10)

1. A method for determining parameters of a three-dimensional finite difference forward modeling method, comprising:
constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template;
constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template;
constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template;
and carrying out three-dimensional wave equation finite difference forward modeling based on the determined thread grouping parameters calculated by the GPU, the spatial slicing parameters calculated by the GPU, the differential coefficient and the differential order.
2. The method according to claim 1, wherein the performing three-dimensional wave equation finite difference forward modeling based on the GPU-calculated thread grouping parameters, the GPU-calculated spatial slicing parameters, the differential coefficients, and the differential order comprises:
acquiring resources of a GPU shared memory based on the X parameter and the Z parameter of the thread grouping parameter calculated by the GPU, the X parameter and the Z parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential order and the differential coefficient;
acquiring resources of a GPU register based on the Y parameter of the thread grouping parameter calculated by the GPU, the Y parameter of the space slicing parameter calculated by the GPU and the Z parameter in the differential coefficient;
and based on the resources of the GPU shared memory and the resources of the GPU registers, reading the calculation data from the global memory into the corresponding shared memory and registers so as to perform three-dimensional wave equation finite difference forward modeling calculation.
3. The method of claim 1, wherein the generating the GPU-computed thread grouping parameters based on the GPU thread grouping structural template comprises:
defining parameters X, Y and Z of the GPU thread grouping structure template to respectively represent the thread numbers corresponding to the GPU in the directions of space X, Y and Z;
and respectively setting the values of the parameter X, the parameter Y and the parameter Z based on the GPU hardware parameters and/or the GPU programming language so as to generate the thread grouping parameters of GPU calculation.
4. The method of claim 1, wherein generating GPU-computed spatial tile parameters based on the GPU spatial tile structure template comprises:
defining parameters X, Y and Z of the GPU space slicing structure template to respectively represent the size proportion of the thread groups in the space X, Y and Z directions to the space slicing;
and respectively setting values of a parameter X, a parameter Y and a parameter Z based on the GPU hardware parameters to generate the space slicing parameters calculated by the GPU.
5. The method of claim 1, wherein generating differential coefficients and differential orders for finite difference calculations based on the finite difference algorithm structural body templates comprises:
defining parameters C0, C1, C2, C3, C4, C5, C6, C7, and O of the differential coefficient and differential order of the finite difference calculation to characterize the differential coefficient and the differential order, respectively;
values of parameters C0, C1, C2, C3, C4, C5, C6, C7, and O are set based on the GPU hardware parameters, respectively, to generate differential coefficients and differential orders for finite difference computation.
6. The method according to any one of claims 1 to 5, characterized in that the simulated three-dimensional wave equation using finite difference forward modeling is represented by:
the three-dimensional wave equation is:
wherein v represents the longitudinal wave propagation velocity of the analog medium; p represents the longitudinal wave amplitude of the analog medium; s represents a source term; x, y, z and t respectively represent three spatial directions and a temporal direction, and generally x and y correspond to two horizontal directions of space, z corresponds to a depth direction of space, and x, y and z are perpendicular to each other;
performing numerical discrete on the three-dimensional wave equation by using a finite difference forward modeling method, wherein the discrete equation is as follows:
the space coordinates and the time coordinates are respectively subjected to numerical discrete by using deltas and deltat, wherein deltas and deltat represent corresponding discrete step sizes; subscripts x, y, z and superscript t denote the spatial and temporal coordinates of the calculation, c i A difference coefficient representing an ith difference operator; n represents the length of the difference operator.
7. A parameter determining apparatus for a three-dimensional finite difference forward modeling method, comprising:
the first construction module is used for constructing a GPU thread grouping structure template to generate thread grouping parameters of GPU calculation based on the GPU thread grouping structure template;
the second construction module is used for constructing a GPU space slicing structure template to generate space slicing parameters of GPU calculation based on the GPU space slicing structure template;
the third construction module is used for constructing a finite difference algorithm structural body template to generate a difference coefficient and a difference order for finite difference calculation based on the finite difference algorithm structural body template;
and the calculation module is used for carrying out three-dimensional wave equation finite difference forward modeling based on the thread grouping parameters calculated by the GPU, the space slicing parameters calculated by the GPU, the difference coefficient and the difference order.
8. A computer-readable storage medium, on which a computer program is stored, characterized in that the program, when executed by a processor, implements a parameter determination method of a three-dimensional finite difference forward modeling method according to any one of claims 1 to 6.
9. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, characterized in that the processor implements a method for determining parameters of a three-dimensional finite difference forward modeling method according to any one of claims 1 to 6 when executing the program.
10. A method of seismic data processing, comprising: processing the seismic data by using a three-dimensional wave equation finite difference forward modeling method;
the thread grouping parameter, the spatial slicing parameter, the differential coefficient and the differential order of the GPU calculation used by the finite difference forward modeling method are determined according to the parameter determining method of the three-dimensional finite difference forward modeling method according to any one of claims 1 to 6.
CN202211134734.XA 2022-09-19 2022-09-19 Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method Pending CN117724798A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211134734.XA CN117724798A (en) 2022-09-19 2022-09-19 Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211134734.XA CN117724798A (en) 2022-09-19 2022-09-19 Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method

Publications (1)

Publication Number Publication Date
CN117724798A true CN117724798A (en) 2024-03-19

Family

ID=90207460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211134734.XA Pending CN117724798A (en) 2022-09-19 2022-09-19 Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method

Country Status (1)

Country Link
CN (1) CN117724798A (en)

Similar Documents

Publication Publication Date Title
Bondarev et al. Generalized computational experiment and visual analysis of multidimensional data
CN118379435B (en) Grid generation method and grid generation device of PCB model based on divide-and-conquer subdivision algorithm
Giuliani et al. Adaptive mesh refinement on graphics processing units for applications in gas dynamics
Dharma et al. Material point method based fluid simulation on GPU using compute shader
CN111310349A (en) Data processing and analyzing method suitable for discrete element calculation information continuous display
CN117724798A (en) Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method
Araújo et al. Boosting memory access locality of the Spectral Element Method with Hilbert space-filling curves
Kasdorf et al. Parallel GPU Optimization of the Shooting and Bouncing Ray Tracing Methodology for Propagation Modeling
Al-Oraiqat et al. Specialized Computer systems for environment visualization
KR101110342B1 (en) System and method for shape controllable fluid simulation
KR101170909B1 (en) System and method for fluid simulation using moving grid
Shrestha et al. Multi-level domain-decomposition strategy for solving the eikonal equation with the fast-sweeping method
DE PARGA et al. Parallel Algorithms for Real-Time GPGPU Volumetric Cloud Dynamics and Morphing.
Playne et al. Benchmarking multi-GPU communication using the shallow water equations
Liang et al. Performance analysis of improvemental LOD technology under VR headsets
Sivasuthan The general purpose parameter based two dimensional mesh generator
CN112614046B (en) Method and device for drawing three-dimensional model on two-dimensional plane
EP4152270A1 (en) Method of generating an interactive three-dimensional simulation of a section of an industrial facility
US10529444B1 (en) System that rapidly generates a solvent-excluded surface
Yahya Collision Resolution for Cloth Simulations Using Machine Learning
Degtyarev et al. Virtual testbed: ship motion simulation for personal workstations
Playne et al. Simulating and Benchmarking the shallow-water fluid dynamical equations on multiple graphical processing units
US20220405447A1 (en) Machine learning-based selective incarnation of computer-aided design objects
Chen et al. Accelerating a novel particle-based fluid simulation on the GPU
Roosing Computational Fluid Dynamics with Embedded Cut Cells on Graphics Hardware

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