首页> 中文学位 >光子晶体带结构计算FDTD方法的GPU实现研究
【6h】

光子晶体带结构计算FDTD方法的GPU实现研究

代理获取

目录

声明

致谢

摘要

序言

1 引言

1.1 光子晶体带隙计算的一般方法

1.2 基于GPU的通用计算架构

1.3 本文的主要工作

2 基于FDTD算法的光子晶体理论分析

2.1 光子晶体基础理论

2.1.1 光子晶体概述

2.1.2 固体物理学基础与光子晶体特性

2.1.3 光子晶体的应用

2.2 FDTD算法基础

2.2.1 FDTD算法基本方程

2.2.2 数值稳定性

2.2.3 边界条件

2.3 本章小结

3 GPU结构和CUDA编程架构

3.1 基于GPU的CUDA架构

3.2 CUDA软件编程架构

3.2.1 主机、设备及内核函数

3.2.2 线程层次与内存层次

3.2.3 硬件映射

3.3 本章小结

4 GPU编程在光子晶体能带的FDTD计算中的应用

4.1 二维光子晶体格点分布与CUDA线程的映射

4.1.1 二维光子晶体带隙计算的FDTD算法公式推导

4.1.2 空间格点与线程映射

4.2 串行和并行FDTD算法流程图

4.3 算法的具体编程实现

4.3.1 创建*.cuf格式工程项目

4.3.2 CPU端参数初始化、内存和显存分配空间

4.3.3 单波矢条件下迭代时间计时

4.3.4 GPU内核函数调用

4.3.5 场值后处理,本征频率计算

4.4 计算结果的对比和分析

4.5 一维光子晶体带隙GPU加速算例

4.6 二维六角光子晶体带隙GPU加速算例

4.7 本章小结

5 结论

参考文献

作者简历及攻读硕士学位期间取得的研究成果

学位论文数据集

展开▼

摘要

光子晶体是一种介电常数及磁导率周期分布的人工材料或结构,当电磁波在光子晶体中传播时,受其周期结构的影响,会产生能阻止各个方向波通过的全带隙。计算光子晶体带隙是光子晶体理论研究的一个重要领域。时域有限差分(Finite-difference time-domain,FDTD)方法是光子晶体带隙计算的一种常用方法。尽管这种方法有其自身的优点和普遍性,但是由于计算精度和数值稳定性要求,FDTD方法一般需采用较细密的空间网格和较小的时间步长,因而在计算的结构规模较大时,需消耗大量的计算资源,导致计算较为耗时。然而FDTD方法可以并行执行,FDTD整个的计算过程可以很容易的划分为多个子计算过程,而子计算过程之间同时进行着,在计算过程中,仅存在边界值交换的问题。因此,FDTD是一种天然的并行计算方法,特别适用于多线程并行加速计算。在这项工作里面,我们在图形处理器(Graphics processor unit,GPU)上实现对光子晶体带隙的计算,GPU特别适合于高度并行以及数据密集型任务型的计算。统一设备计算架构(CompureUnified Device Architecture,CUDA)是最新的可编程多线程的通用GPU计算模型,CUDA架构被NIVDIA公司提出后更使得GPU的应用扩展到各个领域。基于CUDA的多线程并行计算解决方案,能够很好地将FDTD算法在GPU上有效实现。传统的串行时域有限差分算法在每一步时域迭代过程中逐点迭代运算,在编程中采用多重循环来求解FDTD计算区域的每一个元胞;而基于GPU并行的FDTD加速算法,就是将上述串行逐步迭代的计算问题并行化。CUDA架构中,被抽象化的线程并行操作一个或若干个Yee格点的迭代计算,这充分利用了GPU硬件中含有成百上千乃至上万个执行单元(Arithmetic and Logic Unit,ALU)的优势,从而并行化地完成所有Yee原胞在计算区域所需的乘法和加法计算,最终得以提高计算速度。这项工作是在GTX650显卡以及英特尔I5酷睿CPU上完成的。文中给出了技术实现的细节,同时给出了一些算例。结果表明,在空间网格规模足够大时,通过对并行执行算法适当的设计,GPU相对于CPU的计算效率的提高也变得明显。对于每个维度上包含数百个离散单元的二维网格,计算速度可提升10倍以上,并且准确性方面没有损失。结果证明了GPU实现是加速光子晶体能带计算FDTD方法的有效方式。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号