Passive source seismic exploration body wave and surface wave recovery method and device based on GPU acceleration

By using a GPU-based block-based time-window cross-correlation recovery algorithm and CUDA streaming technology, the problems of slow calculation speed and large disk I/O in pseudo-shot gather recovery in passive source seismic exploration are solved, achieving high-efficiency calculation speed and disk I/O optimization.

CN116879947BActive Publication Date: 2026-04-14GEOPHYSICAL SURVEY TEAM OF SHANDONG COALFIELD GEOLOGY BUREAU
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GEOPHYSICAL SURVEY TEAM OF SHANDONG COALFIELD GEOLOGY BUREAU
Filing Date
2023-07-10
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

The existing passive source seismic exploration methods suffer from slow shot gather recovery calculations, large disk I/O, and insufficient computing power, which limits their widespread application.

Method used

A GPU-accelerated, block-based, time-division, cross-correlation, and superposition pseudo-shot set recovery algorithm is adopted, combined with CUDA streaming and CUFFT technology, to achieve asynchronous reading and transmission, making full use of the parallel computing capabilities of the GPU.

Benefits of technology

It significantly improves computing speed and reduces disk I/O, thereby increasing computing power and reducing computing time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116879947B_ABST
    Figure CN116879947B_ABST
Patent Text Reader

Abstract

The application discloses a GPU acceleration-based passive source seismic exploration body wave and surface wave recovery method and device, the GPU acceleration-based passive source seismic exploration body wave and surface wave recovery method is applied to a GPU of an electronic device, the electronic device further comprises a disk, a memory and a CPU which are electrically connected with the GPU, and the method comprises the following steps: constructing a preset block; reading passive source original data according to the preset block to generate a plurality of block data; and based on the plurality of block data, respectively calculating time window correlation recovery pseudo shot gathers of the plurality of block data. Therefore, the GPU acceleration-based passive source seismic exploration body wave and surface wave recovery method effectively improves the calculation capacity, and effectively reduces the calculation time consumption and disk IO.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of passive source seismic exploration technology, and in particular to a GPU-accelerated method and apparatus for recovering volume waves and surface waves in passive source seismic exploration. Background Technology

[0002] Seismic exploration offers advantages in exploration depth and resolution, making it widely used in mineral exploration. However, active-source seismic exploration, especially 3D exploration, is costly, limiting its widespread application. Passive-source seismic exploration, as an environmentally friendly, economical, and easily implemented method, can be carried out in areas where active-source seismic exploration is difficult (urban areas) or costly (mountainous regions) because it does not require active source activation, thus reducing the difficulty and economic cost of exploration.

[0003] As an important processing step in passive source seismic data processing, pseudo-shot gather reconstruction calculation is characterized by large disk I / O (Input / Output) and large computational load. However, existing pseudo-shot gather reconstruction methods have poor computational capabilities and slow computation speed.

[0004] The information disclosed in this background section is intended only to enhance the understanding of the overall background of the invention and should not be construed as an admission or in any way implying that the information constitutes prior art known to those skilled in the art. Summary of the Invention

[0005] The purpose of this invention is to provide a method and apparatus for recovering volume waves and surface waves from passive source seismic exploration based on GPU acceleration, which effectively improves computing power and effectively reduces computation time and disk I / O.

[0006] To achieve the above objectives, in a first aspect, the present invention provides a GPU-accelerated method and apparatus for recovering volumetric and surface waves from passive source seismic exploration. The GPU-accelerated method is applied to a GPU in an electronic device, which further includes a disk, memory, and CPU electrically connected to the GPU. The method includes: constructing preset blocks; reading the original passive source data according to the preset blocks to generate multiple block data; and calculating time-window correlation-based simulated shot sets for each of the multiple block data.

[0007] In one embodiment of the present invention, the construction of the preset block includes: constructing the preset block size according to the time window size, memory size, video memory size and original data information given by the user.

[0008] In one embodiment of the present invention, reading the passive source raw data according to the preset block and generating multiple block data includes: the GPU reading the passive source raw data in the disk according to the preset block, generating multiple block data, and reading them sequentially into the memory.

[0009] In one embodiment of the present invention, the number of channels in the block data is the same as the number of channels in the passive source original data.

[0010] In one embodiment of the present invention, the step of calculating the time-window related recovery pseudo-shot set of the multiple block data based on the multiple block data includes: the GPU calculating the time-window related recovery pseudo-shot set of the multiple block data based on the block data in memory.

