多边形叠加Vatti算法的VCS优化方法与GPU并行化
Vatti算法是常用的矢量多边形裁剪算法之一,在其构建扫描束实现交点计算的过程中,二叉树的数据结构和递归计算方法导致其计算效率受矢量多边形边界顶点数量影响显著.本文针对Vatti算法执行过程中较为耗时的扫描束构建环节,提出了一种多边形边界顶点预排序的优化方法——VCS(Vertex Coordinate Pre-Sorting)方法,并基于该方法实现了对Vatti算法的GPU细粒度并行化.VCS方法使用双向链表对Vatti算法原有的二叉树数据结构进行了替换,以较小的额外存储空间取得了多边形边界顶点信息查找效率的明显提升.在GPU环境下采用双调排序算法对多边形边界顶点数组元素进行并行化排序并过滤出有效值,克服了原始算法使用二叉树存储导致效率低下的问题.实验结果表明,改进后的算法与原始算法相比,具有相同的计算精度;当多边形顶点数量为92万,CUDA每个线程块中的线程数量为32时,使用VCS优化方法,与采用CPU计算构建扫描束方法相比,GPU并行化方法获得了 39.6倍的相对加速比,矢量多边形叠加分析算法效率总体上提升了 4.9倍.
叠加分析、多边形裁剪、CUDA并行、双调排序、VCS、Vatti算法、数据结构、高性能计算、GIS
24
国家自然科学基金;国家重点研发计划;山东省自然科学基金;山东省自然科学基金;山东省重大科技创新工程项目;山东理工大学青年教师发展支持计划
2022-04-11(万方平台首次上网日期,不代表论文的发表时间)
共11页
437-447