基于GPU快速生成电镜像的算法研究
【摘要】:随着大数据和人工智能(AI)的高速发展,中央处理器(CPU)在大数据并行计算上显得力不从心,越来越多的软件开发人员开始使用计算机硬件中的图形处理器(GPU)的多线程并行计算来获得更高的性能和效率,使一些大规模且复杂的计算相比CPU运算节省了几倍甚至几十倍的时间。为了分析晶体的原子尺寸的结构,透射电子显微镜(TEM)及像模拟技术是重要且不可少的工具,实际应用中,常通过商业软件或非商业软件来模拟TEM图像,之后通过与实验图像进行比较来确定晶体的原子结构。扫描透射电子显微镜(STEM)、高分辨率透射电子显微镜(HRTEM)以及汇聚束电子衍射(CBED)是TEM的三种基本成像模式。在像模拟中,首先需要考虑的就是模拟的准确性,影响像模拟的准确性的因素有很多,例如:计算势场时,考虑所计算的原子是中性原子还是具有离子性的原子。热弥漫散射(TDS)效应以何种形式影响原子势场,使用冷冻声子(FP)模型还是复数形式势场形式等。完整的像模拟过程包括三个部分:原子势场的模拟、出射波函数的模拟、以及TEM电子光学系统中的成像。此外,由于在STEM模拟中采取的是对样品进行逐点扫描的成像方式,因此STEM模式下的计算精度和效率对于STEM图像模拟尤为重要。本文基于GPU多线程并行计算开发了快速生成电镜像的代码,并且使用MATLAB开发了简洁易用的客户端,该软件名为To TEM,支持Windows和Linux系统,可以快速方便地模拟透射电子显微镜的图像。To TEM中包含了Peng提出的五个高斯函数形式的散射因子计算方式,以及目前最精确的Lobato提出的散射因子的计算参数,能够用这两种计算方法计算原子势场。另外,本文也对五个高斯形式的势场进行了修正。更重要的是,本软件采用了课题组提出的改进多层法,模拟出射波,该方法考虑到每个原子的三维形状,考虑了每个原子的势场影响到上下多层中,将势场快速地分配到多层,能够准确的反映出同层中不同原子的高度信息。此外,利用NVIDIA通用并行计算架构CUDA开发了电子势场计算和波传播计算代码,利用GPU内置强大的批量(反)快速傅里叶变换运算能力,通过GPU多线程并行计算方式大大加快了扫描透射电子显微镜和积分差分相位衬度(IDPC)的模拟速度。在装有NVIDIA GPU的个人计算机上模拟了Sr Ti O_3的超级晶胞,并对比MATLAB使用CPU多线程计算的时间。这些测试验证了To TEM的计算速度和精度,并证明了其在模拟尺寸较大晶体时的优势。