[0011] Secondly, the present invention provides a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device, based on the GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method described above. The device includes a construction module, a generation module, and a calculation module. The construction module is used to construct preset blocks; the generation module is used to read the original passive source data according to the preset blocks and generate multiple block data; and the calculation module is used to calculate the time-window correlation recovery pseudo-shot set of the multiple block data respectively.

[0012] In one embodiment of the present invention, the construction of the preset block includes: constructing the preset block size according to the time window size, memory size, video memory size and original data information given by the user.

[0013] In one embodiment of the present invention, reading the passive source raw data according to the preset block and generating multiple block data includes: the GPU reading the passive source raw data in the disk according to the preset block, generating multiple block data, and reading them sequentially into the memory.

[0014] In one embodiment of the present invention, the number of channels in the block data is the same as the number of channels in the passive source original data.

[0015] In one embodiment of the present invention, the step of calculating the time-window related recovery pseudo-shot set of the multiple block data based on the multiple block data includes: the GPU calculating the time-window related recovery pseudo-shot set of the multiple block data based on the block data in memory.

[0016] Compared with existing technologies, the passive source seismic exploration volume wave and surface wave recovery method and apparatus based on GPU acceleration according to the present invention utilizes asynchronous reading and asynchronous transmission between CPU and GPU, CUDA streaming, CUFFT and other acceleration technologies, which make full use of computing power and effectively reduce computing time and disk I / O. Attached Figure Description

[0017] Figure 1 This is a flowchart illustrating a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method according to Embodiment 1 of the present invention.

[0018] Figure 2 This is a schematic diagram of the logic flow of a passive source seismic exploration volume wave and surface wave recovery method based on GPU acceleration in Embodiment 1 of the present invention;

[0019] Figure 3 This is a schematic diagram of asynchronous transmission of CUDA streams in Embodiment 1 of the present invention;

[0020] Figure 4 This is a schematic diagram of passive source data recorded at different locations in Embodiment 1 of the present invention;

[0021] Figure 5 This is a schematic diagram of the simulated gun set record in Embodiment 1 of the present invention;

[0022] Figure 6 This is a schematic diagram illustrating the speedup ratios for different channel numbers and sampling point numbers in Embodiment 1 of the present invention;

[0023] Figure 7 This is a schematic diagram of a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device according to Embodiment 2 of the present invention. Detailed Implementation

[0024] The specific embodiments of the present invention will now be described in detail with reference to the accompanying drawings, but it should be understood that the scope of protection of the present invention is not limited to the specific embodiments.

[0025] Unless otherwise expressly stated, throughout the specification and claims, the term "comprising" or its variations such as "including" or "comprises" shall be understood to include the stated elements or components without excluding other elements or other components.

[0026] To facilitate understanding, the main implementation concepts of the various embodiments of the present invention will be briefly described first.

[0027] As a crucial step in passive source seismic data processing, pseudo-shot gather reconstruction is characterized by high disk I / O (Input / Output) and computational complexity. Based on this, this invention designs a pseudo-shot gather reconstruction algorithm that involves block-based, time-window cross-correlation and superposition. This algorithm is implemented on the Compute Unified Device Architecture (CUDA) on a Graphic Processing Unit (GPU). Furthermore, by employing acceleration techniques such as asynchronous execution, asynchronous transfer between memory and GPU memory, and the GPU-accelerated library for Fast Fourier Transforms (CUFFT), the computational speed is significantly improved.

[0028] Example 1

[0029] Figure 1 This is a flowchart illustrating a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method according to Embodiment 1 of the present invention. Figure 2 This is a schematic diagram of the logic flow of a passive source seismic exploration volume wave and surface wave recovery method based on GPU acceleration in Embodiment 1 of the present invention; Figure 3 This is a schematic diagram of asynchronous transmission of CUDA streams in Embodiment 1 of the present invention; Figure 4 This is a schematic diagram of passive source data recorded at different locations in Embodiment 1 of the present invention; Figure 5 This is a schematic diagram of the simulated gun set record in Embodiment 1 of the present invention; Figure 6 This is a schematic diagram of the speedup ratio for different channel numbers and sampling point numbers in Embodiment 1 of the present invention.

