[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