基于图形处理器的球面Voronoi图生成算法优化论文
摘要:基于四元三角格网(QTM)之间距离计算与比较的球面Voronoi图生成算法相对于扩张算法具有较高的精度,但由于需要计算并比较每个格网到所有种子点的距离,致使算法效率较低。针对这一问题,利用图形处理器(GPU)并行计算对算法进行实现,然后从GPU共享内存、常量内存、寄存器等三种内存的访问方面进行优化,最后用C++语言和统一计算设备架构(CUDA)开发了实验系统,对优化前后算法的效率进行对比。实验结果表明,不同内存的合理使用能在很大程度上提高算法的效率,且数据规模越大,所获得的加速比越高。
关键词:球面Voronoi图;统一计算设备架构;共享内存;常量内存;寄存器
英文摘要
Abstract:Spherical Voronoi diagram generating algorithm based on distance computation and comparison of Quaternary Triangular Mesh (QTM) has a higher precision relative to dilation algorithm. However, massive distance computation and comparison lead to low efficiency. To improve efficiency, Graphic Processing Unit (GPU) parallel computation was used to implement the algorithm. Then, the algorithm was optimized with respect to the access to GPU shared memory, constant memory and register. At last, an experimental system was developed by using C++ and Compute Unified Device Architecture (CUDA ) to compare the efficiency before and after the optimization. The experimental results show that efficiency can be improved to a great extent by using different GPU memories reasonably. In addition, a higher speedup ratio can be acquired when the data scale is larger.
英文关键词
Key words:spherical Voronoi diagram; Compute Unified Device Architecture (CUDA); shared memory; constant memory; register
0 引言
近年来,图形处理器(Graphic Processing Unit,GPU)技术快速发展,其浮点运算能力和内存带宽已远远超过中央处理器(Central Processing Unit,CPU)[6]。NVIDIA公司开发的统一计算设备架构(Compute Unified Device Architecture,CUDA)为GPU增加了一个易用的编程接口[7],使得GPU并行计算在群体行为仿真[8]、三维数据并行可视化[9]、地球表面测绘[10]等领域得到广泛应用。
本文利用CUDA对基于距离计算与比较的球面V图生成算法进行实现,然后从GPU共享内存、常量内存、寄存器等三种内存的`访问方面,对算法进行优化,最后利用C++和CUDA开发了实验系统,对优化前后算法的效率进行对比。
1 基于QTM的球面Voronoi图并行生成算法
若将式(1)中的ω定义为一个QTM格网,Ω定义为球面上所有QTM格网的集合,距离函数d定义为球面大弧距离,则式(1)表示的即为基于QTM的球面V图。
基于QTM格网之间距离计算与比较的球面V图生成算法[5],通过计算并比较每个格网到所有种子点的距离,来确定格网单元所属的Voronoi区域,算法具有计算密集性、指令一致性及相互独立性的特点,本文采用GPU单指令多数据流(Single Instruction Multiple Date,SIMD)并行计算模型来执行这些运算,算法实现的核函数(Kernel)伪码如下(Kernel_1)。
2 算法的优化
在CUDA架构中有多种内存可供使用,如全局内存、局部内存、共享内存、常量内存、寄存器等,每种内存的空间大小、作用范围及访问速度都各不相同。因此,在实现算法时使用不同的内存、不同的访问方式,将会对程序的性能产生巨大的影响。本文将从GPU内存访问方面(包括共享内存、常量内存及寄存器等)对上述算法进行优化。
2.1 共享内存优化
2.2 常量内存优化
GPU中的常量内存是只读内存。如果半个线程束(HalfWarp, 16个线程)中的每个线程都从常量内存的相同地址读取数据,GPU只会产生一次读取请求并在随后将数据广播到每个线程;同时,由于常量内存的内容是不会发生变化的,硬件会主动把这个常量数据缓存在GPU上,在第一次从常量内存的某个地址上读取后,当其他半线程束请求同一个地址时,将命中缓存,同样减少了额外的内存流量。因此,与从全局内存中读取数据相比,从常量内存中读取相同的数据可以节约大量的内存带宽[11]。
由于算法中的种子点数据不会发生改变,且每个线程都从第1个种子点数据开始读取,因此,可将种子点数据直接从CPU内存复制到GPU常量内存中,以消除全局内存访问对算法效率的影响。与使用共享内存类似,在计算能力为1.1的设备中,GPU常量内存的大小只有64KB,当种子点数据较大时,需要分成多次将数据从CPU内存复制到GPU常量内存,并多次调用核函数进行计算。算法实现的伪码与Kernel_1类似,只是将种子点数据存储在GPU常量内存中。
2.3 寄存器优化
为按顺序进行编号,也可以将文中的Kernel-4直接改成Kernel-3!)。
3 实验与分析
实现本文算法所用的编程语言为C++和NVIDIA CUDA 6.5;硬件环境为Intel Core 2 Quad CPU Q8400 @2.66GHz,2.00GB内存,NVIDIA GeForce 9600 GT GPU,计算能力1.1。在该环境下,将基于距离计算与比较的球面V图生成算法及上述各优化算法进行实现,并进行了对比分析。
4 结语
本文利用CUDA对基于距离计算与比较的球面V图生成算法进行实现,并从GPU共享内存、常量内存、寄存器等三种内存的访问方面对算法进行优化,通过实验得出如下结论:
1)仅使用GPU全局内存时,算法的效率仅与CPU串行算法相当;
2)GPU共享内存、常量内存、寄存器的合理使用,能够大大提高算法的效率;
3)在一定的数据规模下,随着种子点数的增多,GPU加速比逐渐增大。
本文仅从GPU内存访问的角度对基于距离计算与比较的球面V图生成算法进行了优化,下一步的工作是综合考虑算法指令、任务划分、内存访问等因素,对算法进一步优化。
参考文献:
[8]HE Y, YE C, LIU Z, et al. Parallel simulation and optimization of CUDAbased realtime huge crowd behavior[J]. Journal of Comput
-
多媒体设备合同(14篇)
在人们越来越相信法律的社会中,合同对我们的约束力越来越不可忽视,签订合同也是避免争端的最好方式之一。那么常见的合同书是什么样的呢?以下是小编帮大家整理的多媒体设备合同,欢迎大家借鉴与参考,希望对大家有所帮助。多媒体设备合同1合同编号:_____________签约地...
-
幼儿园多媒体教室管理制度
随着社会不断地进步,制度的使用频率逐渐增多,制度是国家机关、社会团体、企事业单位,为了维护正常的工作、劳动、学习、生活的秩序,保证国家各项政策的顺利执行和各项工作的正常开展,依照法律、法令、政策而制订的具有法规性或指导性与约束力的应用文。那么制度的格...
-
【精品】多媒体教学工作总结3篇
多媒体教学工作总结篇1今年,在县教育局的大力投入下,我校安装了两台班班通,我校紧紧抓住机遇,大力推进多媒体教学手段的运用,使多媒体能更充分地发挥它的功用,更好的为教学服务。近半年来,我校在使用多媒体教学方面做了不少的工作,也取得了一些的成果。下面作工作总结...
-
《有趣的图形》知识点总结
有趣的图形1、认识图形---(长方形、正方形、三角形和圆)2、动手做(一)3、动手做(二)4、动手做(三)【知识点】认识图形(长方形、正方形、三角形和圆)1、对长方形、正方形、三角形和圆的认识,能分辨出四种基本的图形。2、学会观察,能在生活中找出基本的形状,会举例...
相关文章
- 试析中职图形图像处理Photoshop课程中项目论文
- 葡萄牙语的历史:Revolucionários apossam-se de Porto Alegre
- PowerPoint流程文字转换成漂亮的图形流程图教程
- 英语优秀作文推荐:My View on Major Ranking
- How to Interview for a Job—外企面试技巧
- 电脑是惠普Pavilion dv4 Notebook Pc笔记本
- Avril Lavigne《Tomorrow》歌词中英对照弹唱视频
- 《No ordinary love》歌词
- innovation是什么意思 innovation释义-短语-外教教学视频
- 《What are you doing for vacation》课文学习教案