CN102663207B - 一种利用gpu加速量子介观体系求解的方法 - Google Patents
一种利用gpu加速量子介观体系求解的方法 Download PDFInfo
- Publication number
- CN102663207B CN102663207B CN201210128993.1A CN201210128993A CN102663207B CN 102663207 B CN102663207 B CN 102663207B CN 201210128993 A CN201210128993 A CN 201210128993A CN 102663207 B CN102663207 B CN 102663207B
- Authority
- CN
- China
- Prior art keywords
- hamiltonian
- matrix
- gpu
- thread
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 6
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000001228 spectrum Methods 0.000 claims description 3
- 238000004064 recycling Methods 0.000 claims description 2
- 230000008859 change Effects 0.000 claims 1
- 235000015170 shellfish Nutrition 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 abstract description 5
- 238000013507 mapping Methods 0.000 abstract description 2
- 230000001133 acceleration Effects 0.000 abstract 1
- 238000011156 evaluation Methods 0.000 abstract 1
- 238000011160 research Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 4
- 239000002096 quantum dot Substances 0.000 description 3
- 238000003775 Density Functional Theory Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002070 nanowire Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- -1 Quantum Rings Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012824 chemical production Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003780 keratinization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000004800 variational method Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Semiconductor Memories (AREA)
Abstract
本发明提供一种利用GPU加速介观体系物理问题求解的方法,该方法充分利用了GPU所拥有的超强的浮点计算能力和较大的内存带宽等众核处理器的特点,将介观问题求解中占用机时最长的哈密顿量矩阵初始化计算工作交给GPU协处理,而传统的矩阵对角化的工作依然由串行计算能力较强的CPU来完成,从而实现介观物理问题求解的加速。在计算过程中,我们利用哈密顿量矩阵元计算相对独立的特点,实现了从问题空间到GPU线程空间的简单映射,从而保证了算法的易用性和高可扩展性。
Description
技术领域
本发明涉及高性能计算领域在计算物理学和纳米材料科学方面的应用,具体涉及一种利用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对应起来,问题的规模与计算中所使用的基矢数目有关;
3)将参数传入显存并执行运算,将基矢系数等参数传递给显存,包括与所使用基矢有关的贝塞尔零点,并将少数调用频繁的参数存放在缓存中,执行设备端的kernel函数完成计算;
3)对角化哈密顿矩阵,是利用步骤2)生成结果完成哈密顿矩阵的初始化工作,并在CPU上调用Lapack数学库来完成计算;
给出了本发明所涉及的问题空间与GPU中计算线程的对应关系,使用勒让德贝塞尔或拉盖尔多项式作为基矢|n,m>至少含有两个指标n,m需要遍例,因此每一个哈密顿矩阵元〈pq|H|nm〉含有四个指标维度,因此认为介观体系的问题空间是四维的,将哈密顿矩阵元H(q,p,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是计算方法流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明针对基矢展开计算的特点,将计算过程分为两个主要步骤:初始化哈密顿量矩阵元(即使用基矢展开哈密顿量算符)和哈密顿矩阵对角化。对于前者由于需要初始化的矩阵元数目相对较大(M×M个),要求较多的计算资源和较高的存储器带宽,而相应的对存储器的容量需求较小,因此可以将这部分计算移植到GPU上来完成。而后者,即哈密顿矩阵对角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此将其交给CPU来完成。
具体来说,大体可分为如下几个内容:
1.划分问题空间;
2.拷贝输入参数到设备存储器(显存);
3.设备端计算(GPU);
4.返回计算结果;
5.生成哈密顿量矩阵;
6.哈密顿矩阵对角化。
实施例
为了使本发明的目的、技术方案和优势叙述清晰,结合附图,对本发明中的关键步骤进行详细说明。
如附图1所示,给出了本发明所涉及的问题空间与GPU中计算线程的对应关系。一般来讲,使用勒让德贝塞尔或拉盖尔多项式作为基矢|n,m>至少含有两个指标n,m需要遍例,因此每一个哈密顿矩阵元〈pq|H|nm〉含有四个指标维度,因此可以认为介观体系的问题空间是四维的。将哈密顿矩阵元H(q,p,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.完成计算得到能谱,或根据上一步解出的结果计算其他物理量。
本发明的方法,充分剖析了组态相互作用算法的计算负载特点,并充分利用了计算机中的各种计算资源,大幅加速了使用基矢展开的方法对介观体系的精确模拟计算。并且使得以往需要借助大型超级计算机才能完成的计算轻松的转移到桌面等个人超算平台上,极大的方便了研究人员对微、纳体系做更深入的探索和发现。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种利用GPU加速介观体系物理问题求解的方法, 其特征在于针对基矢展开计算的特点,将计算过程分为两个主要步骤:初始化哈密顿量矩阵元和哈密顿矩阵对角化,对于初始化哈密顿量矩阵元,由于需要初始化的矩阵元数目相对较大,要求较多的计算资源和较高的存储器带宽,而相应的对存储器的容量需求较小,因此我们将这部分计算移植到GPU上来完成,哈密顿矩阵对角化,就是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此将计算交给CPU来完成,将介观物理体系哈密顿量矩阵元独立出来,然后将由这些独立的矩阵元所构成的问题解空间同GPU中的线程空间相对应,将内存中的初始参数传入GPU设备显存,并在设备上计算矩阵元,完毕后拷贝结果回主机内存,从而完成介观体系哈密顿量矩阵初始化,再利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢,从而有效加速介观物理问题求解的计算,具体步骤如下:
1)将问题解空间同GPU线程空间相对应,利用哈密顿量矩阵元之间的非相关性,将矩阵元与CUDA的三重线程模型对应起来,即同Grid,Block,Thread对应起来,问题的规模与计算中所使用的基矢数目有关;
2)将参数传入显存并执行运算,将基矢系数参数传递给显存,包括与所使用基矢有关的贝塞尔零点,并将少数调用频繁的参数存放在缓存中,执行设备端的kernel函数完成计算;
3)对角化哈密顿矩阵,利用2)生成计算结果完成哈密顿矩阵的初始化工作,并在CPU上调用Lapack数学库来完成计算;
通过计算给出了所涉及的问题空间与GPU中计算线程的对应关系,使用勒让德()、贝塞尔()或拉盖尔()多项式作为基矢,由于至少含有两个指标n,m需要遍例,因此每一个哈密顿矩阵元含有四个指标维度,因此认为介观体系的问题空间是四维的,能够将哈密顿矩阵元构成了问题空间;
把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)完成计算得到能谱或根据上一步解出的结果计算其他物理量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210128993.1A CN102663207B (zh) | 2012-04-28 | 2012-04-28 | 一种利用gpu加速量子介观体系求解的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210128993.1A CN102663207B (zh) | 2012-04-28 | 2012-04-28 | 一种利用gpu加速量子介观体系求解的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663207A CN102663207A (zh) | 2012-09-12 |
CN102663207B true CN102663207B (zh) | 2016-09-07 |
Family
ID=46772698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210128993.1A Active CN102663207B (zh) | 2012-04-28 | 2012-04-28 | 一种利用gpu加速量子介观体系求解的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663207B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930471A (zh) * | 2012-09-18 | 2013-02-13 | 浪潮(北京)电子信息产业有限公司 | 基于倒向随机微分方程的期权定价方法及装置 |
CN102929841B (zh) * | 2012-10-19 | 2016-06-29 | 浪潮电子信息产业股份有限公司 | 一种利用gpu加速哈特里-福克计算的方法 |
CN102945566A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法 |
AU2015229255A1 (en) * | 2014-03-12 | 2016-09-29 | Temporal Defense Systems, Llc | Solving digital logic constraint problems via adiabatic quantum computation |
WO2017113278A1 (zh) | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN108846790A (zh) * | 2018-06-15 | 2018-11-20 | 华中科技大学 | 一种加速图像重建的方法 |
CN109271250B (zh) * | 2018-08-08 | 2021-09-07 | 天津大学 | 面向电力电子暂态仿真加速的图形处理器内存管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751376A (zh) * | 2009-12-30 | 2010-06-23 | 中国人民解放军国防科学技术大学 | 利用cpu和gpu协同工作对三角线性方程组求解的加速方法 |
US7965289B1 (en) * | 2006-07-12 | 2011-06-21 | Nvidia Corporation | Apparatus, system, and method for rendering objects with position and orientation computed on a graphics processing unit |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008076116A (ja) * | 2006-09-19 | 2008-04-03 | Nuclear Fuel Ind Ltd | 描画装置を用いた計算方法 |
-
2012
- 2012-04-28 CN CN201210128993.1A patent/CN102663207B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7965289B1 (en) * | 2006-07-12 | 2011-06-21 | Nvidia Corporation | Apparatus, system, and method for rendering objects with position and orientation computed on a graphics processing unit |
CN101751376A (zh) * | 2009-12-30 | 2010-06-23 | 中国人民解放军国防科学技术大学 | 利用cpu和gpu协同工作对三角线性方程组求解的加速方法 |
Non-Patent Citations (1)
Title |
---|
哈密顿算符矩阵元的一种简单表达式;陈翠微,凤尔银;《安徽工程科技学院学报》;20030930;第18卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102663207A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663207B (zh) | 一种利用gpu加速量子介观体系求解的方法 | |
Tang et al. | Collision-streams: Fast GPU-based collision detection for deformable models | |
Demmel et al. | Communication-optimal parallel and sequential QR and LU factorizations | |
CN110110851A (zh) | 一种lstm神经网络的fpga加速器及其加速方法 | |
Hong-Tao et al. | K-means on commodity GPUs with CUDA | |
CN105574809B (zh) | 基于矩阵指数的电磁暂态仿真图形处理器并行计算方法 | |
Wald et al. | CPU ray tracing large particle data with balanced Pkd trees | |
CN102681972A (zh) | 一种利用GPU加速格子-Boltzmann的方法 | |
Canny et al. | Machine learning at the limit | |
CN108932135A (zh) | 基于fpga的分类算法的加速平台设计方法 | |
Bo et al. | Accelerating FDTD algorithm using GPU computing | |
Ren et al. | Performance analysis of deep learning workloads on leading-edge systems | |
Bhatotia | Incremental parallel and distributed systems | |
Tolmachev | VkFFT-a performant, cross-platform and open-source GPU FFT library | |
Liu et al. | Processing particle data flows with SmartNICs | |
Ulmer et al. | Extending composable data services into smartnics | |
Li et al. | Automatic FFT performance tuning on OpenCL GPUs | |
CN104992425A (zh) | 一种基于gpu加速的dem超分辨率方法 | |
CN102663149B (zh) | 一种确定微、纳电子结构的方法及装置 | |
Hopfer et al. | Solving the ghost–gluon system of Yang–Mills theory on GPUs | |
Wang et al. | Implementing the jacobi algorithm for solving eigenvalues of symmetric matrices with cuda | |
Bian et al. | Hpqc: a new efficient quantum computing simulator | |
Pomerantsev et al. | Fast GPU-based calculations in few-body quantum scattering | |
Tan et al. | Parallel particle swarm optimization algorithm based on graphic processing units | |
Cai et al. | GPU-accelerated restricted boltzmann machine for collaborative filtering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |