{"title":"应用于金属系统的伪势平面波密度泛函理论代码的另一种 GPU 加速方法","authors":"Xuejun Gong , Andrea Dal Corso","doi":"10.1016/j.cpc.2024.109439","DOIUrl":null,"url":null,"abstract":"<div><div>We present an alternative <span>GPU</span> acceleration for plane waves pseudopotentials electronic structure codes designed for systems that have small unit cells but require a large number of <strong>k</strong> points to sample the Brillouin zone as happens, for instance, in metals. We discuss the diagonalization of the Kohn and Sham equations and the solution of the linear system derived in density functional perturbation theory. Both problems take advantage from a rewriting of the routine that applies the Hamiltonian to the Bloch wave-functions to work simultaneously (in parallel on the <span>GPU</span> threads) on the wave-functions with different wave-vectors <strong>k</strong>, as many as allowed by the <span>GPU</span> memory. Our implementation is written in <span>CUDA Fortran</span> and makes extensive use of kernel routines that run on the <span>GPU</span> (<span>GLOBAL</span> routines) or can be called from inside the <span>GPU</span> kernel (<span>DEVICE</span> routines). We compare our method with the <span>CPUs</span> only calculation and with the approach currently implemented in <span>Quantum ESPRESSO</span> that uses <span>GPU</span> accelerated libraries for the <span>FFT</span> and for the linear algebra tasks such as the matrix-matrix multiplications as well as <span>OpenACC</span> directives for loop parallelization. We show in a realistic example that our method can give a significant improvement in the cases for which it has been designed.</div></div>","PeriodicalId":285,"journal":{"name":"Computer Physics Communications","volume":"308 ","pages":"Article 109439"},"PeriodicalIF":7.2000,"publicationDate":"2024-11-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"An alternative GPU acceleration for a pseudopotential plane-waves density functional theory code with applications to metallic systems\",\"authors\":\"Xuejun Gong , Andrea Dal Corso\",\"doi\":\"10.1016/j.cpc.2024.109439\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><div>We present an alternative <span>GPU</span> acceleration for plane waves pseudopotentials electronic structure codes designed for systems that have small unit cells but require a large number of <strong>k</strong> points to sample the Brillouin zone as happens, for instance, in metals. We discuss the diagonalization of the Kohn and Sham equations and the solution of the linear system derived in density functional perturbation theory. Both problems take advantage from a rewriting of the routine that applies the Hamiltonian to the Bloch wave-functions to work simultaneously (in parallel on the <span>GPU</span> threads) on the wave-functions with different wave-vectors <strong>k</strong>, as many as allowed by the <span>GPU</span> memory. Our implementation is written in <span>CUDA Fortran</span> and makes extensive use of kernel routines that run on the <span>GPU</span> (<span>GLOBAL</span> routines) or can be called from inside the <span>GPU</span> kernel (<span>DEVICE</span> routines). We compare our method with the <span>CPUs</span> only calculation and with the approach currently implemented in <span>Quantum ESPRESSO</span> that uses <span>GPU</span> accelerated libraries for the <span>FFT</span> and for the linear algebra tasks such as the matrix-matrix multiplications as well as <span>OpenACC</span> directives for loop parallelization. We show in a realistic example that our method can give a significant improvement in the cases for which it has been designed.</div></div>\",\"PeriodicalId\":285,\"journal\":{\"name\":\"Computer Physics Communications\",\"volume\":\"308 \",\"pages\":\"Article 109439\"},\"PeriodicalIF\":7.2000,\"publicationDate\":\"2024-11-20\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computer Physics Communications\",\"FirstCategoryId\":\"101\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S001046552400362X\",\"RegionNum\":2,\"RegionCategory\":\"物理与天体物理\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Physics Communications","FirstCategoryId":"101","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S001046552400362X","RegionNum":2,"RegionCategory":"物理与天体物理","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0
摘要
我们介绍了平面波伪势电子结构代码的另一种 GPU 加速方法,该方法专为具有小单元但需要大量 k 点来采样布里渊区的系统而设计,例如在金属中发生的情况。我们讨论了 Kohn 和 Sham 方程的对角化问题,以及密度泛函扰动理论推导出的线性系统的求解问题。这两个问题都利用了将哈密顿应用于布洛赫波函数的例程重写,以同时(在GPU线程上并行)处理具有不同波矢k的波函数,波矢k的数量在GPU内存允许的范围内。我们的实现是用 CUDA Fortran 编写的,并广泛使用了在 GPU 上运行的内核例程(GLOBAL 例程)或可从 GPU 内核内部调用的例程(DEVICE 例程)。我们将我们的方法与只使用 CPU 的计算方法以及目前在 Quantum ESPRESSO 中实施的方法进行了比较,后者将 GPU 加速库用于 FFT 和线性代数任务,如矩阵-矩阵乘法以及用于循环并行化的 OpenACC 指令。我们在一个现实的例子中表明,我们的方法可以在其设计的情况下带来显著的改进。
An alternative GPU acceleration for a pseudopotential plane-waves density functional theory code with applications to metallic systems
We present an alternative GPU acceleration for plane waves pseudopotentials electronic structure codes designed for systems that have small unit cells but require a large number of k points to sample the Brillouin zone as happens, for instance, in metals. We discuss the diagonalization of the Kohn and Sham equations and the solution of the linear system derived in density functional perturbation theory. Both problems take advantage from a rewriting of the routine that applies the Hamiltonian to the Bloch wave-functions to work simultaneously (in parallel on the GPU threads) on the wave-functions with different wave-vectors k, as many as allowed by the GPU memory. Our implementation is written in CUDA Fortran and makes extensive use of kernel routines that run on the GPU (GLOBAL routines) or can be called from inside the GPU kernel (DEVICE routines). We compare our method with the CPUs only calculation and with the approach currently implemented in Quantum ESPRESSO that uses GPU accelerated libraries for the FFT and for the linear algebra tasks such as the matrix-matrix multiplications as well as OpenACC directives for loop parallelization. We show in a realistic example that our method can give a significant improvement in the cases for which it has been designed.
期刊介绍:
The focus of CPC is on contemporary computational methods and techniques and their implementation, the effectiveness of which will normally be evidenced by the author(s) within the context of a substantive problem in physics. Within this setting CPC publishes two types of paper.
Computer Programs in Physics (CPiP)
These papers describe significant computer programs to be archived in the CPC Program Library which is held in the Mendeley Data repository. The submitted software must be covered by an approved open source licence. Papers and associated computer programs that address a problem of contemporary interest in physics that cannot be solved by current software are particularly encouraged.
Computational Physics Papers (CP)
These are research papers in, but are not limited to, the following themes across computational physics and related disciplines.
mathematical and numerical methods and algorithms;
computational models including those associated with the design, control and analysis of experiments; and
algebraic computation.
Each will normally include software implementation and performance details. The software implementation should, ideally, be available via GitHub, Zenodo or an institutional repository.In addition, research papers on the impact of advanced computer architecture and special purpose computers on computing in the physical sciences and software topics related to, and of importance in, the physical sciences may be considered.