Elsevier

Computers & Graphics

Volume 36, Issue 5, August 2012, Pages 498-506
Computers & Graphics

SMI 2012: Full Paper
GPU accelerated convex hull computation

https://doi.org/10.1016/j.cag.2012.03.015Get rights and content

Abstract

We present a hybrid algorithm to compute the convex hull of points in three or higher dimensional spaces. Our formulation uses a GPU-based interior point filter to cull away many of the points that do not lie on the boundary. The convex hull of remaining points is computed on a CPU. The GPU-based filter proceeds in an incremental manner and computes a pseudo-hull that is contained inside the convex hull of the original points. The pseudo-hull computation involves only localized operations and maps well to GPU architectures. Furthermore, the underlying approach extends to high dimensional point sets and deforming points. In practice, our culling filter can reduce the number of candidate points by two orders of magnitude. We have implemented the hybrid algorithm on commodity GPUs, and evaluated its performance on several large point sets. In practice, the GPU-based filtering algorithm can cull up to 85 M interior points per second on an NVIDIA GeForce GTX 580 and the hybrid algorithm improves the overall performance of convex hull computation by 10–27 times (for static point sets) and 22–46 times (for deforming point sets).

Highlights

► We design a GPU-based interior point filter to cull away many of the points that do not lie on the boundary. ► The pseudo-hull computation involves only localized operations and maps well to GPU architectures. ► The underlying approach extends to high dimensional point sets and deforming points. ► In practice, our culling filter can reduce the number of candidate points by two orders of magnitude.

Introduction

The problem of computing the convex hull of a set of points is fundamental in computational geometry, computer graphics and shape modeling. Given a set of points in d-dimensional space, the convex hull is the minimal convex set that contains all the points. Convex hull computation is frequently used for collision detection, interference computation, shape analysis, pattern recognition, statistics, GIS, etc.

The problem of computing the convex hull of points is well studied in geometric computing. Many optimal theoretical algorithms have been proposed for low- and high-dimensional point sets. There are also many known practical methods and robust software implementations addressing this problem [1], [2], [3].

While many theoretical algorithms have been proposed for parallel convex hull computation, there is relatively little work on fast, practical algorithms that can exploit parallel cores on the GPUs. In this paper, our goal is to design practical convex hull algorithms that can exploit GPU parallelism, as most prior practical and robust algorithms [1], [4], [5], [6] to compute convex hulls are relatively hard to parallelize.

Main results: We present a hybrid GPU–CPU based convex hull algorithm. Given a set of points, we use a novel GPU-based filter that can cull away most of the interior points that do not lie on the boundary of the convex hull. The convex hull of the remaining points is computed using well-known CPU-based algorithms such as QuickHull [5], [3]. The GPU-based filter computes a pseudo-hull in an incremental manner which involves only localized operations and maps well to GPU architectures. Our approach ensures that the pseudo-hull lies inside the convex hull of the original points and serves as a conservative bounding shape to cull away interior points. We exploit spatial and temporal coherence between successive time steps to incrementally compute the pseudo-hull for deforming point sets and thereby reduce the runtime computation. The overall interior point filter, which exploits the parallel cores of GPUs, can cull up to 85 M points on an NVIDIA GeForce GTX 580, and can reduce the number of points by almost two orders of magnitude.

Furthermore, the algorithm scales almost linearly with the number of cores. The overall approach is quite simple and the GPU-based filter can be used as a preprocess with any other convex hull algorithm or software package.

The hybrid algorithm makes no assumption about the order of input points or the underlying deformation, and easily extends to higher-dimensional point sets. We have tested its performance on 3D and 4D large point sets corresponding to static and deforming point sets on different GPUs (e.g. NVIDIA GeForce GTX 285, GTX 480 and GTX 580). Our preliminary results indicate that the hybrid algorithm can speed up the computation by 27× (static point sets) and 46× (deforming point sets) as compared to an optimized CPU-based algorithm.

