linear algebra operators for gpu implementation of numerical algorithms

Post on 03-Jan-2016

57 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

computer graphics & computer graphics & visualizationvisualization

The Year 2003The Year 2003

A milestone in GPU programming– Programmable function pipelines

• Shader operations• Precision• APIs

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] …

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]…

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

computer graphics & computer graphics & visualizationvisualization

Banded MatricesRandom Sparse Matrices

Our ContributionOur Contribution

Framework for sparse/dense matrix-vector operations on GPUs

Dense Matrices

computer graphics & computer graphics & visualizationvisualization

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

Implicit schemes for solving sets of algebraic equations

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

computer graphics & computer graphics & visualizationvisualization

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

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

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

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

=

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

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 […]

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

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

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

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

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

computer graphics & computer graphics & visualizationvisualization

The EndThe End

Thank you!

Questions?

top related