[SoC] Interested in GPU-based processing

Frank Warmerdam warmerdam at pobox.com
Wed Mar 31 21:55:07 EDT 2010


Seth Price wrote:
> Hey all, I'm interested in writing GPU-based code to improve the speed 
> of GRASS and GDAL as a GSoC project. It's such a basic operation that is 
> used often, I think it'll be very useful for a broad audience. (I know 
> it will in my own work.) I have a few questions for the community:
> 
> 1) Would both GRASS and GDAL be interested in this project? It's my 
> intent to write the code for both projects, but I'd like to know if 
> there's a lack of interest.

Seth,

There has certainly been interest in such an effort in the GDAL project
in the past.

> 2) Who would be willing to mentor this project?

I don't think I would be the right person to mentor such an
activity, but I have poked a GDAL developer that I know is
interested in this area.

> 3) Is the community more interested in CUDA or OpenCL? Here is what I 
> currently have written up in my application:
> 
> CUDA is a graphics programming language (similar to C) which was 
> introduced by the graphics company nVidia. It is used to write programs 
> which can run on nVidia GPUs and execute hundreds of threads 
> simultaneously. There is an installed base of over 100 million CUDA 
> capable GPUs, and a new one can be purchased for less than $100. For 
> example, in image resampling, each pixel must be recalculated as a 
> function of the surrounding pixels, and this must be done for millions 
> (or billions) of pixels. If each thread calculates a pixel, CUDA is an 
> ideal match for image resampling, and speedups in the range of 50 to 100 
> times can be expected in real-world applications. For more information, 
> see nVidia's site (http://www.nvidia.com/object/cuda_what_is.html).
> 
> OpenCL is a GPU programming language similar to CUDA, but more of an 
> industry standard and less mature. Advantages of OpenCL over CUDA are 
> that it should run on more devices and its industry support. 
> Disadvantages are its immaturity and less support for hardware features. 
> For example, the last CUDA release was version 3.0, 12 days ago; the 
> last OpenCL release was version 1.0, 15 months ago. The functions and 
> languages of CUDA and OpenCL are similar, so it should be trivial to 
> port between the languages in the future, if required. If the GRASS 
> and/or GDAL communities prefer, I would be willing to use OpenCL in 
> place of CUDA. (http://www.khronos.org/opencl/)

I have no strong opinion on which to use, though I'd tend to lean
towards the cross-GPU standards based approach.

> 4) What other GRASS modules are most in need of a speed boost? My 
> current plan is only to improve resampling and reprojecting operations 
> over the summer, but I'm curious what else I should look at.

Image warping is an obvious target.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent



More information about the SoC mailing list