[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