linear algebra operators for gpu implementation of numerical algorithms

19
Linear Algebra Operators Linear Algebra Operators for GPU Implementation for GPU Implementation of Numerical Algorithms of Numerical Algorithms J. Krüger J. Krüger R. Westermann R. Westermann computer graphics & computer graphics & visualization visualization Technical University Munich Technical University Munich

Upload: jeremy-castro

Post on 03-Jan-2016

57 views

Category:

Documents


2 download

DESCRIPTION

computer graphics & visualization. Linear Algebra Operators for GPU Implementation of Numerical Algorithms. J. Krüger R. Westermann. Technical University Munich. The Year 2003. A milestone in GPU programming Programmable function pipelines Shader operations Precision APIs. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

Linear Algebra OperatorsLinear Algebra Operators for GPU Implementation for GPU Implementation

of Numerical Algorithms of Numerical Algorithms

Linear Algebra OperatorsLinear Algebra Operators for GPU Implementation for GPU Implementation

of Numerical Algorithms of Numerical Algorithms

J. KrügerJ. KrügerR. WestermannR. Westermann

computer graphics & computer graphics & visualizationvisualization

Technical University MunichTechnical University Munich

Page 2: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

The Year 2003The Year 2003

A milestone in GPU programming– Programmable function pipelines

• Shader operations• Precision• APIs

Page 3: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

The Year 2003The Year 2003

A milestone in GPU programming– Manufacturers go numerics

– An affair with consequencesThompson et al. [2002] Bolz et al. [2003] Hillesland et al. [2003]Goodnight et al. [2003] Moreland [2003] Harris et al. [2003] Kim and Lin [2003] Li et al. [2003] …

Page 4: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

The Year 2003The Year 2003

The end of an odyssey– Boldly sailors through troubled waters

– Customized solutions build on fixed function pipelines

Bohonen [1998] Heidrich et al. [1999]Hopf and Ertl [1999,2000] Jobard et al. [2000]Hart [2001] Strzodka and Rumpf [2001]Weiskopf et al.[2001] nVidia [2002]…

Page 5: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

The Year 2003The Year 2003

Our approach

GPU as workhorse for numerical computations

Computergraphics

applications

Visual simulationVisual simulationVisual computingVisual computing

Education and TrainingEducation and Training

Basis linearalgebra operators

General linearalgebra package

Programmable GPUsHighbandwidth

Parallelcomputing

Page 6: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Banded MatricesRandom Sparse Matrices

Our ContributionOur Contribution

Framework for sparse/dense matrix-vector operations on GPUs

Dense Matrices

Page 7: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Our Contribution (cont.)Our Contribution (cont.)

Implicit schemes for solving sets of algebraic equations

Page 8: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Navier-Stokes Equations on GPUs

Our Contribution (cont.)Our Contribution (cont.)

0)(Re

1Re

1

2

2

Vdiv

pfvVvt

v

pfuVut

u

y

x

Page 9: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Visual Simulation of fluid phenomena – Virtual Reality, Games– Teaching, Education

Our Contribution (cont.)Our Contribution (cont.)

Page 10: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Linear Algebra Operators on GPUsLinear Algebra Operators on GPUs

Vector/Matrix representation– 2D textures best we can do

• Per-fragment vs. per-vertex operations• High texture memory bandwidth• Read-write access, dependent fetches

Page 11: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Random sparse matrix representation– Textures do not work

• Splitting yields highly fragmented textures• Difficult to find optimal partitions

– Idea: encode non-zero entries in vertex arrays

N

N

Matrix

Linear Algebra Operators on GPUsLinear Algebra Operators on GPUs

Pos Tex1-4PosTex0

Vertex Array 1

Pos Tex1-4Pos Tex1-4Tex0

Vertex Array 2

ResultVectorMatrix ResultVector

=

Page 12: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Linear Algebra Operators on GPUsLinear Algebra Operators on GPUs

Matrix/Vector operations– Reduced to 2D texture operations– Coded in vertex/fragment shaders

– Reduce operation for scalar products

Reduce m x m regionin fragment shader

Page 13: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Numerical Simulationon GPUsNumerical Simulationon GPUs

Use building blocks for more complex algorithms

– Communication via textures– Example: Conjugate Gradient Method

[…] clMatVec(CL_NOP,A,p,NULL,q); // q = Ap a=r/clVecReduce(CL_ADD,p,q); // a = r/dot(p,q) clVecOp(CL_ADD,1,a,x,p,s); // s = x+ap […]

Page 14: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Numerical Simulationon GPUsNumerical Simulationon GPUs

Example: 2D wave equation– Finite difference discretization– Implicit Crank-Nicholson scheme

1,,

,1,1,,1,1

2

4

tji

tji

tji

tji

tji

tji

tji

ti

xx

xxxxxc

2

2

2

2 h

ct

Page 15: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Numerical Simulationon GPUsNumerical Simulationon GPUs

Example: 2D Incompressible NSEs– Staggered grids– Obstacles

– Diffusion explicit– Advection Semi-Lagrange [Stam 1999]– Implicit CG solver for Poisson Equation

Page 16: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

DEMOSDEMOS

Run onRun on• Intel Pentium IV 2.4GHz• ATI Radeon 9800 Pro.

• Microsoft Windows XP• DirectX 9• Pixel/Vertex Shader 2.0

Page 17: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

ConclusionConclusion

Real-time visual simulation on GPUs– Vector/Matrix representation– Basis linear algebra operators– Numerical techniques

Current limitations– Precision– Memory size and updates– GPUCPU data transfer

Page 18: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

Future WorkFuture Work

Scientific computing library– BLAS/LAPACK functionality on GPUs– FFT, wavelets, multigrid etc.– Large data, i.e. 3D– Rendering functionality, i.e. volumes – Multi-GPU parallelization

Page 19: Linear Algebra Operators  for GPU Implementation   of Numerical Algorithms

computer graphics & computer graphics & visualizationvisualization

The EndThe End

Thank you!

Questions?