[SoC] Interested in GPU-based processing

Seth Price seth at pricepages.org
Wed Mar 31 18:45:40 EDT 2010


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.

2) Who would be willing to mentor this project?

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/)

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.

Thanks,
Seth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/soc/attachments/20100331/0b4bc887/attachment.html


More information about the SoC mailing list