Due to its low cost and convenient construction method, gravity prospecting is favored

Widely used in large-scale geological anomaly exploration and large-scale ore prospecting

Census, and small-scale density 3D geological modeling work.

There are two commonly used inversion methods at present, 2.5D combined with 3D interface inversion.

[1-2] and 3D physical property inversion. By performing three-dimensional

Grid division, inversion of the physical properties of each grid unit, so as to obtain geological

Physical property distribution and morphological characteristics of abnormal body[3]

For the 3D inversion of targets with complex structures, due to the

play. Even so, 3D forward simulation and inversion of gravity field calculations

still faces a large amount of data processing, using the traditional linear

Inversion, often the calculation of millions of grid points will exceed the personal computer

The computer's memory processing range. Due to computer memory and CPU

The bottleneck of computing efficiency greatly limits the data processing and interpretation work.

quality of work. In order to solve this problem, in recent ten years, parallel computing

It has become a mainstream research direction. Chen et al. [4-5] adopted a method based on

The CUDA code of C language realizes the three-dimensional forward imaging of gravity;

Lin Wei et al[6] used GPU genetic algorithm to realize the three-dimensional ocean gravity

Inversion; Cuma et al. [7-8] realized the CPU-based OpenMP algorithm

Acceleration with GPU-based OpenACC algorithm acceleration, providing in-

method. From the hardware structure point of view, compared with only a few, several

CPUs with ten cores, GPUs with hundreds or even thousands of cores

Simple operations on large amounts of data, such as gravity inversion large matrix operations,

The author uses the traditional Fortran language on the PGI Fortran platform

language and CUDA language mixed, the reweighted regularization conjugate gradient

(Re-weighting Regularized Conjugate Gradient,

RRCG) 3D gravity field inversion algorithm is reorganized so that it can be used in

GPUs on personal desktop and notebook computers

Parallel computing, the use of regularization makes the inversion results stable and reliable, with

By searching with the sensitivity range (footprint), the storage expansion and

Inversion accelerated. In order to verify the correctness of the program, we use the same

The MATLAB traditional code of the algorithm was compared and tested. the party

to solve the problem of 3D gravity inversion with a large amount of data

1 Forward modeling and inversion

1.1 Forward Calculation Algorithm

Considering the speed of parallel computing, the author uses the

Reweighted regularized conjugate gradient (RRCG) algorithm, Tikhonov

The introduction of regularization can suppress the problems caused by data noise and multi-solution

The resulting inversion results are unstable and the physical meaning is not clear[9-10]

Different weighting factors can be between smooth solutions and solutions with sharp boundaries

Balance, reweighting (Re-weighting) can be in the iterative process

Related algorithm flow, for the selection of weighting factor and regularization factor

Among them: rn represents the residual error vector; n represents the number of iterations; l

vector; F represents the Frechet derivative matrix; in the linear inversion problem

where F=A; kn represents the iteration step size of each iteration; αn is the

Regularization parameters for step iterations.

In the traditional serial RRCG inversion, calculation and storage sensitive

The degree matrix A is read repeatedly, and each iterative step is calculated sequentially.

Stop until the iteration meets the number condition or error condition. A moment

The matrix is a large matrix related to the multiplication of data and model scales.

Time-consuming and difficult to store and read in large-scale 3D inversions, becoming a limitation

important factor in conventional RRCG linear inversion.

GPU (Graphics Processing Unit), that is, graphics processing unit

Later, due to the emergence of CUDA, the GPU has become an unnecessary

. CUDA (Compute Unified Device Architecture)

It is a general-purpose GPU programming language framework provided by NVIDIA, currently

It can support the use of multiple language platforms such as C, Fortran, and Matlab.

Use the CUDA statement to call the GPU computing unit for parallel computing.

CUDA is the most suitable for the linear 3D inversion of the potential field.

One of the means of parallel computing. First, using the RRCG inversion method,

Its process is an iterative algorithm, and each calculation step can be simplified as

Perform simple operations on independent matrices and vectors for parallel computing

provided the conditions; secondly, compared with the traditional CPU serial or parallel,

The number of computing cores of the GPU has an absolute leading advantage, compared with the target

The 16 or 32 computing cores of former high-end personal computers,

Personal graphics cards can have 400-600, or even more than 2000

GPU computing cores; finally, compared to another recently released

## Social Plugin