AMD Toolchain with SPACK

Micro Benchmarks/Synthetic

SPACK HPC Applications


The Vienna Ab initio Simulation Package, better known as VASP®, is a package for performing ab initio quantum mechanical calculations using either Vanderbilt pseudopotentials, or the projector augmented wave method, and a plane wave basis set. VASP® is a computer program for atomic scale materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, from first principles.

Official Website for VASP®

Getting VASP Source Code

VASP® is copyright-protected software, users need to purchase a VASP license to access the software package. Hence, a manual download is required for VASP.  Spack will search your current working directory for the download files. Checkout steps to obtaining VASP here: Maintain the source code package format as “vasp.6.2.0.tgz“.

Build VASP using Spack

Reference to add external packages to Spack: Build Customization (Adding external packages to Spack).

# Format For Building VASP with AOCC
$ spack -d install -v vasp@<Version> +scalapack +openmp %aocc<Version> target=<zen2/zen3> ^amdfftw@<Version> ^amdscalapack@<Version> ^amdblis@<Version> threads=openmp ^amdlibflame@<Version> ^openmpi@<Version>
# Example: For building VASP 6.2.0 with AOCC 3.2 and AOCL 3.1
$ spack -d install -v -j 16 vasp@6.2.0 +scalapack +openmp %aocc@3.2.0 target=zen3 ^amdfftw@3.1 ^amdblis@3.1 threads=openmp ^amdlibflame@3.1 ^amdscalapack@3.1 ^openmpi@4.1.1 fabrics=auto

Use any combination of the following components/applications and their corresponding versions:

Component/Application Versions Applicable
VASP 6.2.0
AOCC 3.2.0
AOCL 3.1

Specifications and Dependencies

Symbol Meaning
-d To enable debug output
-v To enable verbose
-j 16 To enable parallel build
@ To specify version number
% To specify compiler
+scalapack +openmp Build with ScaLAPACK and OpenMP variants
^amdfftw To build with AMD FFTW
^amdscalapack To build with AMD ScaLAPACK
^amdblis threads=openmp To build with amdblis with OpenMP threads enabled
^amdliflame To build with amdlibflame
^open­mpi­ fabri­cs=­auto To build with Open MPI and using fabrics=auto

Running VASP

Obtaining Benchmarks

  • For testing the VASP performance, the following Si256_VJT_HSE06 workload has been considered: Properties of “Si256_VJT_HSE06″ dataset are: Vacancy in Si (Ω ≅5200 Å3), 255 Si atoms (1020 e−), DFT/HF-hybrid functional and Conjugate gradient
Setting Environmennt
# Format for loading VASP build with AOCC
$ spack load vasp@<Version> %aocc@<Version>
# Example : Load VASP 6.2.0 build with AOCC 3.2 module into environment
$ spack load vasp@6.2.0 %aocc@3.2.0
Run Command
# To go to installed location of VASP, "spack cd -i vasp"
$ cd ./Si256_VJT_HSE06
$ export vasp=/bin/vasp_std
$ mpirun -np 32 -x OMP_NUM_THREADS=4 --map-by ppr:2:l3cache:pe=4 --bind-to core -x UCX_TLS=self,sm,rc_x $vasp