GPU optimization of material point methods

The Material Point Method (MPM) has been shown to facilitate effective simulations of physically complex and topologically challenging materials, with a wealth of emerging applications in computational engineering and visual computing. Borne out of the extreme importance of regularity, MPM is given attractive parallelization opportunities on high-performance modern multiprocessors. Parallelization of MPM that fully leverages computing resources presents challenges that require exploring an extensive design-space for favorable data structures and algorithms. Unlike the conceptually simple CPU parallelization, where the coarse partition of tasks can be easily applied, it takes greater effort to reach the GPU hardware saturation due to its many-core SIMT architecture. In this paper we introduce methods for addressing the computational challenges of MPM and extending the capabilities of general simulation systems based on MPM, particularly concentrating on GPU optimization. In addition to our open-source high-performance framework, we also conduct performance analyses and benchmark experiments to compare against alternative design choices which may superficially appear to be reasonable, but can suffer from suboptimal performance in practice. Our explicit and fully implicit GPU MPM solvers are further equipped with a Moving Least Squares MPM heat solver and a novel sand constitutive model to enable fast simulations of a wide range of materials. We demonstrate that more than an order of magnitude performance improvement can be achieved with our GPU solvers. Practical high-resolution examples with up to ten million particles run in less than one minute per frame.

[1]  Eitan Grinspun,et al.  Continuum Foam , 2015, ACM Trans. Graph..

[2]  Xuchen Han,et al.  A material point method for thin shells with frictional contact , 2018, ACM Trans. Graph..

[3]  Christopher Horvath,et al.  Directable, high-resolution simulation of fire on the GPU , 2009, SIGGRAPH '09.

[4]  Renato Pajarola,et al.  Adaptive Sampling and Rendering of Fluids on the GPU , 2008, VG/PBG@SIGGRAPH.

[5]  Ken Museth,et al.  VDB: High-resolution sparse volumes with dynamic topology , 2013, TOGS.

[6]  Alexey Stomakhin,et al.  A material point method for snow simulation , 2013, ACM Trans. Graph..

[7]  Chenfanfu Jiang,et al.  Augmented MPM for phase-change and varied materials , 2014, ACM Trans. Graph..

[8]  Steven G. Parker A component-based architecture for parallel multi-physics PDE simulation , 2006, Future Gener. Comput. Syst..

[9]  Robert Bridson,et al.  Fast Poisson disk sampling in arbitrary dimensions , 2007, SIGGRAPH '07.

[10]  Eftychios Sifakis,et al.  Power diagrams and sparse paged grids for high resolution adaptive liquids , 2017, ACM Trans. Graph..

[11]  Ken Museth,et al.  Animation of crack propagation by means of an extended multi-body solver for the material point method , 2017, Comput. Graph..

[12]  Kui Wu,et al.  Fast Fluid Simulations with Sparse Volumes on the GPU , 2018, Comput. Graph. Forum.

[13]  Eftychios Sifakis,et al.  A scalable schur-complement fluids solver for heterogeneous compute platforms , 2016, ACM Trans. Graph..

[14]  Chenfanfu Jiang,et al.  Anisotropic elastoplasticity for cloth, knit and hair frictional contact , 2017, ACM Trans. Graph..

[15]  Eftychios Sifakis,et al.  SPGrid: a sparse paged grid structure applied to adaptive smoke simulation , 2014, ACM Trans. Graph..

[16]  Chenfanfu Jiang,et al.  A material point method for viscoelastic fluids, foams and sponges , 2015, Symposium on Computer Animation.

[17]  Dinesh Manocha,et al.  PSCC: Parallel Self-Collision Culling with Spatial Hashing on GPUs , 2018, PACMCGIT.

[18]  Chenfanfu Jiang,et al.  Multi-species simulation of porous sand and water mixtures , 2017, ACM Trans. Graph..

[19]  Gabriel Zachmann,et al.  kDet: Parallel Constant Time Collision Detection for Polygonal Objects , 2017, Comput. Graph. Forum.

[20]  Rama Karl Hoetzlein,et al.  GVDB: raytracing sparse voxel database structures on the GPU , 2016, High Performance Graphics.

