一种确定微、纳电子结构的方法及装置的制作方法

文档序号:6365655阅读:213来源:国知局
专利名称:一种确定微、纳电子结构的方法及装置的制作方法
技术领域
本发明涉及高性能计算领域在计算物理学和纳米材料科学方面的应用,具体涉及ー种确定微、纳电子结构的方法及装置。
背景技术
随着人类社会的不断进步,科学技术的发展,人们对自然界的认识越来越广泛,并逐步的向微、纳观等物理体系结构深入。与此同时,生物技术、化学生产及制药的需求,也迫切的要求人们能够在电子、原子或分子尺度上来精确把握物体的性态。但遗憾的是,微观体系往往动辄包括成千上万个电子和原子,而对多体问题的求解一直是物理学界的难题。自上世纪量子力学理论诞生以来,人们逐渐发展了像绝热近似、哈特里近似、哈特里-福克近似(Hartree-Fock)、密度泛函理论(DFT)、变分法(Variational Method)、随机相近似(Random-Phase Approximation)以及组态相互作用(Configuration Interaction)等等来计算微观结构的多体问题。为了使可以计算的粒子数目尽可能的多,这里面大多数计算方法都是近似的,而组态相互作用方法却是ー种数值精确的计算方法,因此对于研究半导体量子结构(量子点、量子环等),以及纳米材料来说,组态相互作用方法是ー种非常合适并且已被广泛使用的方法。组态相互作用方法是将多粒子体系的波函数看作是所有可能的单粒子占据态的叠加,因此所考虑的单粒子占据态的数目越多,计算的结果也就越精确。我们考虑ー个含有N个粒子的系统,计算中我们使用M个可能的单粒子态,那么多粒子哈密顿(Hamiltonian)矩阵的维度将是Cfl ,由此可见随着所考虑到单粒子态的数目M的增多,矩阵的维度将会急骤的増大。特别的,粒子间还存在着长程相互作用,如电子-电子,电子-质子间的库仑相互作用,在哈密顿量矩阵元的计算中,这是ー个四重积分。这将意味着,我们每初始化ー个哈密顿量矩阵元就将计算多个四重积分,因此组态相互作用方法的计算量巨大,这也阻碍了组态相互作用方法所能计算的物理体系的大小。为了简化计算,人们在研究微观量子体系或纳米材料的时候,往往使用抛物限制势(实际上,选取不同类型的限制势在能谱上可能会有定量的不同,但对于我们所感兴趣的物理图像却并不会受到影响),这是因为在抛物限制势下。库仑积分可以解析的求出。然而遗憾的是,经过复杂的计算,我们会发现四重积分将会变成ー个十重求和,实现上并没有简化多少,唯一的优点只是通过循环计算所得的结果是精确的。即使利用超级计算机,现在所能计算的电子数也仅仅14个左右,小的计算机系统所能够计算的电子数目就更少了。而事实上在整个过程中,绝大部分的时间都消耗在了哈密顿矩阵元的初始化计算上,如果我们可以加速哈密顿矩阵元的初始化,那么整个计算并不会花费太多的时间。

发明内容
本发明所要解决的技术问题是,提供ー种确定微、纳电子结构的方法及装置,以提高确定微、纳电子结构的效率。、
为了解决上述技术问题,本发明公开了ー种确定微、纳电子结构的方法,包括利用中央处理器(CPU)求解单粒子问题,图形处理器(GPU)将求解得到的各单粒子占据态存放在线性内存中作为初始參数;将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将所述初始參数传入所述GPU的显存,将计算中需要频繁访问的參数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵対角化求得本征能量和本征态矢。较佳地,上述方法中,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离指将多次使用的库仑积分単独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目決定。 较佳地,上述方法中,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应的过程如下利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统ー设备架构(CUDA)的三重线程模型对应起来,得到网格(网格O、块(i,j)、线程(p,q))。较佳地,上述方法中通过调用所述GPU的内核函数计算库仑积分。本发明还公开了ー种确定微、纳电子结构的装置,包括中央处理器(CPU)和图形处理器(GPU),其中所述CPU,求解单粒子问题,并将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢;图形处理器(GPU),将求解得到的各单粒子占据态存放在线性内存中作为初始參数,以及将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,井根据所述初始參数,计算库仑积分,将计算结果回传到主机内存。较佳地,上述装置中,所述CPU,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离是将多次使用的库仑积分単独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目決定。较佳地,上述装置中,所述GPU,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应指利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统ー设备架构(CUDA)的三重线程模型对应起来,得到网格(网格O、块(i,j)、线程(p,q))。 较佳地,上述装置中,所述GPU通过调用内核函数计算库仑积分。本申请技术方案,在确定微、纳电子结构的过程中,利用GPU(Graphic ProcessingUnit,图形处理器)来加速大规模哈密顿(Hamiltonian)矩阵初始化计算,从而提高确定微、纳电子结构的最终效率。并且使得以往需要借助大型超级计算机才能完成的计算轻松的转移到桌面等个人超算平台上。极大的方便了研究人员对微、纳体系做更深入的探索和发现。


