Fast Sentinel-1 SAR processing on GPUs

There is an alternative for some processing chains like coherence estimation and calibration implemented utilizing GPUs - https://bitbucket.org/cgi-ee-space/alus/src/main/
In ‘Downloads’ section pre-compiled binaries are available for download.
More processors will be added during specific projects.
For Sentinel-1 majority of the logic and algorithm’s has been ported from SNAP. Due to silicon differences and some various tile handling mechanisms, there could be some differences with SNAP results, but overall it should be one to one match for analyzing.

Feedback is strongly encouraged.

5 Likes

Thank you for sharing, this is surely interesting for many users and I remember that it has been requested several times.
I have moved it into the #showroom category.

Thank you for the contribution Sven!

It has been moved to GitHub - cgi-estonia-space/ALUs: GPU accelerated earth observation data processors

Is Julia-based GPU programing with CUDA.jl mature enough or is standard CUDA still the way to go?

We have not researched it all. I think one can still do the same things, it uses LLVM IR as a destination layer, which will be eventually assembled into native SASS. I think one can even intermix/link C/C++ and Julia based code. If one is familiar to Julia, then I think it can boost the development curve, but the same problems/challenges exist, the underlying silicon does not change. Everything would be directed via driver API nevertheless.
Only possible drawback that I can think of is profiling the code with NVIDIA Visual Profiler or Nsight Systems, the demangling of names in the code might be puzzling.

Julia claims to be able to compile “natively” on the GPU as well, does that mean that the driver API is bypassed? I’m confused :sweat_smile:

Driver API - that is something like a POSIX API for OS - this is a gateway to transfer memory, synchronize, trigger kernels etc. to/from/on GPU device, this is code compiled for CPU.
Now the code that actually utilizes GPU to run calculations (kernel code more or less), that is native to the GPU architecture.