Skip to main content
QUICK REVIEW

[论文解读] Finding Convex Hulls Using Quickhull on the GPU

Stanley Tzeng, John D. Owens|arXiv (Cornell University)|Jan 13, 2012
Computational Geometry and Mesh Generation参考文献 13被引用 18
一句话总结

本文提出了一种基于Quickhull的GPU加速凸包算法,采用一种新颖的框架,通过数据重排替代递归分割,以克服GPU在递归计算方面的局限性。该方法通过将分治逻辑高效映射到GPU优化的分段操作和内核启动,实现了相较于CPU凸包库一个数量级的速度提升。

ABSTRACT

We present a convex hull algorithm that is accelerated on commodity graphics hardware. We analyze and identify the hurdles of writing a recursive divide and conquer algorithm on the GPU and divise a framework for representing this class of problems. Our framework transforms the recursive splitting step into a permutation step that is well-suited for graphics hardware. Our convex hull algorithm of choice is Quickhull. Our parallel Quickhull implementation (for both 2D and 3D cases) achieves an order of magnitude speedup over standard computational geometry libraries.

研究动机与目标

  • 为在缺乏原生递归支持的GPU上实现递归分治算法提供高效方法。
  • 通过将凸包计算从CPU卸载到GPU,解决其性能瓶颈问题。
  • 开发一种通用框架,用于将分治算法映射到GPU架构的数据并行工作负载。
  • 利用通用GPU硬件在2D和3D点集上实现高效的凸包计算。

提出的方法

  • 通过数据重排替代递归分割,避免GPU的递归限制。
  • 使用分段标志在单个数组中保持数据的逻辑分区,支持分段处理。
  • 将Quickhull的递归分割映射为迭代内核启动,并通过重排重组输入数据。
  • 采用紧凑操作丢弃不在凸包上的点,从而减少每轮迭代的数据规模。
  • 利用GPU优化的内存访问模式和内核启动,最小化延迟。
  • 将该框架扩展至支持4维及更高维的凸包计算。

实验结果

研究问题

  • RQ1如何在无原生递归支持的GPU架构中,将递归分治算法有效映射到数据并行执行模型?
  • RQ2采用基于重排的框架在GPU上实现Quickhull能获得多大的性能提升?
  • RQ3在不同点分布下,GPU移植的Quickhull与标准CPU凸包库相比性能表现如何?
  • RQ4在高凸包情况下,GPU凸包计算的主要性能瓶颈是什么?
  • RQ5所提出的框架能否推广到凸包之外的其他分治算法?

主要发现

  • GPU优化的Quickhull实现相较qhull和hull等CPU凸包库实现了数量级的速度提升(10倍)。
  • 该方法在所有测试点分布下均优于CPU实现:均匀分布、圆/球面上分布以及接近圆/球面分布。
  • 在圆和球面分布情况下观察到性能下降,主要由于迭代次数增加;与均匀分布相比,GPU版本分别减慢了17倍(圆)和14倍(球面)。
  • qhull的CPU版本在球面情况下减慢了23倍,而hull仅减慢2倍,表明GPU开销对凸包密度更敏感。
  • 该框架可扩展至更高维度,已基于相同核心原理实现并验证了4D凸包计算。
  • 未来若硬件支持内核内启动(如嵌套内核启动),预计将显著降低CPU-GPU通信开销,并进一步提升性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。