A multigrid solver for boundary value problems using programmable graphics hardware

We present a case study in the application of graphics hardware to general-purpose numeric computing. Specifically, we describe a system, built on programmable graphics hardware, able to solve a variety of partial differential equations with complex boundary conditions. Many areas of graphics, simulation, and computational science require efficient techniques for solving such equations. Our system implements the multigrid method, a fast and popular approach to solving large boundary value problems. We demonstrate the viability of this technique by using it to accelerate three applications: simulation of heat transfer, modeling of fluid mechanics, and tone mapping of high dynamic range images. We analyze the performance of our solver and discuss several issues, including techniques for improving the computational efficiency of iterative grid-based computations for the GPU.

[1]  William L. Briggs,et al.  A multigrid tutorial , 1987 .

[2]  Pat Hanrahan,et al.  Ray tracing on a connection machine , 1988, ICS '88.

[3]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[4]  William H. Press,et al.  The Art of Scientific Computing Second Edition , 1998 .

[5]  Jos Stam,et al.  Stable fluids , 1999, SIGGRAPH.

[6]  Dinesh Manocha,et al.  Fast computation of generalized Voronoi diagrams using graphics hardware , 1999, SIGGRAPH.

[7]  William L. Briggs,et al.  A multigrid tutorial, Second Edition , 2000 .

[8]  Dinesh Manocha,et al.  Fast computation of generalized Voronoi diagrams using graphics hardware , 1999, SIGGRAPH.

[9]  Marc Olano,et al.  Interactive multi-pass programmable shading , 2000, SIGGRAPH.

[10]  S. McCormick,et al.  A multigrid tutorial (2nd ed.) , 2000 .

[11]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.

[12]  Martin Rumpf,et al.  Nonlinear Diffusion in Graphics Hardware , 2001, VisSym.

[13]  David K. McAllister,et al.  Fast Matrix Multiplies Using Graphics Hardware , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[14]  Anselmo Lastra,et al.  Physically-based visual simulation on graphics hardware , 2002, HWWS '02.

[15]  John C. Hart,et al.  The ray engine , 2002, HWWS '02.

[16]  Using modern graphics architectures for general-purpose computing: a framework and analysis , 2002, MICRO 35.

[17]  Dani Lischinski,et al.  Gradient Domain High Dynamic Range Compression , 2023 .

[18]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[19]  Eitan Grinspun,et al.  Sparse matrix solvers on the GPU: conjugate gradients and multigrid , 2003, ACM Trans. Graph..

[20]  H. Haj-Hariri,et al.  Modelling thrust generation of a two-dimensional heaving airfoil in a viscous flow , 2003, Journal of Fluid Mechanics.

[21]  Jens H. Krüger,et al.  GPGPU: general purpose computation on graphics hardware , 2004, SIGGRAPH '04.

[22]  Rüdiger Westermann,et al.  Linear algebra operators for GPU implementation of numerical algorithms , 2003, SIGGRAPH Courses.