[21]  Dinesh Manocha,et al.  Efficient BVH‐based Collision Detection Scheme with Ordering and Restructuring , 2018, Comput. Graph. Forum.

[22]  Stephen Jones,et al.  Production ready MPM simulations , 2017, SIGGRAPH Talks.

[23]  Yan Liu,et al.  An Alternated Grid Updating Parallel Algorithm for Material Point Method Using OpenMP , 2010 .

[24]  Dinesh Manocha,et al.  CAMA: Contact‐Aware Matrix Assembly with Unified Collision Handling for GPU‐based Cloth Simulation , 2016, Comput. Graph. Forum.

[25]  Ming Gao,et al.  Animating fluid sediment mixture in particle-laden flows , 2018, ACM Trans. Graph..

[26]  Mark Randolph,et al.  A GPU parallel computing strategy for the material point method , 2015 .

[27]  YukselCem,et al.  GPU optimization of material point methods , 2018 .

[28]  Florence Bertails-Descoubes,et al.  A semi-implicit material point method for the continuum simulation of granular materials , 2016, ACM Trans. Graph..

[29]  Andre Pradhana,et al.  A moving least squares material point method with displacement discontinuity and two-way rigid body coupling , 2018, ACM Trans. Graph..

[30]  J. U. Brackbill,et al.  The ringing instability in particle-in-cell calculations of low-speed flow , 1988 .

[31]  Dinesh Manocha,et al.  Fast continuous collision detection among deformable models using graphics processors , 2006, EGVE'06.

[32]  Jürgen Grabe,et al.  Large scale parallelisation of the material point method with multiple GPUs , 2018, Computers and Geotechnics.

[33]  Nail A. Gumerov,et al.  Fast parallel Particle-To-Grid interpolation for plasma PIC simulations on the GPU , 2008, J. Parallel Distributed Comput..

[34]  Chenfanfu Jiang,et al.  The affine particle-in-cell method , 2015, ACM Trans. Graph..

[35]  Jieyu Chu,et al.  A schur complement preconditioner for scalable parallel fluid simulation , 2017, TOGS.

[36]  Ming C. Lin,et al.  Interactive collision detection between deformable models using chromatic decomposition , 2005, ACM Trans. Graph..

[37]  K. Ruggirello,et al.  A COMPARISON OF PARALLELIZATION STRATEGIES FOR THE MATERIAL POINT METHOD , 2013 .

[38]  Chenfanfu Jiang,et al.  An angular momentum conserving affine-particle-in-cell method , 2016, J. Comput. Phys..

[39]  Huamin Wang,et al.  Rule-free sewing pattern adjustment with precision and efficiency , 2018, ACM Trans. Graph..

[40]  Shi-Min Hu,et al.  A Temporally Adaptive Material Point Method with Regional Time Stepping , 2018, Comput. Graph. Forum.

[41]  Andre Pradhana,et al.  Drucker-prager elastoplasticity for sand animation , 2016, ACM Trans. Graph..

[42]  Eftychios Sifakis,et al.  An adaptive generalized interpolation material point method for simulating elastoplastic materials , 2017, ACM Trans. Graph..

[43]  Chenfanfu Jiang,et al.  Implicit-shifted Symmetric QR Singular Value Decomposition of 3x3 Matrices , 2016 .

[44]  Eftychios Sifakis,et al.  Computing the Singular Value Decomposition of 3x3 matrices with minimal branching and elementary floating point operations , 2011 .

[45]  Robert Bridson,et al.  Fluid Simulation for Computer Graphics , 2008 .

[46]  Xiong Zhang,et al.  Shared Memory OpenMP Parallelization of Explicit MPM and Its Application to Hypervelocity Impact , 2008 .

[47]  D. Sulsky Erratum: Application of a particle-in-cell method to solid mechanics , 1995 .

[48]  Wei-Fan Chiang,et al.  GPU Acceleration of the Generalized Interpolation Material Point Method , 2011 .

[49]  Robert Bridson,et al.  Animating sand as a fluid , 2005, ACM Trans. Graph..

[50]  Alexey Stomakhin,et al.  Energetically consistent invertible elasticity , 2012, SCA '12.