Meatballs Jennine Nash and Thomas Klein Meatballs - Smoothed Particle Hydrodynamic Overview Simulator and Renderer Goals SPH Solver Equations Why CUDA? Jennine Nash and Thomas Klein Results References Carnegie Mellon University jmnash@andrew.cmu.edu, twklein@andrew.cmu.edu May 9, 2014
Overview Meatballs Jennine Nash and Thomas 1 Overview Klein Overview 2 Goals Goals SPH Solver Equations 3 SPH Solver Equations Why CUDA? Results 4 Why CUDA? References 5 Results 6 References
SPH Overview Meatballs Jennine Nash and Thomas Klein SPH is used to model liquid flows Overview Goals Too computationally intensive to simulate billions of SPH Solver particles or a truly continuous flow Equations Why CUDA? SPH creates discrete particles which function as moving Results bodies of fluid References Kernel function updates a particles’ properties based on the values of other nearby particles
Goal of the Project Meatballs Jennine Nash and Thomas Klein Overview Realistic-looking liquid particle simulator using a Goals SPH Solver smooth-particle hydrodynamics solver Equations Implemented on both the CPU and GPU (with CUDA) Why CUDA? Results Compare implementation runtimes to each other to References determine the benefit of using CUDA
Properties of Each Particle j Meatballs Jennine Nash and Thomas Klein Position r j Overview Velocity v j Goals SPH Solver Pressure P j Equations Density ρ j Why CUDA? Results Mass m j References Each property (with the exception of mass) is updated according to the values of the properties of the other particles
Kernel Function Limits Which Particles Affect Each Other Meatballs Jennine Nash and Thomas Klein For two particles i and j , x = | r i − r j | Overview h is a smoothing constant adjusted to determine the Goals distance over which particles have effects SPH Solver Equations Let x = r h Why CUDA? 2 x 2 + 3 1 − 3 4 x 3 0 ≤ x ≤ 1 Results References 1 4 (2 − x ) 3 1 W ( r , h ) = 1 ≤ x ≤ 2 π h 3 0 x ≥ 2 [Cossins, 2010]
Kernel Function Limits Which Particles Affect Each Other Meatballs Jennine Nash and Thomas ∇ W ( r , h ) = ∂ Klein ∂ r W ( r , h ) 4 x 2 − 3 x 9 0 ≤ x ≤ 1 Overview Goals 1 − 3 4 (2 − x ) 2 = 1 ≤ x ≤ 2 π h 4 SPH Solver 0 x ≥ 2 Equations Why CUDA? [Cossins, 2010] Results ∂ r j W ( | r i − r j | , h ) = ∇ W ( r , h ) ∂ | r i − r j | ∂ ∇ j W ij = References ∂ r j = ∇ W ( r , h ) 1 r ( r i − r j ) ∇ i W ij = −∇ j W ij ∇ j W ji = −∇ j W ij
Property Update Functions are Performed at Each Time Step Meatballs We defined a small global time step ∆ t Jennine Nash and Thomas Klein All values on the right-hand sides of the equations were calculated during the previous time step Overview Goals Position: r j := r j + ∆ t v j SPH Solver �� � � � Equations P j j + P i Velocity: v j := v j − ∆ t ∇ j W ji + g m i ρ 2 ρ 2 Why CUDA? i i Results where g is the gravity vector [Cossins, 2010] References Density: ρ j := � m i W ji (density effectively changes due i to particles being close together) [Schechter, 2012] �� ρ j � � 7 Pressure: P j := 2000 − 1 where ρ 0 is density ρ 0 based on the mass and volume [Schechter, 2012]
CUDA Best Utilizes Parallelism in Algorithm Meatballs Jennine Nash and Thomas Klein Overview Works well with CUDA warps because unlikely to diverge Goals SPH Solver Each particle calls same functions, and kernel likely to be Equations skipped over in all 32 threads in the warp Why CUDA? Results Every particle is independent because computations only References depend on the time step before
Animation of our Code’s Output Meatballs Jennine Nash and Thomas Klein Overview Goals SPH Solver Equations VIDEOS Why CUDA? Results References
Graph: 4096 Particles on CPU vs. GPU Meatballs Jennine Nash and Thomas Klein Overview Goals SPH Solver Equations Why CUDA? Results References
Graph: 256 Particles on CPU vs. GPU Meatballs Jennine Nash and Thomas Klein Overview Goals SPH Solver Equations Why CUDA? Results References
References Meatballs Jennine Nash and Thomas Klein Overview Peter J. Cossins (2010) Goals Smoothed Particle Hydrodynamics SPH Solver http://arxiv.org/abs/1007.1245v2 Equations Why CUDA? Hagit Schechter and Robert Bridson (2012) Results Ghost SPH for Animating Water References ACM Transactions on Graphics 31(4), article 61 http://dl.acm.org/citation.cfm?doid=2185520.2185557
Meatballs Jennine Nash and Thomas Klein Overview Goals SPH Solver Equations The End Why CUDA? Results References
Recommend
More recommend