[0030] like Figure 2 As shown, the Disk, RAM, and VRAM boxes represent data located on the disk, in memory, and in video memory, respectively. Figure 2 The system comprises three loops: a block loop, a shot loop, and a trace loop, from outermost to innermost. The block loop is the outermost loop, executing the fewest times. The total number of loop iterations depends on the size of the computational blocks; smaller blocks require more iterations. Loop termination is determined by checking if the total data length has been reached; if the total data length is exceeded, the loop ends. Each block loop initializes its internal loop parameters and adjusts the data reading position for each block, meaning each block loop reads different blocks of data from disk into memory. The shot loop is the second loop, starting from 1 and ending with the total number of seismic traces. Each shot loop reads the trace containing the shot point from memory into video memory, storing it in the video memory space of that trace, and initializes the trace loop parameters to 1. The trace loop is the innermost loop, executing the most times. It also starts from 1 and ends with the total number of seismic traces. The trace loop is the main loop for computation, performing time-division window cross-correlation to generate pseudo-shot sets within each loop. After all loops are completed, a total of n...2 The simulated seismic trace set is given by n, where n is the total number of original seismic traces.

[0031] like Figure 3 As shown, CUDA streams are key to achieving asynchronous transfer. A CUDA stream represents a queue of commands executed by the GPU. The GPU executes commands sequentially according to the order in which they are added to the queue. Different streams are independent of each other. Therefore, asynchronous transfer can be achieved using different streams. That is, while the GPU is performing computation tasks, it calls the copy engine to perform data transfer tasks, so that the two times overlap, thereby hiding the transfer time and reducing the final computation time. Figure 3 In this context, HtoD represents data transfer from the host to the GPU (i.e., from memory to video memory), DtoH represents data transfer from the GPU to the host, and Calculation represents the GPU performing a computational task. Figure 3 It uses four streams to transmit data while the GPU is computing data, saving transmission time.

[0032] like Figures 1 to 6 As shown, Embodiment 1 provides a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method and apparatus. The GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method is applied to the GPU of an electronic device. The electronic device also includes a disk, memory and CPU electrically connected to the GPU.

[0033] Specifically, the CPU is used to read data from the disk into the memory, and the GPU is used to read data from the memory into the video memory for calculation. The calculation result is in the video memory, but at the same time, the calculation result is sent to the memory for accumulation. In other words, the calculation process is completed in the video memory.

[0034] The GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method includes:

[0035] Step S100: Construct the preset blocks;

[0036] Specifically, the appropriate block size t is calculated based on the user-provided time window size, memory size, video memory size, and raw data information. block .

[0037] Step S200: Read the original passive source data according to the preset block division and generate multiple block data;

[0038] Specifically, the passive source raw data is divided into blocks. After the blocks are divided, the number of channels in each block remains the same as the original data, only the number of sampling points is reduced.

[0039] Step S300: Based on the multiple data blocks, calculate the time-window related recovery pseudo-shooting set of the multiple data blocks respectively.

[0040] Specifically, the first block of data is read from the passive source raw data on disk into memory, and the time-division window cross-correlation recovery pseudo-shot set of the first block of data is started. Reading the raw data in blocks allows the entire block of data to be kept in memory until the computation is complete. During GPU computation, the data pre-loaded into memory can be read, unlike without the need to repeatedly read the raw data from disk due to insufficient memory space when not divided into blocks. Block reading reduces the amount of disk reads from n... 2 The number of traces is reduced to n, where n is the number of original seismic data traces, thereby reducing the time spent reading data from the disk.

[0041] Specifically, the formula for extracting the pseudo-shot set from passive source seismic data is as follows:

[0042]

[0043] in, It is the observation point x A and x B The Green's function in the frequency domain, where ω is the angular frequency. This is the power spectrum of the noise source, where c and ρ are the velocity and density of the medium. and The random signal received by the detector For the detector to receive signals conjugate, <x>The weighted average of the represented space. For the calculation of the real part; Formula (1) shows that by performing cross-correlation calculation on the two points of the passive source, a pseudo-shot set record similar to active source excitation and reception can be obtained with one point as the source and the other point as the receiving point.

[0044] Performing simulated shot gather reconstruction calculations on actual passive source data is characterized by high disk I / O and computational complexity. For single-component, single-channel passive source seismic data with a 1ms sampling interval and a recording time of one day, the data size reaches 330MB. Two-dimensional passive source seismic lines typically contain dozens to hundreds of seismic data channels, and the actual seismic data acquired from a single line for one day can reach tens of gigabytes. Furthermore, actual acquisition often lasts from several days to tens of days, resulting in actual data processing volumes reaching the terabyte level.

