Porting VASP to GPU Using OpenACC: Exploiting the Asynchronous Execution Model
, University of Vienna
The Vienna Ab initio Simulation Package (VASP) is a widely used code for atomic-scale materials modeling: e.g., electronic structure calculations and first-principles molecular dynamics. VASP was developed at the University Vienna and is currently maintained and expanded in the VASP Software GmbH. Since about half a year ago, the VASP software GmbH has distributed a version of the Vienna Ab initio Simulation Package (VASP) that was ported to GPU using OpenACC. For us, the use of OpenACC presents the optimal combination of ease of porting and performance. We'll show examples of the latter and compare them to an older GPU port of VASP that used CUDA. We'll also highlight the way we (try to) make use of the asynchronous execution model of OpenACC and how we (explicitly) overlap collective communication and computation in some parts of the code using NVIDIA Collective Communication Library.