[GRASS-dev] GRASS and GPGPU

Dylan Beaudette dylan.beaudette at gmail.com
Sun Mar 2 12:55:17 EST 2008


On Sunday 02 March 2008 02:41:07 am Maciej Sieczka wrote:
> Dylan Beaudette pisze:
> > Some starters:
>
> Also look at Glynn's comments not so long time ago:
>
> http://www.nabble.com/forum/ViewPost.jtp?post=15573024&framed=y
>
> Maciek

Thanks for the reminder Maciek.

However, (although I am not a GPU programmer) it looks like the concept of 
stream programming might fit into the GRASS approach of using simple 
formulations over optimized ones-- and here is why:

many raster operations use constructs like the following:

for x in rows:
	for y in cols:
		get_cell_value(x,y,)
		do_something(x,y, value)
	end
end

Based on my reading of the GPGPU documents it appears that it is possible to 
give the (libSh/Brook) library the do_something(x, y, value) function (called 
a kernel in stream processing) and the GPU will limplicitly perform the loop 
in parallel. 

If the functionality used in the inner-most loop can be reduced to simple 
operations, it shouldn't be too hard to "drop-in" GPGPU extensions. 

That said, I am not at all experienced with programming the GPU-- however, 
after several years of using R the notion of being able to use vectorized 
functions sounds nice-- especially if the GPU can do those operations 10x 
faster than the CPU.

I think that we would need a simple proof of concept raster module to see how 
hard it would be. I have heard that Manifold GIS has something like this for 
raster operations.

Dylan


-- 
Dylan Beaudette
Soil Resource Laboratory
http://casoilresource.lawr.ucdavis.edu/
University of California at Davis
530.754.7341


More information about the grass-dev mailing list