[0045] This algorithm utilizes a GPU to implement the pseudo-gun set recovery process. While leveraging the powerful parallel computing capabilities of the GPU, it also employs various acceleration techniques to address performance bottlenecks in traditional computational processes, effectively reducing computation time and disk I / O. To address the high disk I / O complexity, block-based reading is used, effectively reducing disk read time. To address the computationally intensive nature of Fourier transforms (cross-correlation recovery of the pseudo-gun set requires frequent calls to forward and inverse Fourier transforms), CUFFT is used to fully utilize the GPU's parallel computing capabilities and improve computation speed. The algorithm also employs CUDA streaming technology to effectively hide the transfer time between memory and GPU memory, as well as the kernel function startup time.

[0046] Compared to programs that compute solely on the CPU, programs that utilize GPU computing not only leverage the GPU's powerful parallel computing capabilities to increase computation speed but also utilize the concurrency characteristics of CPU / GPU. This means that even after the CPU sends a kernel startup request to the GPU, it can continue processing, enabling asynchronous execution between the CPU and GPU. This paper uses asynchronous execution to allow the CPU to read data from the disk while the GPU performs computation, effectively hiding some of the disk read time. Furthermore, asynchronous transfer technology between memory and video memory can hide some data transfer time, further reducing the time spent on data transfer between memory and video memory.

[0047] A diagram illustrating the use of CUDA streams to implement asynchronous transfers, hiding the transfer time between memory and video memory, is shown below. Figure 3 As shown, streams 0 and 1 are mainly used for computation and outputting the results, while streams 2 and 3 are used for inputting subsequent data. The algorithm hides most of the data transfer time between memory and video memory within the computation time, thereby improving program execution speed.

[0048] The tests were conducted using two-dimensional geophone data collected in Tibet. The geophone line contained 240 geophones with a channel spacing of 10m and a sampling interval of 1ms, yielding three days of passive source data. Figure 4 The passive source data for tracks 60, 120, and 180 of the day were displayed; the actual data were restored using a simulated artillery set to obtain the following results: Figure 5 The simulated artillery set record is shown.

[0049] The test environment consisted of two Intel(R) Xeon(R) CPUs E5-2667 v4, 64GB of RAM, and two GeForce RTX 2070 SUPER GPUs. Speedup experiments were conducted using real-world data as input to test the program's computational performance under large datasets. The speedup experiments tested the program's performance at different numbers of channels and sampling points, comparing the speedup of a single-GPU program compared to a single-CPU program. Figure 6 As shown, the program achieves a speedup of over 600 on passive source data with different channel numbers and sampling point numbers.

[0050] In this embodiment, step S100 includes: constructing the preset block size based on the time window size, memory size, video memory size and original data information given by the user.

[0051] Specifically, firstly, based on the user-provided time window size, memory size, and raw data information, the maximum number of time windows to be stored in memory, i.e., the memory block size, is calculated. Then, based on the given memory size, the fixed memory size used in the calculation and the memory used for the output result are subtracted from the given memory size. The remaining memory is used to store the input data. Dividing the remaining memory by the number of raw data channels and the time window length yields the maximum number of time windows to be stored in memory, i.e., the memory block size. Next, based on the user-provided time window size and video memory size, the maximum number of time windows to be stored in video memory, i.e., the video memory block size, is calculated. The size is determined by subtracting the fixed amount of video memory used in the computation from the given video memory size. The remaining video memory is used to store the original data input to video memory, data from different stream computation processes, and the computation result. The maximum number of time windows that can be stored in video memory, i.e., the video memory block size, is obtained by dividing the remaining video memory size by the sum of the original data input to video memory, the data from different stream computation processes, and the computation result. Finally, the smaller of the memory block size and the video memory block size is selected as the final block size. The block size determines the number of block loops in the algorithm; more blocks mean more loops, which slightly reduces efficiency.

[0052] In this embodiment, step S200 includes: the GPU reads the passive source raw data from the disk according to the preset blocks, generates multiple blocks of data, and reads them sequentially into the memory.

[0053] Specifically, the CPU reads the passive source raw data from the disk according to the preset blocks, generates multiple blocks of data, and then reads the blocks of data into memory sequentially. That is, only one block of data is read into memory at a time, so that the next block of data is read into memory after the next block of data is calculated, overwriting the previous block of data, and then the next calculation is performed. The above process is repeated until all blocks of data are read into memory.

