57
Simulation of Physical Phenomena on GPUs with Realtime Visualization 2013-03-10 University of Granada Spain André R. Brodtkorb, Ph.D., Research Scientist, SINTEF ICT, Department of Applied Mathematics, Norway Email: [email protected]

Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Simulation of Physical Phenomena on

GPUs with Realtime Visualization

2013-03-10

University of Granada

Spain

André R. Brodtkorb, Ph.D.,

Research Scientist, SINTEF ICT,

Department of Applied Mathematics, Norway

Email: [email protected]

Page 2: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 2

• Introduction GPU Computing

• Efficient Simulation of the Shallow Water Equations on GPUs

• Summary

Brief Outline

Page 3: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 3

Development of the Microprocessor

1942: Digital Electric Computer (Atanasoff and Berry)

1971: Microprocessor (Hoff, Faggin, Mazor)

1947: Transistor (Shockley, Bardeen, and Brattain)

1956

1958: Integrated Circuit (Kilby)

2000

1971- More transistors (Moore, 1965)

Page 4: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 4

Development of the Microprocessor (Moore's law)

1971: 4004, 2300 trans, 740 KHz

1982: 80286, 134 thousand trans, 8 MHz

1993: Pentium P5, 1.18 mill. trans, 66 MHz

2000: Pentium 4, 42 mill. trans, 1.5 GHz

2010: Nehalem 2.3 bill. trans, 2.66 GHz

Page 5: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 5

The end of frequency scaling (2004)

1999-2011:

25% increase in

parallelism

1971-2004:

29% increase in

frequency

2004-2011:

Frequency

constant

A serial program uses <2%

of available resources!

Parallelism technologies:

• Multi-core (8x)

• Hyper threading (2x)

• AVX/SSE/MMX/etc (8x)

The power density of microprocessors

is proportional to the clock frequency cubed:

[1] Asanovik et al., A View From Berkeley, 2006

Page 6: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 6

Overcoming the Power Wall

85%

100%

100%

100%

170%

100%

Dual-core

Single-corePerformance

Power

Frequency

• By lowering the frequency, the power consumption drops

dramatically

• By using multiple cores, we can get higher performance with the

same power budget!

Page 7: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 7

Massive Parallelism: The Graphics Processing Unit

Performance Memory Bandwidth

CPU GPU

Cores 4 16

Float ops / clock 64 1024

Frequency (MHz) 3400 1544

GigaFLOPS 217 1580

Power consumption ~130 W ~250 W

Memory (GiB) 32+ 3

Page 8: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 8

• GPUs were first programmed using OpenGL and other graphics languages

• Mathematics were written as operations on graphical primitives

• Extremely cumbersome and error prone

Early Programming of GPUs

[1] Fast matrix multiplies using graphics hardware, Larsen and McAllister, 2001

Input B

Input A

Output

Geometry

Element-wise matrix multiplication Matrix multiplication

Page 9: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 9

Examples of Early GPU Research at SINTEF

Preparation for FEM (~5x)

Euler Equations (~25x) Marine aqoustics (~20x)

Self-intersection (~10x)

Registration of medical

data (~20x)

Fluid dynamics and FSI (Navier-Stokes)

Inpainting (~400x matlab code)

Water injection in a fluvial reservoir (20x) Matlab Interface

Linear algebra

SW Equations (~25x)

Page 10: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 10

Todays GPU Programming Languages

2010 2000 2005

DirectCompute

AMD CTM / CAL

DirectX

BrookGPU

OpenCL

NVIDIA CUDA

Graphics APIs "Academic" Abstractions C- and pragma-based languages

AMD Brook+

PGI Accelerator

OpenACC

C++ AMP

2015

Page 11: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 11

Examples of GPU Use Today

0%

2%

4%

6%

8%

10%

12%

14%

aug.2007 jul.2008 jul.2009 jul.2010 jul.2011 jul.2012

GPU Supercomputers on the Top 500 List

• Thousands of academic papers

• Big investment by large software

companies

• Growing use in supercomputers

Page 12: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 12

• For efficient use of CPUs you need to know a lot about the hardware restraints:

• Threading, hyperthreading, etc.

• NUMA memory, memory alignment, etc.

• SSE/AVX instructions,

• Cache size, cache prefetching, etc.

• Instruction latencies,

• …

• For GPUs, it is exactly the same, but it is a "simpler" architecture:

• Less "magic" hardware to help you means its easier to reach peak performance

• Less "magic" hardware means you need to consider the hardware for all

programs

Programming GPUs

Page 13: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 13

• The same program is launched for all threads "in parallel"

• The thread identifiers are used to calculate its global position

• The thread position is used to load and store data, and execute code

• The parallel execution means that synchronization can be very expensive

GPU Execution Model

Grid (3x2 blocks)

Block (8x8 threads)

Thread in position (21, 11)

threadIdx.x = 5

threadIdx.y = 3

blockIdx.x = 2

blockIdx.y = 1

Page 14: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 14

CPU scalar op CPU AVX op GPU Warp op

GPU Execution Model

CPU scalar op: 1 thread, 1 operand on 1 data element

CPU SSE/AVX op: 1 thread, 1 operand on 2-8 data elements

GPU Warp op: 1 warp = 32 threads, 32 operands on 32 data elements

• Exposed as individual threads

• Actually runs the same instruction

• Divergence implies serialization and masking

Page 15: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 15

Algorithm Design Example: Solving the Heat Equation

• The heat equation describes diffusive

heat conduction in a medium

• Prototypical partial differential equation

• u is the temperature, kappa is the diffusion

coefficient, t is time, and x is space.

• We want to design an algorithm that suits the GPU execution model

Page 16: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 16

Finding a solution to the heat equation

• Solving such partial differential equations analytically is nontrivial in all but a few very special cases

• Solution strategy: replace the continuous derivatives with approximations at a set of grid points

• Solve for each grid point numerically on a computer

• "Use many grid points, and high order of approximation to get good results"

Page 17: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 17

The Heat Equation with an implicit scheme

1. We can construct an implicit scheme by carefully choosing

the "correct" approximation of derivatives

2. This ends up in a system of linear equations

3. Solve Ax=b using standard GPU libraries to evolve the solution in time

Page 18: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 18

The Heat Equation with an implicit scheme

• Such implicit schemes are often sought after: – They allow for large time steps,

– They can be solved using standard tools

– Allow complex geometries

– They can be very accurate

– …

• However…

– Linear algebra solvers can be slow and memory hungry, especially on the GPU

– Many sparse solvers and preconditioners are inherently serial and unsuited for the GPU

– For many time-varying phenomena, we are also interested in the temporal dynamics of the problem

Page 19: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 19

Algorithmic and numerical performance

• Total performance is the product of

algorithmic and numerical performance

• Your mileage may vary: algorithmic

performance is highly problem dependent

• Sparse linear algebra solvers have low

numerical performance

• Only able to utilize a fraction of the

capabilities of CPUs, and worse on GPUs

• Explicit schemes with compact stencils can

give near-peak numerical performance

• May give the overall highest performance

Nu

me

rica

l pe

rfo

rma

nce

Algorithmic performance

Red-

Black

Krylov

Multigrid

PLU

Tridiag

QR

Explicit

stencils

Page 20: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 20

Explicit schemes with compact stencils

• Explicit schemes can give rise to compact stencils

– Embarrassingly parallel

– Perfect for the GPU!

Page 21: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 21

The Shallow Water Equations

• A hyperbolic partial differential equation

• First described by de Saint-Venant (1797-1886)

• Conservation of mass and momentum

• Gravity waves in 2D free surface

• Gravity-induced fluid motion

• Governing flow is horizontal

• Not only used to describe physics of water:

• Simplification of atmospheric flow

• Avalanches

• ...

Water image from http://freephoto.com / Ian Britton

Page 22: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 22

Target Application Areas

Floods

2010: Pakistan (2000+)

1931: China floods (2 500 000+)

Tsunamis

2011: Japan (5321+)

2004: Indian Ocean (230 000)

Storm Surges

2005: Hurricane Katrina (1836)

1530: Netherlands (100 000+)

Dam breaks

1975: Banqiao Dam (230 000+)

1959: Malpasset (423) Images from wikipedia.org, www.ecolo.org

Page 23: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 23

Using GPUs for Shallow Water Simulations

• In preparation for events: Evaluate possible scenarios

• Simulation of many ensemble members

• Creation of inundation maps and emergency action plans

• In response to ongoing events

• Simulate possible scenarios in real-time

• Simulate strategies for action (deployment of barriers,

evacuation of affected areas, etc.)

• High requirements to performance => Use the GPU

Simulation result from NOAA

Inundation map from “Los Angeles County Tsunami Inundation Maps”, http://www.conservation.ca.gov/cgs/geologic_hazards/Tsunami/Inundation_Maps/LosAngeles/Pages/LosAngeles.aspx

Page 24: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 24

Vector of

Conserved

variables

Flux Functions Bed slope

source term

Bed friction

source term

The Shallow Water Equations

Page 25: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 25

The Shallow Water Equations

• A Hyperbolic partial differential equation

• Enables explicit schemes

• Solutions form discontinuities / shocks

• Require high accuracy in smooth parts without oscillations near discontinuities

• Solutions include dry areas

• Negative water depths ruin simulations

• Often high requirements to accuracy

• Order of spatial/temporal discretization

• Floating point rounding errors

• Can be difficult to capture "lake at rest" A standing wave or shock

Page 26: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 26

Finding the perfect numerical scheme

• We want to find a numerical scheme that • Works well for our target scenarios

• Handles dry zones (land)

• Handles shocks gracefully (without smearing or causing oscillations)

• Preserves "lake at rest"

• Has the accuracy for capturing the required physics

• Preserves the physical quantities

• Fits GPUs well • Works well with single precision

• Is embarrassingly parallel

• Has a compact stencil

• …

• …

Page 28: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 28

Discretization

• Our grid consists of a set of cells or volumes

• The bathymetry is a piecewise bilinear function

• The physical variables (h, hu, hv), are piecewise constants per volume

• Physical quantities are transported across the cell interfaces

• Algorithm:

1. Reconstruct physical variables

2. Evolve the solution

3. Average over grid cells

Page 29: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 29

Simulation setup

Main loop Compute

fluxes

Download 𝑢𝑛+1

Upload 𝑢0

Swap 𝑢𝑛and 𝑢𝑛+1

CPU GPU Kernels

Find maximum

timestep

Evolve solution in

time

Apply boundary

conditions

Page 30: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 30

Flux kernel domain decomposition: grids and blocks

• Observations:

• Our shallow water problem is 2D

• The GPU requires a parallel algorithm

• The GPU has native support for 2D grids and

blocks

• Main idea:

• Split up the computation into independent 2D

blocks

• Each block is similar to a node in an MPI cluster

• Execute all blocks in parallel

Grid

Block

Page 31: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 31

Computing fluxes

Continuous variables Discrete variables Dry states fix Reconstruction Slope evaluation Flux calculation

Page 32: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 32

Computing fluxes

• The fluxes, F and G, are computed for each cell interface

• The source term, Hb, is computed for each cell

• Shared memory is used to limit data traffic and reuse data

Hb

G

G

F F

Page 33: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 33

• Shared memory

• Shared memory is a programmer controlled cache on the GPU

• It is small, fast, and very useful for collaboration between threads within a block

• We can read in the physical variables into shared memory to save memory bandwidth

• We can let each thread compute the flux across the south and west interface, and store

the flux in shared memory to save computations

Reusing data and results

//Declare a shared variable

__shared__ F[block_width][block_width];

//Compute the flux and store in shared memory

float f_west = computeFluxWest(…);

F[ty][tx] = f_west;

__syncthreads();

//Use the results computed by other threads

float r = (F[ty][tx] - F[ty][tx+1]) / dx Apron

Interior

Stencil

Page 34: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 34

Slope reconstruction

• The slope is reconstructed using a slope

limiter (generalized minmod in our case)

– Compute the forward, backward, and central

difference approximation to the derivative

– Choose the least steep slope, or zero if

signs differ

• Branching gives divergent code paths

– Use branchless implementation (2007)

– Much faster than naïve approach

(2007) T. Hagen, M. Henriksen, J. Hjelmervik, and K.-A. Lie.

How to solve systems of conservation laws numerically using the graphics processor as a high-performance computational engine.

Geometrical Modeling, Numerical Simulation, and Optimization: Industrial Mathematics at SINTEF, (211–264). Springer Verlag, 2007.

float minmod(float a, float b, float c) {

return 0.25f*sign(a)

*(sign(a) + sign(b))

*(sign(b) + sign(c))

*min( min(abs(a), abs(b)), abs(c) );

}

Page 35: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 35

Flux kernel – Block size

• Choosing the "correct" block size is difficult and affects

performance dramatically

• Our block size is 16x14:

– Warp size: multiple of 32

– Shared memory use: close to 16 KB

– Occupancy

• Use 48 KB shared mem, 16 KB cache

• Three resident blocks

• Trades cache for occupancy

– Fermi cache

– Global memory access

35

Page 36: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 36

Maximum timestep

• The maximum allowable timestep is related to the largest wave speed in the

domain

• The wave speeds are computed per cell interface, and we need to find the

maximum

– This is called a reduction

• We follow the CUDA SDK reduction example with some modifications

1. First, perform in-block shared memory reduction in the flux kernel to reduce 17x15

wave speeds to 1.

2. Run a separate reduction pass "identical" to the SDK example

Page 37: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 37

Parallel reduction

• Reduces n elements to 1

in log2 n iterations:

• Thread 0 computes sum of

elements 0 and 8

• Thread 0 computes sum of

elements 0 and 4

• Thread 0 computes sum of

elements 0 and 2

• Thread 0 computes sum of

elements 0 and 1

Page 38: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 38

Temporal Discretization (Evolving in time)

Gather all known terms

Use second order Runge-Kutta to solve the ODE

Page 39: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 39

Boundary conditions kernel

• Ghost cells used for boundary

– Fixed inlet / outlet discharge

– Fixed depth

– Reflecting

– Outflow/Absorbing

• Can also supply hydrograph

– Tsunamies

– Storm surges

– Tidal waves

39

Global boundary

Local ghost cells

3.5m Tsunami, 1h 10m Storm Surge, 4d

Page 40: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 40

Overview of a Full Simulation Cycle

3. ODE Halfstep

1. Calculate fluxes

4. Calculate fluxes 5. Evolve in time

6. Apply boundary

conditions

2. Calculate Dt

Page 41: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 41

Accuracy and Error

• Garbage in, garbage out

• Simulations have many sources for errors

• Humans!

• Model and parameters

• Friction coefficient estimation

• "Magic" numerical parameters

• Choice of boundary conditions

• Numerical dissipation

• Handling of wetting and drying

• Measurement

• Radar / Lidar / Stereoscopy

• Low spatial resolution

• Low vertical accuracy

• Gridding

• Can require expert knowledge

• Computer precision

• … Recycle image from recyclereminders.com

Cray computer image from Wikipedia, user David.Monniaux

Page 42: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 42

Single Versus Double Precision

Single precision benefits: • Uses half the storage space

• Uses half the bandwidth

• Executes twice as fast

Given erroneous data, double precision

calculates a more accurate (but still wrong) answer

Page 43: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 43

Single Versus Double Precision Example

• Three different test cases

• Low water depth (wet-wet)

• High water depth (wet-wet)

• Synthetic terrain with dam break (wet-dry)

• Conclusions:

• Loss in conservation

on the order of machine epsilon

• Single precision gives larger error

• Errors related to the wet-dry front is more

than an order of magnitude larger

(model error)

• Single precision is sufficiently accurate

for this scheme

Page 44: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 44

More on Accuracy

• We were experiencing large errors in conservation of mass for special cases

• The equations is written in terms of w = B+h to preserve "lake at rest"

• Large B, and small h

• The scale difference gives major floating point errors (h flushed to zero)

• Even double precision is insufficient

• Solve by storing only h, and reconstruct w only when required!

• Single precision sufficient for most real-world cases

• Always store the quantity of interest!

Page 45: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 45

1D Validation: Flow over Triangular bump (90s)

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G2

Simulated Measured

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G11

Simulated Measured

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G13

Simulated Measured

G2 G4 G8 G10 G11 G13 G20

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G4

Simulated Measured

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G8

Simulated Measured

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G10

Simulated Measured

0,00

0,20

0,40

0,60

0,00 20,00 40,00 60,00 80,00 100,00

G20

Simulated Measured

Page 46: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 46

2D Verification: Parabolic basin

• Analytical 2D parabolic basin (Thacker)

– Planar water surface oscillates

– 100 x 100 cells

– Horizontal scale: 8 km

– Vertical scale: 3.3 m

• Simulation and analytical match well

– But, as most schemes, growing errors along wet-dry interface (model error…)

Page 47: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 47

• We model the equations correctly, but can we model real events?

• South-east France near Fréjus: Barrage du Malpasset

• Double curvature dam, 66.5 m high, 220 m crest length, 55 million m3

• Bursts at 21:13 December 2nd 1959

• Reaches Mediterranean in 30 minutes (speeds up-to 70 km/h)

• 423 casualties, $68 million in damages

• Validate against experimental data from 1:400 model

• 482 000 cells (1099 x 439 cells)

• 15 meter resolution

• Our results match experimental data very well

• Discrepancies at gauges 14 and 9 present in most (all?) published results

2D Validation: Barrage du Malpasset

Image from google earth, mes-ballades.com

Page 48: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 48

• Because we have a finite domain of dependence, we

can create independent partitions of the domain and

distribute to multiple GPUs

• Modern PCs have up-to four GPUs

• Near-perfect weak and strong scaling

Multi-GPU simulations

Collaboration with Martin L. Sætra

Page 49: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 49

Early exit optimization

• Observation: Many dry areas

do not require computation

– Use a small buffer to store

wet blocks

– Exit flux kernel if nearest

neighbors are dry

• Up-to 6x speedup (mileage may vary)

– Blocks still have to be scheduled

– Blocks read the auxiliary buffer

– One wet cell marks the whole block as wet

Page 50: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 50

Sparse domain optimization

• The early exit strategy launches too

many blocks

• Dry blocks should not need to

check that they are dry!

Sparse Compute:

Do not perform any computations on dry parts of the domain

Sparse Memory:

Do not save any values in the dry parts of the domain

Ph.D. work of Martin L. Sætra

Page 51: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 51

Sparse domain optimization

1. Find all wet blocks

2. Grow to include dependencies

3. Sort block indices and launch the required

number of blocks

• Similarly for memory, but it gets quite

complicated…

• 2x improvement over early exit (mileage may vary)!

Comparison using an average

of 26% wet cells

Page 52: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 52

Adaptive mesh refinement

• It is often most interesting to have high resolution in only certain areas

• Adaptive local refinement performs refinement only where it is needed!

• This saves both memory and computations

• Simple idea:

• Have a coarse simulator that covers the whole domain

• For each area of interest, create a new simulator with higher resolution

• Use the coarse grid as initial conditions

• Use coarse grid fluxes as boundary conditions

• Average the values from the fine grid to the coarse

• Correct boundary condition fluxes for conservation

• Use multiple refinement levels where needed

Collaboration with Martin L. Sætra

Page 53: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 53

Mixed order schemes

• The small size of Dt is often a

problem for the simulation speed

• Use a mixed order scheme:

• Use first order for problematic

interfaces

• Use second order everywhere else

1st order

scheme

2nd order

scheme

Mixed order

scheme

Page 54: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 54

Video

http://www.youtube.com/watch?v=FbZBR-FjRwY

Page 55: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 55

Summary

Page 56: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 56

• GPUs are powerful

• 7x theoretical difference between CPU and GPU

• Forces you to think about hardware

• GPUs have never been easier to program

• Modern languages and toolkits help you get a flying start

• Easy to achieve speed-ups

• Expert knowledge still required to reach peak performance

• Shallow water simulations map very well to GPUs

• Able to reach near-peak performance

• Physical correctness can be ensured, even using single precision

• Multi-GPU and sparse domain optimizations give even higher performance

Summary

Page 57: Simulation of Physical Phenomena on GPUs with Realtime ...babrodtk.at.ifi.uio.no/files/publications/brodtkorb_granada_2013.pdf · 1959: Malpasset (423) Images from wikipedia.org,

Technology for a better society 57

Thank you for your attention

Contact:

André R. Brodtkorb

Email: [email protected]

Homepage: http://babrodtk.at.ifi.uio.no/

Youtube: http://youtube.com/babrodtk

SINTEF: http://www.sintef.no/heterocomp

Talk material based on work on our simulator engine. Some references: • A. Brodtkorb, M. L. Sætra, Explicit Shallow Water Simulations on GPUs: Guidelines and Best Practices,

CMWR Proceedings, 2012

• A. Brodtkorb, M. L. Sætra, M. Altinakar, Efficient Shallow Water Simulations on GPUs: Implementation,

Visualization, Verification, and Validation, Computers & Fuids, 55, (2011), pp 1--12.

• A. R. Brodtkorb, T. R. Hagen, K.-A. Lie and J. R. Natvig, Simulation and Visualization of the Saint-Venant

System using GPUs, Computing and Visualization in Science, 13(7), (2011), pp. 341--353