发明名称 一种利用GPU加速哈特里-福克计算方法的算法
摘要 本发明提供一种利用GPU来大幅加速计算物理学、计算化学、材料物理以及纳米科学等领域中常用的哈特里-福克近似(Hartree-Fock)计算方法的算法,该方法充分利用了GPU所拥有的强大的浮点处理能力和高带宽等众核处理器的特点,并将哈特里-福克近似计算发发中占用机时最长的哈特里-福克本征方程的计算,交给GPU来处理,而将本征值问题求解以及自洽控制部分的工作依然由串行和分支计算能力较强的CPU来完成,从而极大的提高了哈特里-福克近似方法的计算速度。在计算过程中,我们充分考虑并利用了基矢间的非相关性,从而实现了从哈特里-福克本征方程的解空间到GPU线程空间的简单映射,从而保证了算法的易用性和高可扩展性。
申请公布号 CN102929841A 申请公布日期 2013.02.13
申请号 CN201210398977.4 申请日期 2012.10.19
申请人 浪潮电子信息产业股份有限公司 发明人 刘羽
分类号 G06F17/16(2006.01)I 主分类号 G06F17/16(2006.01)I
代理机构 代理人
主权项 一种利用GPU加速哈特里‑福克计算方法的算法, 其特征在于,将福克矩阵元中的粒子‑粒子相互作用分离出来,然后将由粒子‑粒子相互作用构成的问题解空间同GPU中的线程空间相对应,将内存中的初始参数传入GPU设备显存,并在设备上计算相互作用,完毕后拷贝结果回主机内存,并完成福克矩阵的初始化,利用CPU对福克矩阵对角化求得本征能量和本征态矢,从而有效加速哈特里‑福克方法的计算,具体步骤如下:1)将福克矩阵元中需要计算多重积分的库仑和交换相互作用计算分离出来,形成问题的解空间,其规模由所研究的多体问题的规模来决定;2)将问题解空间同GPU线程空间相对应,利用粒子‑粒子间相互作用的两体性,将步骤1)中生成的问题解空间与CUDA的三重线程模型对应起来,即同Grid,Block,Thread对应起来;3)执行运算,执行设备端的kernel函数完成计算,将计算完成的结果从显存拷贝到内存中;4)利用步骤3)的计算结果生成哈特里‑福克矩阵,并在CPU上调用Lapack数学库来完成计算,在CPU上做矩阵对角化操作;5)计算得新的单粒子态,重新返回步骤1)计算新的哈特里‑福克算符,再次自洽运算,直接两次自洽达到预定的精度则退出自洽计算;6)根据自洽后所得到的精确单粒子态,计算多体系的能量及态矢的进一步物理量。
地址 250014 山东省济南市高新区舜雅路1036号