论文部分内容阅读
计算机处理器通过传统的以提高主频来提升性能的方式受到了高能耗的挑战,从而使得并行处理成为处理器体系结构发展的主流模式。受到不同应用需求和功耗限制的驱动,异构并行处理器逐渐变得普及起来,其中常见的包含了多核CPU、众核GPU、协处理器Intel Xeon Phi等。与串行处理器相比,并行处理器拥有更多的计算单元,因此它们的峰值计算能力也得到了显著提高。 在实际运用异构计算过程中,程序员受到了来自多方面的挑战:其一,随着异构硬件并行性能的提高,系统各个层次的软硬件都面临成为瓶颈的可能,因此要取得令人满意的高性能并不容易;其二,为了兼顾性能与能耗,硬件发展呈现出高度异构的特点,使得软件在不同体系结构上的迁移变得十分困难;其三,由于多样化的应用需求,程序员不可避免地需要采用多种异构硬件协同合作完成任务的方案,进一步增加了编程的难度。基于上述原因,异构计算呈现出了系统优化跨层面,软硬件强结合以及异构重协同的特点。 为了更好地利用异构硬件强大的计算能力,就需要对现有的软件,尤其是其核心算法进行针对性的设计与优化。本文从多个角度研究了基于异构架构的图像匹配算法并行设计与优化的一般性问题,并取得了如下的研究成果: 设计和实现了空间效率更高且适合于并行化的图片像素匹配算法:图片的像素匹配算法具有高时间复杂度和高空间复杂度的特点。本文从应用的角度入手,着手于降低算法的空间复杂度并提高其并行性能,提出了多锚点像素匹配算法。和原算法相比,它的空间复杂度降低了一维,从而能够在不同的异构硬件上实现。本文进一步研究了该算法的并行优化方法,提出了在多核CPU上的粗、细两种粒度的并行化方式,并结合GPU的特点改进了其数据结构,取得了明显的性能提升; ?总结和归纳了图片特征匹配问题在异构架构上的性能瓶颈问题:特征匹配问题大量存在于机器学习、机器视觉等研究领域,具有广泛的影响力。本文从系统分析的角度入手,测试了不同匹配算法和数据在多种异构并行架构上的性能,并总结和归纳了常见的性能瓶颈,如缓存利用率低、内存访问争用及系统调用争用等。通过大量收集运行时数据,本文详细分析了这些瓶颈产生的原因,提出了分治归并方法来对算法处理过程进行优化,从而规避了上述瓶颈,并取得了显著的性能提升; ?设计和实现了可动态调整精度的特征过滤算法:近似算法在特征匹配问题中使用非常普遍,而现有研究中同时考虑算法并行性和精度问题的还比较少。本文从算法精度的角度入手,结合它们在并行异构架构上遇到的瓶颈问题,提出了具有通用性的特征过滤算法,可以明显降低匹配过程中的计算量和内存访问次数。同时,本文设计了动态调整过滤精度的方法以适应不同的数据分布,从而取得了性能与精度之间的平衡; ?设计和实现了基于众核GPU的高效k-selection选择算法:研究发现k-selection选择算法是特征匹配问题在GPU上实现时消耗最多计算时间的部分。对此,本文从算法优化的角度入手,针对GPU架构的特点和算法的内在特性,设计了全新的选择算法。该算法使用了新的归并排序队列、带缓冲区的搜索技术以及多层划分技术,能够有效提高其在GPU上的性能,从而解决了特征匹配算法在GPU上加速效果不明显的问题。 综上所述,本文从异构架构并行图像匹配算法分析与优化,以及设计与实现两个角度展开了充分研究,总结了具有一般性的性能瓶颈和优化思路,设计和实现了多种新算法,并取得了显著的性能提升。