[SoC] Interested in GPU-based processing

Philippe Vachon philippe at cowpig.ca
Wed Mar 31 23:32:52 EDT 2010


Hi Seth,

I think this would be an awesome project -- as you've very correctly pointed out, operations that are common in the raster world (anything involving convolution, really) are a good target for optimization using GPGPU.

I'd definitely be willing to mentor a project (if it's not too late to sign up as a mentor) involving this if it was targeting GDAL's warping/resampling capabilities. However, my GRASS knowledge is quite limited, so I'd be less comfortable mentoring such a project for GRASS, but would be happy to provide assistance in the details of the implementation side of things. As a rule, I prefer OpenCL over C for CUDA, but I'm as comfortable with either.

Cheers,
Phil


On 2010-03-31, at 9:55 PM, Frank Warmerdam wrote:

> 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
> 
> _______________________________________________
> SoC mailing list
> SoC at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/soc



More information about the SoC mailing list