[0054] In this embodiment, the number of channels in the segmented data is the same as the number of channels in the original passive source data.

[0055] Specifically, the number of channels in the block data is the same as the number of channels in the original passive source data, only the number of sampling points is reduced, which is the original number of sampling points divided by the block size. The pseudo-gun set is recovered by cross-correlation. Based on the number of channels in the original data, the pseudo-gun set can be recovered at most equal to the square of the number of channels. The number of channels remains unchanged so that the number of channels in the recovered pseudo-gun set is consistent.

[0056] In this embodiment, step S400 includes:

[0057] The GPU calculates the time-window related recovery pseudo-shooting set of the multiple blocks of data based on the block data in the memory.

[0058] Specifically, the GPU performs calculations based on the current block data in the memory. After the calculation is completed (the settlement result is sent to the memory), the CPU reads the next block data into the memory, and the GPU performs calculations on the current block data again (the settlement result is sent to the memory for accumulation). The above process is repeated to complete the calculation for each block data (implemented by the above formula (1)). All settlement results are accumulated in the memory, and the final output result is the recovered pseudo-shot set (or the recovered volume wave surface wave response). That is, the time-window related recovered pseudo-shot set of the multiple block data is calculated respectively by the above pseudo-shot set calculation formula. GPU acceleration uses Asynchronous read and transfer between CPU and GPU, CUDA streams, CUFFT and other acceleration technologies significantly reduce I / O between memory and GPU memory and computation time. In the process of generating pseudo-shot sets through cross-correlation, a total of 4 CUDA streams are used, 2 of which are used for computation and 2 are used to pre-transfer the next set of input data. At the same time, all memory-to-GPU transfers are made asynchronous, so that the next set of input data is transferred while the current data is being computed. CUFFT is a fast Fourier transform library based on CUDA. CUFFT also supports performing Fourier transforms on multiple arrays at the same time, saving time. All Fourier transforms in the algorithm use CUFFT, and all time windows in one data block are Fourier transformed simultaneously, saving time.

[0059] Example 2

[0060] Figure 7 This is a schematic diagram of a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device according to Embodiment 2 of the present invention. Figure 7 As shown, Embodiment 2 provides a GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device, based on the GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method described above.

[0061] Specifically, the CPU is used to read data from the disk into the memory, and the GPU is used to read data from the memory into the video memory for calculation. The calculation result is in the video memory, but at the same time, the calculation result is sent to the memory for accumulation. In other words, the calculation process is completed in the video memory.

[0062] The GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device includes: a construction module 701, a generation module 702, and a calculation module 703. The construction module 701 is used to construct preset blocks; the generation module 702 is used to read the original passive source data according to the preset blocks and generate multiple block data; and the calculation module 703 is used to calculate the time-window correlation recovery pseudo-shot set of the multiple block data respectively.

[0063] Specifically, constructing the preset blocks involves calculating an appropriate block size t based on user-provided time window size, memory size, video memory size, and raw data information. block Generating multiple data blocks involves dividing the passive source raw data into blocks. After division, the number of channels in each block remains the same as the original data, only the number of sampling points is reduced. Reading these multiple data blocks and calculating the time-window correlation recovery pseudo-sets for each block involves reading the first block of data from the passive source raw data on disk into memory and starting the time-window cross-correlation recovery pseudo-set for that first block. Block reading of the raw data allows the entire block of data to be stored in memory until the computation is complete. During GPU computation, the data pre-loaded into memory can be read, unlike the case without block reading where insufficient memory space necessitates repeatedly reading the raw data from the disk. Block reading reduces the disk read volume from n... 2 The number of traces is reduced to n, where n is the number of original seismic data traces, thereby reducing the time spent reading data from the disk.

[0064] Specifically, the formula for extracting the pseudo-shot set from passive source seismic data is as follows:

[0065]

[0066] in, It is the observation point x A and x B The Green's function in the frequency domain, where ω is the angular frequency. This is the power spectrum of the noise source, where c and ρ are the velocity and density of the medium. and The random signal received by the detector For the detector to receive signals conjugate, <x>The weighted average of the represented space. For the calculation of the real part; Formula (1) shows that by performing cross-correlation calculation on the two points of the passive source, a pseudo-shot set record similar to active source excitation and reception can be obtained with one point as the source and the other point as the receiving point.

