首页> 外文期刊>IEICE Transactions on Information and Systems >A GPU Implementation of Dynamic Programming for the Optimal Polygon Triangulation
【24h】

A GPU Implementation of Dynamic Programming for the Optimal Polygon Triangulation

机译:最优多边形三角剖分的动态规划的GPU实现

获取原文
获取原文并翻译 | 示例
           

摘要

This paper presents a GPU (Graphics Processing Units) implementation of dynamic programming for the optimal polygon triangulation. Recently, GPUs can be used for general purpose parallel computation. Users can develop parallel programs running on GPUs using programming architecture called CUDA (Compute Unified Device Architecture) provided by NVIDIA. The optimal polygon triangulation problem for a convex polygon is an optimization problem to find a triangulation with minimum total weight. It is known that this problem for a convex n-gon can be solved using the dynamic programming technique in O(n~3) time using a work space of size O(n~2). In this paper, we propose an efficient parallel implementation of this O(n~3)-time algorithm on the GPU. In our implementation, we have used two new ideas to accelerate the dynamic programming. The first idea (adaptive granularity) is to partition the dynamic programming algorithm into many sequential kernel calls of CUDA, and to select the best parameters for the size and the number of blocks for each kernel call. The second idea (sliding and mirroring arrangements) is to arrange the working data for coalesced access of the global memory in the GPU to minimize the memory access overhead. Our implementation using these two ideas solves the optimal polygon triangulation problem for a convex 8192-gon in 5.57 seconds on the NVIDIA GeForce GTX 680, while a conventional CPU implementation runs in 1939.02 seconds. Thus, our GPU implementation attains a speedup factor of 348.02.
机译:本文介绍了动态编程的GPU(图形处理单元)实现,以实现最佳的多边形三角剖分。最近,GPU可用于通用并行计算。用户可以使用NVIDIA提供的称为CUDA(计算统一设备架构)的编程架构来开发在GPU上运行的并行程序。凸多边形的最佳多边形三角剖分问题是寻找总重量最小的三角剖分的优化问题。众所周知,可以使用大小为O(n〜2)的工作空间在O(n〜3)时间内使用动态编程技术解决凸n边形的问题。在本文中,我们提出了这种O(n〜3)时间算法在GPU上的高效并行实现。在我们的实现中,我们使用了两个新的想法来加速动态编程。第一个想法(自适应粒度)是将动态编程算法划分为CUDA的许多顺序内核调用,并为每个内核调用的大小和块数选择最佳参数。第二个想法(滑动和镜像安排)是安排工作数据以便在GPU中对全局内存进行合并访问,以最大程度地减少内存访问开销。我们使用这两个想法的实现在NVIDIA GeForce GTX 680上以5.57秒的时间解决了凸8192-gon的最佳多边形三角剖分问题,而传统的CPU实现在1939.02秒内运行。因此,我们的GPU实现达到了348.02的加速因子。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号