GP-GPU Research
In 2004 I decided that it was time to look at GPUs and see what all
the fuss was about. More other I wanted to see if the pain of writing
low level code was worth
it. Fortunately, nVidia's Cg libraries takes alot of that pain
away. But there are still many other issues to look at. For instance,
could an applications scientist such as my friends in Chemistry who
study Reaction-Diffusion Models use the GPU for general processing
without a huge learning curve? And at the end of the day would the
speed up be worth the cost? Especailly when it would be implemented as
a practical general framework and not as some sexy one off demo. As
such, we looked what it would take to implement explicit and implicit
solvers for the PDEs found in reaction-diffusion models and compared
the results to similar CPU implementations.
Here are some times and their realitive speed ups using an explicit
forward Euler solution and a semi-implicit Crank-Nicholson
solution applied to Turing's Reaction-Difusion model:
Times, in seconds, for the four difference PDE solutions
along with the relative speedup for a 512 x 512 grid using a total
integration step time of 25000s with an explicit time step of 0.5s
with 50000 iterations and an implicit time step of 12.5 and 2000
iterations. The CPU solution utilized a Red-Black Gauss-Seidel
relaxation whereas the GPU solution utilized a Jacobi relaxation. |
More details of this work can be found in:
Allen R. Sanderson, Miriah D. Meyer, Robert M. Kirby, and Chris R. Johnson.
"A Framework for Exploring Numerical Solutions of
Advection-Reaction-Diffusion Equations Using a GPU-Based Approach," Accepted for publication in Computing and Visualization in Science 2007. [PDF]
We even provide some software that you can use. It has been ported
to Linux, OS X and even Windozes. It requires the following OpenGL
libraries: Glew, Glui,
and Glut
for the CPU and GPU versions and
also nVidia's Cg libraries for the GPU version. You
will need to supply some code
from Numerical
Recipies that can not be distributed due to copyright
restrictions.
CPU Demo Source Code can be found here: rd_cpu_demo.tar.gz
GPU Demo Source Code can be found here: rd_gpu_demo.tar.gz
Other GP-GPU Work and Information
The best source can be found at GPGPU.ORG.
|