CudaHull: Fast parallel 3D convex hull on the GPU

Ayal Stein, Eran Geva, Jihad El-Sana

Research output: Contribution to journalArticlepeer-review

Abstract

In this paper, we present a novel parallel algorithm for computing the convex hull of a set of points in 3D using the CUDA programming model. It is based on the QuickHull approach and starts by constructing an initial tetrahedron using four extreme points, discards the internal points, and distributes the external points to the four faces. It then proceeds iteratively. In each iteration, it refines the faces of the polyhedron, discards the internal points, and redistributes the remaining points for each face among its children faces. The refinement of a face is performed by selecting the furthest point from its associated points and generating three children triangles. In each iteration, concave edges are swapped, and concave vertices are removed to maintain convexity. The face refinement procedure is performed on the CPU, because it requires a very small fraction of the execution time (approximately 1%), and the intensive point redistribution is performed in parallel on the GPU. Our implementation outpaced the CPU-based Qhull implementation by 30 times for 10 million points and 40 times for 20 million points.

Original languageAmerican English
Pages (from-to)265-271
Number of pages7
JournalComputers and Graphics (Pergamon)
Volume36
Issue number4
DOIs
StatePublished - 1 Jan 2012

Keywords

  • CUDA programming
  • Convex hull
  • GPU processing
  • Parallel processing

All Science Journal Classification (ASJC) codes

  • Software
  • General Engineering
  • Signal Processing
  • Human-Computer Interaction
  • Computer Vision and Pattern Recognition
  • Computer Graphics and Computer-Aided Design

Fingerprint

Dive into the research topics of 'CudaHull: Fast parallel 3D convex hull on the GPU'. Together they form a unique fingerprint.

Cite this