Organization: The rest of the paper is organized as follows: Section 2 gives a brief survey of prior work on convex hull computation. We present our CPU–GPU based hybrid algorithm and GPU-based interior point filter in Section 3. We present the implementation details and highlight the performance in Section 4. We compare our approach with prior algorithms and point out its limitations in Section 5.

Section snippets

Related work

The construction of convex hulls essentially consists of two basic problems: locating extreme points and determining the connectivity between these points [7], [1]. Chan [6] gives a theoretically optimal output sensitive serial algorithm, though no good implementation is known.

Given n as the number of the point set and h as the number of extreme points in a point set, Amato et al. [4], [8] proposed randomized and deterministic parallel methods for constructing a convex hull in parallel and

Hybrid convex hull computation

In this section, we present our CPU–GPU based hybrid convex hull computation algorithm for a set of points.

Convex hull of a finite point set: The convex hull of a finite point set PRd is the smallest convex set that contains all the points. A convex set is a set of elements such that all the points on the straight line between any two points of the set are also contained in the set. A point is extreme if it is a vertex of the convex hull, otherwise it is classified as an interior point with

Implementation and performance

In this section, we describe our implementation and highlight the performance of our algorithm on several benchmarks.

Comparison and analysis

In this section, we compare our CPU–GPU hybrid algorithm with prior algorithms and highlight some of its benefits.

Conclusion and future work

We present a CPU–GPU hybrid convex hull computation algorithm that is simple to implement and can offer significant speedups. A novel GPU-based interior point culling filter is used to efficiently cull away the interior points using parallel cores. The filter has been extended to deforming point sets by using temporal and spatial coherence between successive simulation time steps. In practice, our algorithm can improve the performance of convex hull construction on commodity GPUs. We observed

Acknowledgements

This research is supported in part by National Basic Research Program of China (2011CB302205), National Key Technology R&D Program of China (2012BAD35B01), NSFC (61170140), Natural Science Foundation of Zhejiang, China (Y1100069). Manocha is supported in part by ARO Contract W911NF-10-1-0506, NSF awards 0917040, 0904990, 1000579 and 1117127, and Intel. Tong is partly supported by NSFC (61170141).

References (26)

  • N. Gupta et al.

    Faster output-sensitive parallel algorithms for 3D convex hulls and vector maxima

    J. Parallel Distributed Comput

    (2003)
  • S. Akl et al.

    A fast convex hull algorithm

    Inf Process Lett

    (1978)
  • F.P. Preparata et al.

    Computational geometry: an introduction

    (1985)
  • Hoff KE, III, Keyser J, Lin M, Manocha D, Culver T. Fast computation of generalized voronoi diagrams using graphics...
  • qhull.org, Qhull 2010.1; 2010...
  • Amato NM, Preparata FP. An NC parallel 3D convex hull algorithm. In: Proceedings of the ninth annual symposium on...
  • C.B. Barber et al.

    The QuickHull algorithm for convex hulls

    ACM Trans Math Softw

    (1996)
  • T.M. Chan

    Optimal output-sensitive convex hull algorithms in two and three dimensions

    Discrete Comput Geometry

    (1996)
  • F.P. Preparata et al.

    Convex hulls of finite sets of points in two and three dimensions

    Commun. ACM

    (1977)
  • Amato NM, Goodrich MT, Ramos EA. Parallel algorithms for higher-dimensional convex hulls. In: Proceedings of the 34th...
  • Dehne F, Deng X, Dymond P, Fabri A, Khokhar AA. A randomized parallel 3D convex hull algorithm for coarse grained...
  • Clarkson KL, Shor PW. Algorithms for diametral pairs and convex hulls that are optimal, randomized, and incremental....
  • Srungarapu S, Reddy DP, Kothapalli K, Narayanan PJ. Fast two dimensional convex hull on the GPU. In: Proceedings of...
  • Cited by (0)

    If applicable, supplementary material from the author(s) will be available online after the conference. Please see doi:10.1016/j.cag.2012.03.015.

    View full text