AMD Toolchain with SPACK

Micro Benchmarks/Synthetic

SPACK HPC Applications


Quantum ESPRESSO® (QE) is an integrated suite of open-source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.

Official Website for Quantum ESPRESSO:

# Format For Building Quantum ESPRESSO with AOCC
$ spack -d install -v quantum-espresso@<Version> +elpa +openmp %aocc@<Version> target=<zen2/zen3> ^amdfftw@<Version> ^amdscalapack@<Version> ^amdblis@<Version> threads=openmp ^amdlibflame@<Version> ^elpa@<Version> ^openmpi@<Version>
# Example: For building QE 6.7 with AOCC 3.2 and AOCL 3.1
$ spack -d install -v -j 16 quantum-espresso@6.7+elpa+openmp hdf5=parallel %aocc@3.2.0 target=zen3 ^amdfftw@3.1 ^amdscalapack@3.1 ^amdblis@3.1 threads=openmp ^amdlibflame@3.1 ^elpa@2019.11.001 ^openmpi@4.1.1 fabrics=auto

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

Component/Application Versions Applicable
Quantum ESPRESSO 6.7
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
+elpa +openmp Build with ELPA and OpenMP enabled
^amdfftw To build with AMD FFTW
^amdscalapack To build with AMD Scalapack
^amdblis threads=openmp To build with amdblis with opemp threads enabled
^elpa To build with specific version of ELPA
^open­mpi­ fabri­cs=­auto To build with Open MPI and using fabrics=auto
^amdliflame To build with amdlibflame

Running Quatum ESPRESSO

Obtaining Benchmarks

For testing the QE performance, the following Ta2O5 workload has been considered:

Setting Environmennt
# Format for loading Quatum ESPRESSO build with AOCC
$ spack load quantum-espresso@<Version> %aocc@<Version>
# Example : Load Quantum ESPRESSO 6.7 build with AOCC 3.2 module into environment
$ spack load quantum-espresso@6.7 %aocc@3.2.0


Run Command
$ export OMP_NUM_THREADS=1
# Run the required input file
$ time mpirun -n 104 pw.x -npool 2 -in