图I为本发明所采用的问题空间与GPU计算线程的对应关系示意图;图2为本发明方法的流程图;图3为采用本发明方案和传统方案的对比结果图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进ー步详细说明。需要说明的是,在不冲突的情况下 ,本申请的实施例和实施例中的特征可以任意相互组合。实施例I本发明申请人考虑到可利用GPU来加速组态相互作用方法中库仑积分的计算,从而充分发挥GPU众核结构的多计算处理单元、高带宽优势,以及CPU的逻辑处理能力和主内存的大容量优势,来大幅缩短对少粒子体系的计算模拟时间。针对组态相互作用的计算特点,申请人将确定微、纳电子结构的过程分为两个主要步骤初始化哈密顿量矩阵元(即计算库仑相互作用积分)和哈密顿矩阵对角化。其中,初始化哈密顿量矩阵元时,需要初始化的矩阵元数目巨大(C^ X 个),故要求较多的计算资源和较高的存储器带宽,但相应的对存储器的容量需求较小,因此申请人提出可以将这部分计算移植到GPU上来完成。而计算哈密顿矩阵対角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此申请人提出将其交给CPU来完成。具体来说,本实施例中确定微、纳电子结构的方法包括如下步骤利用中央处理器(CPU)求解单粒子问题,图形处理器(GPU)将求解得到的各单粒子占据态存放在线性内存中作为初始參数;将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将所述初始參数传入所述GPU的显存,将计算中需要频繁访问的參数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵対角化求得本征能量和本征态矢。需要说明的是,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离时,是将多次使用的库仑积分単独分离出来,从而形成库仑积分矩阵,而所形成的库仑积分矩阵的规模由所选取的单粒子态数目決定。然后GPU再利用库仑积分间的非相关性,将生成的库仑积分矩阵与计算统ー设备架构(CUDA)的三重线程模型对应起来,即同Grid, Block, Thread 对应起来。下面假设使用CUDA在Nvidia C2050加速卡上实现含有两个电子的抛物限制势量子点的计算,对本发明中的关键步骤进行详细说明,对于更多电子(粒子)的情形或其他介观体系(量子环等)的实现方式与之相同。图I所示,为本实施例所涉及的问题解空间与GPU中计算线程的对应关系。由于多体相互作用的哈密顿量矩阵元中均含有ニ体的库仑相互作用积分,而库仑积分是与两电子所在的占据态相关的,占据态的最大数目为前面所述的M,也就是库仑积分下标i,j,p,q均从I到M遍历,因此可将库仑积分单独生成库仑矩阵Coulomb (i, j,p, q)。现在的CUDA架构把GPU的线程空间划分为grid,block和thread三重结构,简单起见,可以直接把库仑矩阵的(i,j)变量与block联系起来,(p, q)与thread联系起来,即block(i, j)和thread(p,q)。由于各库仑矩阵之间并无相互作用,也就是和block及thread之间无需数据通信,因此,可以看出,图I所示的解空间到线程的简单映射可行且高效。接下来结合图2说明确定微、纳电子结构的具体过程步骤200,利用CPU求解单粒子问题,GPU将求解得到的各单粒子占据态存放在一线性内存中,做为初始參数;步骤201,利用CPU多次分离库仑积分,得到库仑积分矩阵Coulomb(i, j, p, q);此步骤是将哈密顿量矩阵元中库仑相互作用部分单独提取出来,并按下标顺序(i,j,P,q)生成四维库仑积分矩阵空间,如图I所示。 步骤202,根据库仑积分组合规律划分计算网格(gridO、block(i, j)、thread(p,q))(如图I所示),传递初始參数到显存,并将计算中需要频繁访问的參数放到GPU的共享存储器中(shared memory);步骤203,调用GPU内核函数(kernel函数)计算库仑积分,并将各线程对应的结果存放到显存中;步骤204,将计算完成的库仑矩阵从显存拷贝到主机内存中;步骤205,生成哈密顿矩阵,在CPU上做矩阵对角化计算;该步骤中,在CPU上调用Lapack等数学库来完成矩阵对角化计算。步骤206,完成计算得到本征能量和本征态矢。从上述实施例可以看出,本申请技术方案充分剖析了组态相互作用算法的计算负载特点,并充分利用了计算机中的各种计算资源,大幅加速了使用组态相互作用方法对含有少量电子(粒子)的量子体系、原子、分子等的精确模拟计算。例如对ニ电子抛物限制势量子点,可以轻松得到21. 58倍的加速比,如图3所示,且算法简单,比较易于实现和扩展,可以极大的利用有限的计算资源加速半导体、材料和纳米等科学方面的研究,并且还比较f 倉^:。实施例2本实施例介绍ー种确定微、纳电子结构的装置,该装置可实现上述实施例I的方法。本实施例中,该装置至少包括中央处理器(CPU)和图形处理器(GPU)。CPU,求解单粒子问题,并将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢;需要说明的是,上述CPU,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离时,是将多次使用的库仑积分単独分离出来,形成库仑积分矩阵,而所形成的库仑积分矩阵规模由所选取的单粒子态数目決定。GPU,将求解得到的各单粒子占据态存放在线性内存中作为初始參数,以及将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,井根据所述初始參数,计算库仑积分,将计算结果回传到主机内存。具体地,上述GPU将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应时主要利用了库仑积分间的非相关性,将所述库仑积分矩阵与CUDA的三重线程模型对应起来,从而得到网格(网格O、块(i,j)、线程(P,q))具体的对应过程可参见实施例1,在此不再赘述。另外,GPU计算库仑积分时,可通过调用内核函数来实现。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范 围之内。
权利要求
1.一种确定微、纳电子结构的方法,其特征在于,该方法包括 利用中央处理器(CPU)求解单粒子问题,图形处理器(GPU)将求解得到的各单粒子占据态存放在线性内存中作为初始参数; 将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将所述初始参数传入所述GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢。
2.如权利要求I所述的方法,其特征在于,将多粒子相互作用体系哈密顿量矩阵元中 的粒子-粒子库仑积分进行分离指 将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定。
3.如权利要求2所述的方法,其特征在于,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应的过程如下 利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构(CUDA)的三重线程模型对应起来,得到网格(网格O、块(i,j)、线程(p,q))。
4.如权利要求I至3任一项所述的方法,其特征在于,通过调用所述GPU的内核函数计算库仑积分。
5.一种确定微、纳电子结构的装置,其特征在于,该装置包括中央处理器(CPU)和图形处理器(GPU),其中 所述CPU,求解单粒子问题,并将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢; 图形处理器(GPU),将求解得到的各单粒子占据态存放在线性内存中作为初始参数,以及将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,并根据所述初始参数,计算库仑积分,将计算结果回传到主机内存。
6.如权利要求5所述的装置,其特征在于, 所述CPU,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离是将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定。
7.如权利要求6所述的装置,其特征在于, 所述GPU,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应指利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构(CUDA)的三重线程模型对应起来,得到网格(网格O、块(i,j)、线程(p,q))。
8.如权利要求5至7任一项所述的装置,其特征在于,所述GPU通过调用内核函数计算库仑积分。
全文摘要
本发明公开了一种确定微、纳电子结构的方法及装置,涉及高性能计算领域。本发明公开的方法包括GPU将CPU求解得到的各单粒子占据态存放在线性内存中作为初始参数;将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将初始参数传入GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢。本发明还公开了一种确定微、纳电子结构的装置。本申请技术方案提高了确定微、纳电子结构的最终效率。
文档编号G06F17/16GK102663149SQ20121005195
公开日2012年9月12日 申请日期2012年3月1日 优先权日2012年3月1日
发明者刘羽 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1