SIMD Optimization of Linear Expressions for Programmable Graphics Hardware
Article first published online: 20 DEC 2004
DOI: 10.1111/j.1467-8659.2004.00803.x
Additional Information
How to Cite
Bajaj, C., Ihm, I., Min, J. and Oh, J. (2004), SIMD Optimization of Linear Expressions for Programmable Graphics Hardware. Computer Graphics Forum, 23: 697–714. doi: 10.1111/j.1467-8659.2004.00803.x
Publication History
- Issue published online: 20 DEC 2004
- Article first published online: 20 DEC 2004
- Submitted May 2003 Revised July 2003 Accepted August 2004
- Abstract
- Article
- References
- Cited By
Keywords:
- programmable GPU;
- vertex shader;
- pixel shader;
- numerical computing;
- linear expression;
- SIMD;
- shader code optimization;
- I.3.1 Computer Graphics: Graphics processors, Parallel processing, Programmable shader;
- G.1.3 Numerical Analysis—Numerical linear algebra, Sparse systems;
- G.1.6 Numerical Analysis—Optimization
Abstract
The increased programmability of graphics hardware allows efficient graphical processing unit (GPU) implementations of a wide range of general computations on commodity PCs. An important factor in such implementations is how to fully exploit the SIMD computing capacities offered by modern graphics processors. Linear expressions in the form of
, where A is a matrix, and
and
are vectors, constitute one of the most basic operations in many scientific computations. In this paper, we propose a SIMD code optimization technique that enables efficient shader codes to be generated for evaluating linear expressions. It is shown that performance can be improved considerably by efficiently packing arithmetic operations into four-wide SIMD instructions through reordering of the operations in linear expressions. We demonstrate that the presented technique can be used effectively for programming both vertex and pixel shaders for a variety of mathematical applications, including integrating differential equations and solving a sparse linear system of equations using iterative methods.

1467-8659/asset/olbannerleft.gif?v=1&s=61bcca4cba8931de9a6b426bf1ebd10ff64a17e2)
1467-8659/asset/olbannerright.gif?v=1&s=666519e84ce1b22f366e3d2872ec3a7157a70cab)
