I'm interested in the emerging intersection between GIS systems and GPUs, which can provide orders of magnitude improvement to certain classes of GIS problems. Do you know of any good resources discussing this area?
5 Answers
Good question. While http://gpgpu.org is a good resource, it is quite general (the first G stands for General, after all). Searching there for GIS I get only one hit from 2004, which links to a paper that is 404.
Manifold is the only vendor I'm aware of leveraging the GPU for GIS.
Hoopoe sure looks interesting, which also administers CUDA.NET.
Part of the ESRI Applications Prototype Lab's DevSummit presentation was on GPU for GIS.
The video link appears to be borked, but a lengthy blog post contains a good summary and introduction to GPU computing wrt GIS.
Also, Azavea (formerly Avencia) has won some NSF grants to investigate this area further, and they have a series of blog posts that appear to be regularly updated (last post July 7th)
I've been using Manifold GIS for years, and though at times a target of derision for a variety of reasons, the software is quite impressive. The current version (8.0.18 at time of writing) uses CUDA to accelerate surface operations 100x or so. The long awaited version 9 promises to both improve on that level of acceleration and to broaden the scope of its impact. There is an interesting webcast viewable on the Nvidia site regarding what Manifold has done and where they are going (here). The are very much at the forefront of this technology whether applied to GIS or not. More bonus points: native 64 bit capability and versions ranging from $250-ish to under $1000
Even if all you do is raster processing it pays for itself in a few hours.
There is some experimental work for porting parts of GDAL to use GPU, via OpenCL. See, for progress, this recent email.
The source-code might be instructive.
A starter keyword for you is GPGPU
. You can snag a book on GLSL
or HLSL
which are the respective languages/platforms for OpenGL and DirectX. You could use proprietary computing platforms like Nvidia CUDA
or AMD CTM
. But if you want a hint of sanity you may want to check out the somewhat new OpenCL standards.