首页> 中国专利> 一种利用GPU加速介观体系物理问题求解的方法

一种利用GPU加速介观体系物理问题求解的方法

摘要

本发明提供一种利用GPU加速介观体系物理问题求解的方法,该方法充分利用了GPU所拥有的超强的浮点计算能力和较大的内存带宽等众核处理器的特点,将介观问题求解中占用机时最长的哈密顿量矩阵初始化计算工作交给GPU协处理,而传统的矩阵对角化的工作依然由串行计算能力较强的CPU来完成,从而实现介观物理问题求解的加速。在计算过程中,我们利用哈密顿量矩阵元计算相对独立的特点,实现了从问题空间到GPU线程空间的简单映射,从而保证了算法的易用性和高可扩展性。

著录项

  • 公开/公告号CN102663207A

    专利类型发明专利

  • 公开/公告日2012-09-12

    原文格式PDF

  • 申请/专利权人 浪潮电子信息产业股份有限公司;

    申请/专利号CN201210128993.1

  • 发明设计人 刘羽;

    申请日2012-04-28

  • 分类号G06F17/50;

  • 代理机构

  • 代理人

  • 地址 250014 山东省济南市高新区舜雅路1036号

  • 入库时间 2023-12-18 06:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-07

    授权

    授权

  • 2014-03-19

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20120428

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

本发明涉及高性能计算领域在计算物理学和纳米材料科学方面的应用,具体涉及一种利用GPU来加速介观体系物理问题求解中的大规模哈密顿(Hamiltonian)矩阵初始化计算,来求解微、纳电子结构的方法。具体地说是一种利用GPU加速量子介观体系求解的方法。

背景技术

随着人类社会的不断进步,科学技术的发展,人们对自然界的认识越来越广泛,并逐步的向微、纳观等物理体系结构深入。与此同时,生物技术、化学生产及制药的需求,也迫切的要求人们能够在电子、原子或分子尺度上来精确把握物体的性态,因此对介观体系的研究是与人类的生活密切关。就信息产业来说,现在的微处理器及存储器芯片的基本组成单元–晶体管的尺度已经达到了几十个纳米,已处理介观体系的范畴。通过对介观物理体系的研究,一方面可以给出现有器件尺寸减小的下限,此时原来的理论分析方法,诸如欧姆定律等均已不再适用;另一方面,新发现的物理现象也为制作新型量子器件及新型材料提供了物理学基础,如量子点激光器等。

一般说来属于介观范畴的物理体系种类很多,包括量子点(也称作人造原子)、量子环、纳米线、纳米弹簧等等。实现从理论上对这些介观物理体系的研究和计算对实验研究以及量子器件的制备具有重要的现实意义。自上个世纪量子力学理论诞生以来,人们逐步发展了诸如绝热近似、哈特里近似、哈特里-福克近似(Hartree-Fock)、密度泛函理论(DFT)、变分法(Variational Method)、随机相近似(Random-Phase Approximation)、分子动力学方法以及组态相互作用(Configuration Interaction)方法等等,来计算介观体系的物理问题。这些方法适用于不同的场合,对特定的介观体系有不错的计算效果。但对于需要考虑电子自旋的介观体系或稀磁半导体等物理问题,人们往往还是从介观体系的严格的系统哈密顿量出发,通过选取合适的基矢函数将哈密顿算符展开成哈密顿矩阵,并通过求解量子力学本征值问题来得到介观的各物理量。相比较而言,该基展开哈密顿量的方法物理意义明确,且是数值精确的,只要基矢的数目足够多,所得到的结果将是严格的。

在实际计算过程中,根据所研究介观体系的拓扑结构特点,人们往往选用不同的基矢以达到最快速收敛的目的。常用的基矢有:平面波型基矢、勒让德型基矢、贝塞尔基矢、拉盖尔基矢等等。为了使计算的结果尽可能的精确或计算体系的需求,实际往往需要大量的基矢(设为M),但随着基矢数目的增多,哈密顿矩阵的规模也急剧的扩大(M2),从而导致哈密顿矩阵的初始化工作繁重,甚至于计算中绝大部分的时间都将花费在哈密顿矩阵元的初始化计算上。如果我们可以加速哈密顿矩阵元的初始化,那么整个计算并不会花费太多的时间。因此,如何加速哈密顿矩阵元初始化是本发明所要解决的主要问题。

发明内容

本发明的目的是设计一种利用GPU来加速介观体系物理问题哈密顿量矩阵元基矢展开求解的方法,从而充分发挥GPU众核结构的多计算处理单元、高带宽优势,以及CPU的逻辑处理能力和主内存的大容量优势,来大幅缩短对介观体系的计算模拟时间。

本发明的目的是按以下方式实现的,针对基矢展开计算的特点,将计算过程分为两个主要步骤:初始化哈密顿量矩阵元和哈密顿矩阵对角化,对于初始化哈密顿量矩阵元,由于需要初始化的矩阵元数目相对较大,要求较多的计算资源和较高的存储器带宽,而相应的对存储器的容量需求较小,因此我们将这部分计算移植到GPU上来完成,而即哈密顿矩阵对角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此我们将其交给CPU来完成,将介观物理体系哈密顿量矩阵元独立出来,然后将由这些独立的矩阵元所构成的问题解空间同GPU中的线程空间相对应,将内存中的初始参数传入GPU设备显存,并在设备上计算矩阵元,完毕后拷贝结果回主机内存,从而完成介观体系哈密顿量矩阵初始化,再利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢,从而有效加速介观物理问题求解的计算,具体步骤如下:

1)将问题解空间同GPU线程空间相对应,利用哈密顿量矩阵元之间的非相关性,将矩阵元与CUDA的三重线程模型对应起来,即同Grid,Block,Thread对应起来,问题的规模与计算中所使用的基矢数目有关;

