论文部分内容阅读
众核体系架构主要包括GPU,异构CPU上的GPU单元和使用x86指令集的MIC加速部件等,一般应用于通用计算的计算单元。近年来,由于CPU发展遇到了频率墙、功耗墙和存储墙等一系列瓶颈,使用众核体系架构获得更高的计算性能得到了业界的更多关注。事实上,随着众核体系架构的广泛应用,在一些应用中获得高性能时,很多的问题也随之产生。问题集中在于如何充分利用众核体系架构获得高性能,很多情况下由于应用软件开发的滞后造成了硬件的荒废。原因在于盲目使用众核体系架构或是对众核体系下软件开发的生疏。另外,众核体系架构下的应用开发的参考文档和开源程序也相对较少,这也一定程度上阻碍了众核体系架构的推广与应用。本文的研究重点是在众核体系下,对算法优化的若干关键技术进行研究与验证。这些技术包括针对于数据关联较小的算法通用优化技术,在此之上,我们着重研究了在众核体系如何高效的实现迭代类算法。为了验证本文技术的有效性,我们将这些优化技术应用于OpenCV库的一些算法优化中,并使用OpenCV库中测试用例进行测试以确保优化后算法实现的正确性和高效性。目前本文中介绍的对算法的优化实例以被OpenCV库的主目录收录。通过使用本文中提供的算法优化方法,优化后的算法实现现对于OpenCV库中已有的CPU版本代码获得了较高的加速比。同时相对于CUDA版本的代码也获得了相当的性能。