Wednesday, September 20, 2006

GPU processing for GIS is coming!

There is a very interesting article over at The Register that has some "insider" info on a new product from AMD/ATI. ATI has created a server product that will make the raw processing power of the GPU available to general applications. This has incredible implications for the GIS software field.

The advent of programmable vertex and shader processing has opened up a reverse-pandora's box in my opinion. A whole lot of good things are coming out of the ability to access the highly optimized floating point processing power available on modern GPUs. However, like the external floating point processors from the '80s there are some significant issues with using this technology.

Stream processing isn't something that is applicable to general software development, but scientific computing can use it to great advantage for problems that fit within it's scope. It is most useful for taking a large block of homogeneous data and applying fixed transforms (guided by variable parameters) on it and storing the results in a similar block of data, that resulting data can then be further processed.

For anyone in the field, the work done by McCool, et. all, at the Univ. of Waterloo on the Sh metaprogramming language has given a glimpse of what was to come. When I first read the book describing Sh, I wanted to use it immediately but found it a bit limiting due to it's static nature and the inability to treat shading programs as dynamic assets as the code you write is basically hardwired into your executable. There is, however, an intermediate format that could possibly be used as a game asset, but it is just a little too funky for use as a general purpose shader generator. This programming model fits scientific (GIS) applications much better. I'm looking forward to seeing what is coming out of AMD/ATI. We are just scratching the surface right now, I think that there needs to be more evolution in the field.

I am planning on making EarthBrowser plugins that make use of this kind of functionality in the future. All the pieces are in place right now for version 3.0, but each plugin has to be written for a specific problem domain.

3 comments:

Anonymous said...

At the time of writing Manifold System GIS V8.x utilises multi-core CPUs and Nvidia CUDA enabled GPGPUs to perform some of those GIS operations that are capable of being parallelised. Expect more parallelised operations in V9, due 2009, probably sometime in the first half of 2009.

With the right choice of hardware, it is presently possible to assemble a desktop system having over 1000 GPGPU cores, theoretically capable of providing around 4 teraflops of single-precision compute performance for Manifold System or other software to utilise.

Manifold System is the only 64-bit general purpose GIS running on 64-bit versions of Windows (XP, Vista, Server 2008) and the only one able take advantage of Nvidia's CUDA technology. Future versions are expected to also be able to take advantage of Open CL and AMD/ATI Stream GPGPU technology.

Manifold System GIS is manufactured by Manifold.net. Website URL: www.manifold.net

hoa pikey said...


Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.
hotmail login | red ball

Thomas pedro said...

The septic framework will be composed by a neighborhood structural specialist and most likely endorsed by the district, however before the designer recognizes what sort of septic you require he'll need to take a Perc Test. check cashing san-diego