Bulk-synchronous parallel simultaneous BVH traversal for collision detection on GPUs

Simultaneous BVH traversal, as a dynamic task of pair-wise proximity tests, poses several challenges in terms of parallelization using GPUs. It is a highly dynamic and data-dependent problem which can induce control-flow divergence and inefficient data-access patterns. We present a simple solution using the bulk-synchronous parallel model to ensure a uniform mode of execution, and balanced workloads across GPU threads. The method is easy to implement, fast and operates entirely on the GPU by relying on a topology-centred work expansion scheme to ensure large concurrent workloads. We demonstrate speedups of upto 7.1x over the widely used "streams" model for GPU based parallel collision detection.

[1]  Kirill Garanzha,et al.  Simpler and faster HLBVH with work queues , 2011, HPG '11.

[2]  Dinesh K. Pai,et al.  CInDeR: Collision and Interference Detection in Real-time using graphics hardware , 2003, Graphics Interface.

[3]  Yao Zhang,et al.  Scan primitives for GPU computing , 2007, GH '07.

[4]  Robert Bridson,et al.  Efficient geometrically exact continuous collision detection , 2012, ACM Trans. Graph..

[5]  Peng Du,et al.  GPU Accelerated Real-Time Collision Handling in Virtual Disassembly , 2015, Journal of Computer Science and Technology.

[6]  Samuli Laine,et al.  Restart trail for stackless BVH traversal , 2010, HPG '10.

[7]  Christer Ericson,et al.  Real-Time Collision Detection , 2004 .

[8]  Dinesh Manocha,et al.  OBBTree: a hierarchical structure for rapid interference detection , 1996, SIGGRAPH.

[9]  Dinesh Manocha,et al.  g-Planner: Real-time Motion Planning and Global Navigation using GPUs , 2010, AAAI.

[10]  Tero Karras,et al.  Architecture considerations for tracing incoherent rays , 2010, HPG '10.

[11]  Dinesh Manocha,et al.  Collision queries using oriented bounding boxes , 2000 .

[12]  Tsai-Yen Li,et al.  Incremental 3D collision detection with hierarchical data structures , 1998, VRST '98.

[13]  Toyotaro Suzumura,et al.  Parallel continuous collision detection for high-performance GPU cluster , 2017, I3D.

[14]  Geoff Leach,et al.  An adaptive octree grid for GPU-based collision detection of deformable objects , 2014, The Visual Computer.

[15]  Philipp Slusallek,et al.  Efficient stack-less BVH traversal for ray tracing , 2011, SCC.

[16]  Dieter Schmalstieg,et al.  Whippletree , 2014, ACM Trans. Graph..

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

[18]  P. J. Narayanan,et al.  Accelerating Large Graph Algorithms on the GPU Using CUDA , 2007, HiPC.

[19]  Keshav Pingali,et al.  Parallel graph analytics , 2016, Commun. ACM.

[20]  John D. Owens,et al.  Gunrock: a high-performance graph processing library on the GPU , 2015, PPoPP.

[21]  Rüdiger Dillmann,et al.  GPU-based real-time collision detection for motion execution in mobile manipulation planning , 2013, 2013 16th International Conference on Advanced Robotics (ICAR).

[22]  Andrew S. Grimshaw,et al.  Scalable GPU graph traversal , 2012, PPoPP '12.

[23]  Ronald Fedkiw,et al.  Robust treatment of collisions, contact and friction for cloth animation , 2002, SIGGRAPH Courses.

[24]  P. Sadayappan,et al.  Characterizing and enhancing global memory data coalescing on GPUs , 2015, 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).

[25]  Joseph S. B. Mitchell,et al.  Efficient Collision Detection Using Bounding Volume Hierarchies of k-DOPs , 1998, IEEE Trans. Vis. Comput. Graph..

[26]  Dinesh Manocha,et al.  MCCD: Multi-core collision detection between deformable models using front-based decomposition , 2010, Graph. Model..

[27]  Dinesh Manocha,et al.  gProximity: Hierarchical GPU‐based Operations for Collision and Distance Queries , 2010, Comput. Graph. Forum.

[28]  Philippas Tsigas,et al.  On dynamic load balancing on graphics processors , 2008, GH '08.

[29]  Gino van den Bergen Efficient Collision Detection of Complex Deformable Models using AABB Trees , 1997, J. Graphics, GPU, & Game Tools.

[30]  Gabriel Zachmann,et al.  Collision Detection for Deformable Objects , 2004, Comput. Graph. Forum.

[31]  Kun Zhou,et al.  BSGP: bulk-synchronous GPU programming , 2008, ACM Trans. Graph..

[32]  H. Howie Huang,et al.  iBFS: Concurrent Breadth-First Search on GPUs , 2016, SIGMOD Conference.

[33]  Dinesh Manocha,et al.  GPU-Based Parallel Collision Detection for Real-Time Motion Planning , 2010, WAFR.

[34]  Qi Mo,et al.  Work distribution methods on GPUs , 2009 .

[35]  Tomas Akenine-Möller,et al.  Dynamic Stackless Binary Tree Traversal , 2013 .

[36]  Marc Olano,et al.  Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games , 2018, I3D.

[37]  Dinesh Manocha,et al.  Collision-streams: fast GPU-based collision detection for deformable models , 2011, SI3D.

[38]  Anjul Patney,et al.  Task management for irregular-parallel workloads on the GPU , 2010, HPG '10.

[39]  Dinesh Manocha,et al.  Fast BVH Construction on GPUs , 2009, Comput. Graph. Forum.

[40]  Keval Vora,et al.  CuSha: vertex-centric graph processing on GPUs , 2014, HPDC '14.

[41]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

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

[43]  Leslie G. Valiant,et al.  A bridging model for parallel computation , 1990, CACM.