# Seismic imaging with Julia and CUDA.jl

**URL:** <https://discourse.julialang.org/t/seismic-imaging-with-julia-and-cuda-jl/139609>\
**Category:** GPU\
**Tags:** cudajl, geophysics\
**Created:** [September 22, 2026, 4:05pm UTC](https://discourse.julialang.org/t/seismic-imaging-with-julia-and-cuda-jl/139609 "2026-09-22T16:05:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![aalquwayfili](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aalquwayfili/32/224266_2.png) [@aalquwayfili](https://discourse.julialang.org/u/aalquwayfili)\
**Post date:** [September 22, 2026, 4:05pm UTC](https://discourse.julialang.org/t/seismic-imaging-with-julia-and-cuda-jl/139609/1 "2026-09-22T16:05:45Z")

</div>

Hey everyone, I’ve been experimenting with seismic imaging in Julia and CUDA.jl. I built a 2D model that sends waves through rock layers, records the echoes, and reconstructs the layer boundary using reverse-time migration.

I also compared several GPU kernels. On my Quadro RTX 8000, the straightforward coalesced kernel beat both shared-memory tiling and a register window.

 ![A sound wave reaching the boundary between two rock layers and partly reflecting back.](https://global.discourse-cdn.com/julialang/original/3X/a/b/ab13394e753927a4d3d22dafd473293111f7e87d.webp)

[Article](https://aalquwayfili.com/writing/seismic-imaging-from-zero/)

[Code and benchmarks](https://github.com/aalquwayfili/seismic-gpu)