[0067] Performing simulated shot gather reconstruction calculations on actual passive source data is characterized by high disk I / O and computational complexity. For single-component, single-channel passive source seismic data with a 1ms sampling interval and a recording time of one day, the data size reaches 330MB. Two-dimensional passive source seismic lines typically contain dozens to hundreds of seismic data channels, and the actual seismic data acquired from a single line for one day can reach tens of gigabytes. Furthermore, actual acquisition often lasts from several days to tens of days, resulting in actual data processing volumes reaching the terabyte level.

[0068] This algorithm utilizes a GPU to implement the pseudo-gun set recovery process. While leveraging the powerful parallel computing capabilities of the GPU, it also employs various acceleration techniques to address performance bottlenecks in traditional computational processes, effectively reducing computation time and disk I / O. To address the high disk I / O complexity, block-based reading is used, effectively reducing disk read time. To address the computationally intensive nature of Fourier transforms (cross-correlation recovery of the pseudo-gun set requires frequent calls to forward and inverse Fourier transforms), CUFFT is used to fully utilize the GPU's parallel computing capabilities and improve computation speed. The algorithm also employs CUDA streaming technology to effectively hide the transfer time between memory and GPU memory, as well as the kernel function startup time.

[0069] Compared to programs that compute solely on the CPU, programs that utilize GPU computing not only leverage the GPU's powerful parallel computing capabilities to increase computation speed but also utilize the concurrency characteristics of CPU / GPU. This means that even after the CPU sends a kernel startup request to the GPU, it can continue processing, enabling asynchronous execution between the CPU and GPU. This paper uses asynchronous execution to allow the CPU to read data from the disk while the GPU performs computation, effectively hiding some of the disk read time. Furthermore, asynchronous transfer technology between memory and video memory can hide some data transfer time, further reducing the time spent on data transfer between memory and video memory.

[0070] The process of recovering the pseudo-shot set based on GPU-based block-based time-window cross-correlation is as follows: Figure 2 As shown, the process first calculates the appropriate block size t based on the user-provided time window size, memory size, video memory size, and raw data information. block The passive source raw data is divided into blocks, with the number of channels in each block remaining the same as the original data, only the number of sampling points is reduced. Then, the first block of data is read from the disk into memory, and the time-division window cross-correlation recovery pseudo-shot set of the first block is initiated.

[0071] The process utilizes cross-correlation-based pseudo-shot set recovery calculations. Frequency-domain multiplication is used to achieve time-domain cross-correlation to improve computational speed. Furthermore, to fully utilize the original data, time-window cross-correlation is applied and superimposed to improve the signal-to-noise ratio. The GPU-based block-time-window cross-correlation pseudo-shot set recovery process is as follows: Figure 2 As shown, firstly, from the original seismic data r1, r2…r from n passive sources… n Select the first data r1 and the remaining data r2, r3...r n Cross-correlation generates a pseudo-single-shot record r with the first trace location as the pseudo-source and the remaining trace locations as the receivers. 11 ,r 12 …r 1n Then, the second trace data r2 is selected from the seismic data and cross-correlated with the remaining traces to generate a pseudo-single-shot record r with the second trace location as the pseudo-source and the remaining trace locations as the receiver points. 21 ,r 22 …r 2n This process continues until all passive source seismic traces are traversed, generating a total of n shots, each with n traces, of the pseudo-shot set records received.

[0072] like Figure 2 The simulated shot gather reconstruction calculation shown below uses trace data r to represent the simulated seismic source location. S , a certain data r at the receiving point R The cross-correlation results with the time-division window are stored in memory. The calculation consists of three loops, from the outermost to the innermost: the block loop, the shot loop, and the trace loop. The trace loop contains the trace data r representing the location of the pseudo-source. S The data r, read from disk and stored in memory, remains unchanged and is used as a receiving point. R Each time, data is read from the disk and overwritten with the previous data to save memory. The loop control parameter is... Figure 2 In the parameter R, each cycle ranges from 1 to n, with an interval of 1, where n is the number of original data channels. The gun cycle control parameters are... Figure 2 In the context of S, the loop range is from 1 to n, with an interval of 1, where n is the original number of data traces. After initializing the trace loop parameters, the shot loop reads the trace data r containing the pseudo-source location from the disk. S The data is written to the pre-allocated memory space, and the cross-correlation calculation of the loop begins. The block loop is the outermost loop, and its control parameter is... Figure 2 In the context of t, block cycle control relies on whether the end time of the block is less than the maximum time t. max If the value is less than or equal to the specified value, continue the block loop; otherwise, terminate the loop. The loop interval is t. block During the block loop, target block data is read from disk into memory, the gun loop parameters are initialized, and the gun loop is started. During the loop, after each cross-correlation calculation result r is completed... SR Write to disk to reduce memory usage.

