Menu

#87 GPU processing for large datasets using kriging.

open
nobody
3
2024-01-24
2024-01-08
PatHar
No

Hi there,
I have been gridding some large geophysical datasets thanks to your assistance with adding in the ASEG point extraction tool under https://sourceforge.net/p/saga-gis/feature-requests/86/. I am using kriging as my preferred method (ordinary, simple or universal).

I collect my own datasets and also use government data as well. The combined datasets can have hundreds of thousands of points and are irregular spacings at times. I currently run the processing on a computer set up for photogrammetry that has several GPU's available along with a Thread Ripper CPU. The current best time I am seeing for processing on the CPU with this is PC around 3 hours on a large dataset containing approximately 200,000 data points.

I was wondering if there is any chance the algorithms would run faster on a GPU instead of a CPU. I know they are not optimized at running on a GPU, but is there any plan for future developments to have the option of running larger datasets and more calculation intensive processes on graphics cards?

I know graphics cards don't necessarily mean faster processing and they "speed up" processing by running more parallel streams under the right circumstances. Not all algorithms will run faster in this way though, and that may be the case with my question above.

Thanks for any input and assistance.

Discussion

  • PatHar

    PatHar - 2024-01-20

    Just a follow up to this original post.

    A fair few people have been doing this already using OpenCL and CUDA. I have yet to find any code though.

    https://www.mdpi.com/2220-9964/7/5/193
    https://www.mdpi.com/2220-9964/5/6/96

    these are the some of the easily accessed papers on the topic. There are a large number of papers from 2010 to the present on the topic.

     
  • Justus Spitzmüller

    Greetings,
    I also assume that many of SAGA's previous applications would run significantly faster on a GPU. However, running an application on a GPU usually means completely re-implementing this application. The two papers you mentioned used CUDA and OpenGL respectively for this. This is not viable for us in this form.

    The favored solution would be to use the offloading functions of the multiprocessing library OpenMP, which we already use for multi threading on the CPU. OpenAAC also looks promising to extend OpenMP in the future (The two projects are very closely related).

    Unfortunately, we are currently unable to provide a roadmap for this development in the future. But thank you very much for the input, this has put the topic back on the agenda.

    with best regards
    Justus

     
    ❤️
    1

Log in to post a comment.