AMD Toolchain with SPACK

Micro Benchmarks/Synthetic

SPACK HPC Applications

The AOCC compiler system is a high-performance, production-quality, code-generation tool.  The AOCC environment provides various options to developers when building and optimizing C, C++, and Fortran applications targeting 32-bit and 64-bit Linux® platforms.  The AOCC compiler system offers a high level of advanced optimizations, multi-threading and processor support that includes global optimization, vectorization, inter-procedural analyses, loop transformations, and code generation.  The AOCC compiler suite simplifies and accelerates development and tuning for x86 applications.

Note: Currently Spack only supports AOCC 2.2 or later.

For more information, refer AMD Developer Central (

Installing AOCC

# Format For installing AOCC
$ spack install -v aocc@<Version> +license-agreed
# Example: To Download and install AOCC 3.2 compiler
$ spack install -v aocc@3.2.0 +license-agreed
# Adding AOCC as a part of Spack compiler’s list
$ spack cd -i aocc@3.2.0
$ spack compiler add $PWD
# To list all available compilers
$ spack compilers
# Example: loading AOCC 3.2 into Spack environment
# Loading AOCC into environment is optional.
# Spack commands with %aocc still use the installed AOCC.

$ spack load aocc@3.2.0

Accepting the AOCC End User License Agreement

Use of AOCC is governed by an AMD End User License Agreement (EULA), normally accepted when the AOCC installer is downloaded from AMD.  To install AOCC via Spack, the EULA agreement must be accepted as follows:

    1. During installation, pass to the Spack command  “+license-agreed”.
    2. While installing AOCC, a screen prompt for the EULA needs to saved.
      $ spack install -v aocc@<Version>+license-agreed

Supported AOCC Versions

AMD supports these versions of AOCC through Spack:

  • AOCC 2.2.0
  • AOCC 2.3.0
  • AOCC 3.0.0
  • AOCC 3.1.0
  • AOCC 3.2.0

Subsequent versions will be added when supported.

Uninstalling the AOCC compiler in Spack

# Format for uninstalling AOCC
$ spack uninstall aocc@<Version>
# Example: Uninstall AOCC 3.2
$ spack uninstall aocc@3.2.0
# Format for Removing the compiler from the compiler.yaml
$ spack compiler remove aocc@<Version>
# Example: Removing the compiler from the compiler.yaml
$ spack compiler remove aocc@3.2.0