[0073] Reading raw data in blocks allows the entire block of data to remain in memory until the computation is complete. During GPU computation, the data can be read from the pre-loaded memory, unlike the method without blocks which requires repeatedly reading the raw data from the disk due to insufficient memory space. Block reading reduces the amount of data that needs to be read from the disk from n^2 to n, where n is the number of original seismic data channels, thereby reducing the time spent reading data from the disk.

[0074] A diagram illustrating the use of CUDA streams to implement asynchronous transfers, hiding the transfer time between memory and video memory, is shown below. Figure 3 As shown, streams 0 and 1 are mainly used for computation and outputting the results, while streams 2 and 3 are used for inputting subsequent data. The algorithm hides most of the data transfer time between memory and video memory within the computation time, thereby improving program execution speed.

[0075] The tests were conducted using two-dimensional geophone data collected in Tibet. The geophone line contained 240 geophones with a channel spacing of 10m and a sampling interval of 1ms, yielding three days of passive source data. Figure 4 The passive source data for tracks 60, 120, and 180 of the day were displayed; the actual data were restored using a simulated artillery set to obtain the following results: Figure 5 The simulated artillery set record is shown.

[0076] The test environment consisted of two Intel(R) Xeon(R) CPUs E5-2667 v4, 64GB of RAM, and two GeForce RTX 2070 SUPER GPUs. Speedup experiments were conducted using real-world data as input to test the program's computational performance under large datasets. The speedup experiments tested the program's performance at different numbers of channels and sampling points, comparing the speedup of a single-GPU program compared to a single-CPU program. Figure 6 As shown, the program achieves a speedup of over 600 on passive source data with different channel numbers and sampling point numbers.

[0077] In this embodiment, constructing the preset blocks includes: constructing the preset block size based on the user-given window size, memory size, video memory size, and original data information.

[0078] Specifically, firstly, based on the user-provided time window size, memory size, and raw data information, the maximum number of time windows to be stored in memory, i.e., the memory block size, is calculated. Then, based on the given memory size, the fixed memory size used in the calculation and the memory used for the output result are subtracted from the given memory size. The remaining memory is used to store the input data. Dividing the remaining memory by the number of raw data channels and the time window length yields the maximum number of time windows to be stored in memory, i.e., the memory block size. Next, based on the user-provided time window size and video memory size, the maximum number of time windows to be stored in video memory, i.e., the video memory block size, is calculated. The size is determined by subtracting the fixed amount of video memory used in the computation from the given video memory size. The remaining video memory is used to store the original data input to video memory, data from different stream computation processes, and the computation result. The maximum number of time windows that can be stored in video memory, i.e., the video memory block size, is obtained by dividing the remaining video memory size by the sum of the original data input to video memory, the data from different stream computation processes, and the computation result. Finally, the smaller of the memory block size and the video memory block size is selected as the final block size. The block size determines the number of block loops in the algorithm; more blocks mean more loops, which slightly reduces efficiency.

[0079] In this embodiment, reading the passive source raw data according to the preset blocks and generating multiple blocks of data includes: the GPU reading the passive source raw data in the disk according to the preset blocks, generating multiple blocks of data, and reading them sequentially into the memory.

[0080] Specifically, the CPU reads the passive source raw data from the disk according to the preset blocks, generates multiple blocks of data, and then reads the blocks of data into memory sequentially. That is, only one block of data is read into memory at a time, so that the next block of data is read into memory after the next block of data is calculated, overwriting the previous block of data, and then the next calculation is performed. The above process is repeated until all blocks of data are read into memory.

[0081] In this embodiment, the number of channels in the segmented data is the same as the number of channels in the original passive source data.

[0082] Specifically, the number of channels in the block data is the same as the number of channels in the original passive source data, only the number of sampling points is reduced, which is the original number of sampling points divided by the block size. The pseudo-gun set is recovered by cross-correlation. Based on the number of channels in the original data, the pseudo-gun set can be recovered at most equal to the square of the number of channels. The number of channels remains unchanged so that the number of channels in the recovered pseudo-gun set is consistent.

[0083] In this embodiment, the step of calculating the time-window related recovery pseudo-shot set of the multiple block data based on the multiple block data includes: the GPU calculating the time-window related recovery pseudo-shot set of the multiple block data based on the block data in memory.