2)  将参数传入显存并执行运算,将基矢系数等参数传递给显存,包括与所使用基矢有关的贝塞尔零点,并将少数调用频繁的参数存放在缓存中,执行设备端的kernel函数完成计算;

3)对角化哈密顿矩阵,是利用步骤2)生成结果完成哈密顿矩阵的初始化工作,并在CPU上调用Lapack数学库来完成计算;

给出了本发明所涉及的问题空间与GPU中计算线程的对应关系,使用勒让德(                                                )、贝塞尔()或拉盖尔()多项式作为基矢至少含有两个指标n,m需要遍例,因此每一个哈密顿矩阵元含有四个指标维度,因此认为介观体系的问题空间是四维的,我们将哈密顿矩阵元构成我们的问题空间;

按现行的CUDA架构,把GPU的线程空间划分为grid,block和thread三重结构,简单起见,直接把问题空间的(q, p)变量与block联系起来,(n, m)与thread联系起来,即block(q, p)和thread(n, m),由于各哈密顿矩阵元之间并无相互作用,也就是说block及thread之间无需数据通信,因此问题空间到线程的简单映射可行且高效;

基本程序架构和组织流程如下:

1)写出介观体系物理问题的体系哈密顿量,选择合适的基矢展开哈密顿算符,给出哈密顿矩阵元的表达式;

2)分离哈密顿矩阵元H(q, p, n, m);

3)根据问题空间(H(q, p, n, m))组合规律划分计算网格(grid0、block(q, p)、thread(n, m)),传递输入参数到显存,并将计算中需要频繁访问的参数放到GPU的共享存储器中(shared memory);

4)调用设备端函数,计算哈密顿矩阵元,并将各线程对应的结果存放到显存中;

5)将计算完成的矩阵元从显存拷贝到内存中;

6)生成哈密顿矩阵,在CPU上做矩阵对角化操作;

7)完成计算得到能谱或根据上一步解出的结果计算其他物理量。

本发明的有益效果是:本发明所采用的算法可以极大的加速介观物理体系问题的求解速度,且算法简单,比较易于实现和扩展,可以极大的利用有限的计算资源加速半导体、材料和纳米等科学方面的研究,并且还比较节能。

本发明提供一种利用GPU来加速计算物理学、材料物理和纳米科学中被广泛研究的介观体系,如:量子点、量子环、纳米线,等物理问题的计算求解。本发明简单、实用,可以方便而有效的加速介观物理问题的求解过程,对介观体系的研究工作具有实际的应用意义。

附图说明

图1是问题空间与GPU计算线程的对应关系;

图2是计算方法流程图。

具体实施方式

参照说明书附图对本发明的方法作以下详细地说明:

本发明针对基矢展开计算的特点,将计算过程分为两个主要步骤:初始化哈密顿量矩阵元(即使用基矢展开哈密顿量算符)和哈密顿矩阵对角化。对于前者由于需要初始化的矩阵元数目相对较大(个),要求较多的计算资源和较高的存储器带宽,而相应的对存储器的容量需求较小,因此我们可以将这部分计算移植到GPU上来完成。而后者,即哈密顿矩阵对角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此我们将其交给CPU来完成。

具体来说,大体可分为如下几个内容:

1.  划分问题空间;

2.  拷贝输入参数到设备存储器(显存);

3.  设备端计算(GPU);

4.  返回计算结果;

5.  生成哈密顿量矩阵;

6.  哈密顿矩阵对角化。

实施例

为了使本发明的目的、技术方案和优势叙述清晰,结合附图,对本发明中的关键步骤进行详细说明。

如附图1所示,给出了本发明所涉及的问题空间与GPU中计算线程的对应关系。一般来讲,使用勒让德()、贝塞尔()或拉盖尔()多项式作为基矢至少含有两个指标n,m需要遍例,因此每一个哈密顿矩阵元含有四个指标维度,因此可以认为介观体系的问题空间是四维的。我们将哈密顿矩阵元构成我们的问题空间。

按现行的CUDA架构,把GPU的线程空间划分为grid,block和thread三重结构,简单起见,可以直接把问题空间的(q, p)变量与block联系起来,(n, m)与thread联系起来,即block(q, p)和thread(n, m)。由于各哈密顿矩阵元之间并无相互作用,也就是说block及thread之间无需数据通信,因此附图1所示的问题空间到线程的简单映射可行且高效。

附图2为本发明算法的具体流程图。基本的程序架构和组织流程为:

1. 写出介观体系物理问题的体系哈密顿量,选择合适的基矢展开哈密顿算符,给出哈密顿矩阵元的表达式;

2. 如附图1所示,分离哈密顿矩阵元H(q, p, n, m);

3. 根据问题空间(H(q, p, n, m))组合规律划分计算网格(grid0、block(q, p)、thread(n, m)),传递输入参数到显存,并将计算中需要频繁访问的参数放到GPU的共享存储器中(shared memory);

4. 调用设备端函数(kernel函数)计算哈密顿矩阵元,并将各线程对应的结果存放到显存中;

5. 将计算完成的矩阵元从显存拷贝到内存中;

6. 生成哈密顿矩阵,在CPU上做矩阵对角化操作;

7. 完成计算得到能谱,或根据上一步解出的结果计算其他物理量。

本发明的方法,充分剖析了组态相互作用算法的计算负载特点,并充分利用了计算机中的各种计算资源,大幅加速了使用基矢展开的方法对介观体系的精确模拟计算。并且使得以往需要借助大型超级计算机才能完成的计算轻松的转移到桌面等个人超算平台上,极大的方便了研究人员对微、纳体系做更深入的探索和发现。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号