论文部分内容阅读
并行计算将成为计算机发展的一种趋势,因为传统的CPU串行计算已不能满足发展的要求。特别是在科学计算领域,许多计算都需要大量的计算。在以往的研究中,大部分的计算都需要在高配置的小型机或计算机集群上才能完成。但是这两者的使用在时间和经济上都需要巨大的开销,一些研究者们根本没有条件或机会使用这种设备,从而导致科学研究中许多复杂问题难以解决。图形处理器(GPU)的出现为解决上述问题提供了可能。GPU具有强大的浮点数计算能力和并行计算能力,较CPU而言更适合大数据量的浮点运算。在GPU平台上进行金刚石膜生长仿真,不仅能够提高效率,还能有效减少经济成本上的投入。统一设备计算架构(CUDA)是一种基于GPU的通用并行计算架构,这种架构使GPU能够解决复杂的计算问题。它采用了比较容易掌握的类C语言进行开发,无需重新学习新语言的语法。编写出的程序就能在支持CUDA的处理器上以超高性能运行。本文以CUDA平台为基础,对金刚石膜生长仿真进行了研究。本文首先介绍了CUDA技术,包括CUDA的软硬件架构、程序结构、线程结构以及存储器模型等。随后介绍了金刚石膜生长仿真的两种方法—动力学蒙特卡罗(KMC)和分子动力学(MD)—的基本原理,并在CPU和CUDA平台上分别对其进行实现。针对KMC的特点,本文以增加数据来对全局存储器的访问进行优化,通过使用常数存储器来增加程序的运行效率,并对grid和block的维度进行合理的设计从而提高了GPU的计算效率。MD方法中分子间作用力的计算占总计算量的比重很大,原始计算模型不能完全发挥GPU的特性。针对这个问题,本文对该模型进行了改进,使用共享存储器对原程序进行优化。由于共享存储器的容量有限,本文采用迭代的方式来读入网格数据,并用叠加的方式计算分子间作用力。最后通过实验对三种实现方法进行对比。结果显示,CUDA在最好的情况下能得到75倍的加速效果。