[0084] Specifically, the GPU performs calculations based on the current block data in the memory. After the calculation is completed (the settlement result is sent to the memory), the CPU reads the next block data into the memory, and the GPU performs calculations on the current block data again (the settlement result is sent to the memory for accumulation). The above process is repeated to complete the calculation for each block data (implemented by the above formula (1)). All settlement results are accumulated in the memory, and the final output result is the recovered pseudo-shot set (or the recovered volume wave surface wave response). That is, the time-window related recovered pseudo-shot set of the multiple block data is calculated respectively by the above pseudo-shot set calculation formula. GPU acceleration uses Asynchronous read and transfer between CPU and GPU, CUDA streams, CUFFT and other acceleration technologies significantly reduce I / O between memory and GPU memory and computation time. In the process of generating pseudo-shot sets through cross-correlation, a total of 4 CUDA streams are used, 2 of which are used for computation and 2 are used to pre-transfer the next set of input data. At the same time, all memory-to-GPU transfers are made asynchronous, so that the next set of input data is transferred while the current data is being computed. CUFFT is a fast Fourier transform library based on CUDA. CUFFT also supports performing Fourier transforms on multiple arrays at the same time, saving time. All Fourier transforms in the algorithm use CUFFT, and all time windows in one data block are Fourier transformed simultaneously, saving time.

[0085] In summary, the GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method and apparatus of the present invention effectively improves computing power and effectively reduces computation time and disk I / O.

[0086] The foregoing description of specific exemplary embodiments of the invention is for illustrative and explanatory purposes. These descriptions are not intended to limit the invention to the precise forms disclosed, and it will be apparent that many changes and variations can be made in accordance with the foregoing teachings. The exemplary embodiments were chosen and described in order to explain the specific principles of the invention and its practical application, thereby enabling those skilled in the art to implement and utilize various different exemplary embodiments of the invention, as well as various different choices and variations. The scope of the invention is intended to be defined by the claims and their equivalents.< / x> < / x>

Claims

1. A GPU-accelerated method for recovering volume waves and surface waves in passive source seismic exploration, applied to a GPU in an electronic device, the electronic device further comprising a disk, memory, and CPU electrically connected to the GPU, characterized in that, The method includes: Construct the pre-defined blocks; The GPU reads the passive source raw data from the disk according to the preset blocks, generates multiple blocks of data, and reads them into the memory in sequence; The GPU calculates the time-window related recovery pseudo-shooting set of the multiple blocks of data based on the block data in the memory; The GPU performs calculations based on the current block data in the memory. After the calculation is completed, the CPU reads the next block data into the memory, and the GPU performs calculations on the current block data again. The above process is repeated to complete the calculation for each block data. All calculation results are accumulated in the memory, and the final output result is the recovered pseudo-gun set. In the process of generating pseudo-shot sets through cross-correlation, a total of 4 CUDA streams are used, of which 2 streams are used for computation and 2 streams are used to transmit the next set of input data in advance. At the same time, all memory-to-video memory transfers are changed to asynchronous, so that the next set of input data is transmitted while the current data is being computed. In this algorithm, all Fourier transforms use CUFFT, and Fourier transforms are performed simultaneously on all time windows in one data block after the data is divided. Among them, CUFFT is a fast Fourier transform library based on CUDA; The formula for extracting the pseudo-shot set from passive source seismic data is as follows: ; in, It is an observation point and The frequency domain Green's function, It is angular frequency. It is the power spectrum of the noise source. and It is the velocity and density of the medium. and The random signal received by the detector For the detector to receive signals conjugate, The weighted average of the represented space. Calculations are performed using the real part; The number of channels in the segmented data is the same as the number of channels in the original passive source data.

2. The GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method as described in claim 1, characterized in that, The construction of the preset blocks includes: The preset block size is constructed based on the user-provided window size, memory size, video memory size, and original data information.

3. A GPU-accelerated passive source seismic exploration volume wave and surface wave recovery device, based on the GPU-accelerated passive source seismic exploration volume wave and surface wave recovery method as described in any one of claims 1 to 2, characterized in that, The device includes: Build modules are used to construct predefined blocks; The generation module is used to read the original passive source data according to the preset blocks and generate multiple data blocks; and The calculation module is used to calculate the time-window related recovery pseudo-shooting set of the multiple data blocks respectively.