Fast Ray Tracing and Imaging Using GPUs


Project description
Motivation (background):
An important problem in geophysics and seismic exploration is to create models of the subsurface. These models are created using seismic imaging/inversion techniques and some of the most popular techniques are based on seismic ray tracing.

However, for ray tracing to be efficient for the inversion, we need to create an optimized numerical implementation. This is especially important for realistic 3D applications where large amounts of seismic data are processed. The goal of this thesis is to study efficient ray tracing methods for seismic inversion using GPUs.

Hypothesis (scientific problem):
Computations of seismic rays can be done very efficiently in a 3D Earth model by using graphics processing units (GPUs). This is because thousands of individual rays are processed in parallel. We are interested in tracing these rays from model positions in the subsurface to a grid of source and receivers that are positioned, for example, on the seafloor.

For each model position, we must interpolate values on the ray paths to the source-receiver grid. Integration of this interpolation process with the parallel GPU ray tracing is the main objective of this master project. The goal is then to combine this work with a previously published algorithm for doing seismic inversion on the GPU. This final step is an optional part of the project.

Test (work):
This project involves programming of numerical algorithms and the student should have a special interest in programming. The first task of the master project is to perform ray tracing on a GPU with an existing code. This ray data is then used for a second part of the project where the task is to come up with an interpolation method to grid the ray data for use in seismic inversion. The last part of the project consists of integrating the interpolation method with the GPU ray tracing code. Depending on the interest of the student, an extension of the work can be made from acoustic to anisotropic viscoelastic ray tracing. Another possible extension is to test performance of ray tracing on a GPU with that on a CPU.

Proposed course plan during the master's degree (60 ECTS):
Geov219, Geov276, Geov277, Geov355, Inf102, Inf236 (these are proposed courses only; courses will be selected based on the student's background and interest).

This project requires a strong interest in computer programming and a willingness to learn CUDA programming to do computations on a GPU.