论文部分内容阅读
目前,随着GIS技术的日益发展,GIS数据的数据量也随之增大。图像数据处理应用的主要问题不再是数据源的不足,而是如何快速、准确地从中提取更加丰富和有用的信息。本选题的研究目标是在CUDA架构下,针对局部函数算法所具有的数据处理流程相对固定的特点,选取具有并行性的局部算子,将传统的串行局部函数算法映射到并行处理架构上,从而实现栅格数据在CUDA并行编程模型上的加速算法。通过研究这一技术,我们可以将它应用于海量级数据的处理,利用其并行加速优势加速处理传统耗时的地图数据。
地图代数(Map Algebra)是一种以栅格点集的变换和运算来解决地理信息的图形符号的可视化和空间分析的理论和方法,它是帮助栅格数据空间分析的语言。地图代数的操作对象既可以是简单的栅格数据集,也可以是一系列栅格数据集;操作方式既可以是逐位操作,也可是多层栅格数据集的叠加。因此,栅格数据更能适应全球环境下的大范围多维、多源空间信息数据的动态分析。
本文首先介绍了CUDA架构,详细说明了CUDA的编程模型,CPU+GPU的异构并行架构原理。
通过结合ARCGIS空间分析模块,对地图代数中局部算子描述进行了算法研究,实现其在CPU下的串行计算模块。然后基于地图代数局部算子的特点,依据并行计算中计算问题表现的特征进行了算子的筛选,为下一步CUDA的并行设计做好了铺垫工作。
接着,本文针对局部算子能在任何CUDA设备上计算运行,但它的执行速度很大程度上取决于每个设备的资源约束的特点。在进行CUDA编程的时候,通过探索CUDA存储器特点,SM动态划分原理,数据预存技术以及根据硬件条件自动分配计算空间的研究来寻求一种能够合理的映射策略来尽可能的减轻资源的限制,提高程序运行的性能。
最后,本文按照局部函数的分类,围绕局部函数的每个算子展开基于CUDA编程模型的并行映射研究与实现,并给出了相同栅格数据在CPU和GPU两种架构下的时间复杂性的比较;最后在对比较结果进行分析的基础上,提出了适合并行算法实现的改进策略。
综上所述,高性能计算环境CUDA作为一个全新的软硬件架构,把GPU视为一个并行数据计算的设备,成功的将GPU的高计算能力充分开发了出来。这也预示着CUDA将会引领高性能运算的革命。