next up previous [pdf]

Next: Results Up: Reverse Time Migration Previous: Reverse Time Migration

GPU implementation

Setting up this scheme optimally requires some thought. A random boundary of user input depth is imposed on this velocity section, which is then bound as a texture on the GPU. The source is then fully propagated and the final two 3D wavefields saved; now we have all the array inputs for our migration. This runs from $ t_{max}$ to $ t_0$ , and at each time step source and receiver wavefields are injected and propagated, at each imaging time step these fields are multiplied and the image stored and updated on the GPU. Damping boundaries are used for the receiver propagation, only one image object is used, and all correlations are stacked into this, then after propagation is completed the stacked image is sent back to the CPU. Under this scheme six 3D objects need to be stored - two wavefield slices for both the receiver and the source fields, the velocity model and the image. The fact that no device to host transfers occur during the time loop makes this kernel very efficient.

The extension to subsurface offsets adds data handling and numerical complexity. The aforementioned scheme produces a poststack image, since each image is stacked into one object on the GPU. When applying the imaging condition in Equation 3 the wavefields must be shifted and correlated mutliple times, for each time step, to produce the subsurface offset gathers. For practical execution we now need to transfer each imaging time step back to the host. Furthermore this multiplication is inefficient on the GPU, since the threads may need re-indexing after shifting, and a global memory operation is used. Future work is underway to see if these shifted correlations are better performed on the CPU. Other work at SEP on how compressive sensing can be used to reduce this new bottleneck is currently being performed (Clapp, 2011).


next up previous [pdf]

Next: Results Up: Reverse Time Migration Previous: Reverse Time Migration

2011-05-24