Skip to content

[package list]

AMD-flang-experimental

User documentation

Pre-release software and unsupported

This is pre-release software set up with help from AMD but not software that we can support. The software may rely on ROCm™ version that are not compatible with the current drivers on LUMI and hence may cause errors when running software compiled with these compilers.

They do offer a way of starting to test compilation of software with the new generation Flang compiler so that code is ready when an equivalent version of the compiler is officially released.

What is it?

These modules offer pre-release versions of the new generation AMD Flang compiler. The module itself only makes other modules available that should then be used to run the compiler. The Cray wrappers are not used.

Depending on the version of this module, the following modules may be provided:

  • therock: This is the actual compiler module and needs to be loaded for any of the other modules to work.

  • mpich: A module that wraps around Cray MPICH but provides a Fortran interface that is suitable for the compilers.

  • fftw: A CPU-based FFTW library. Also needs mpich as it also provides MPI-based libraries.

  • hdf5-parallel: HDF5 library in parallel configuration. Needs therock and mpich.

  • pnetcdf: PnetCDF library, uses therock, mpich and hdf5-parallel

  • netcdf_c: NetCDF libraries with the C interface. Builds upon hdf5-parallel and according to the install script also on top of pnetcdf

  • netcdf_fortran Fortran interfaces for NetCDF, needs netcdf_c,

Each module will take care of loading the necessary dependencies so that you cannot make mistakes with that.

Compiler names:

  • amdclang for C

  • amdclang++ for C++

  • amdflang for Fortran

These compilers don't work with the Cray wrappers. To compile MPI programs, you can use mpicc etc.

How can I use these modules?

  • AMD-flang-experimental/23.2.1 is pre-installed in CrayEnv only, so

    module load CrayEnv
    module load AMD-flang-experimental/23.2.1
    

The AMD-flang-experimental modules don't make the compiler available, but only the modules to activate the compiler and other components described above, so you then need to proceed with loading the compiler etc.

Pre-installed modules (and EasyConfigs)

To access module help and find out for which stacks and partitions the module is installed, use module spider AMD-flang-experimental/<version>.

EasyConfig:

  • AMD-flang-experimental/23.2.1-cray-mpich-8.1.33 (EasyConfig: AMD-flang-experimental-23.2.1-cray-mpich-8.1.33.eb)

    This version is based on the development version of flang 23 and a development version of ROCm™ marked as 7.13. Its mpich module works internally with Cray MPICH 8.1.33 which comes with the 25.09 version of the HPE Cray Programming Environment. It provides a Fortran interface compatible with flang 23, and uses the GTL based on ROCm™ 6. It also uses the rocm/6.3.4 module for the MPICH GTL dependencies. It also provides the fftw, hdf5-parallel, pnetcdf, netcdf_c and netcdf_fortran modules.

    Developed by AMD and HLRS, originally for use on Hunter@HLRS but ported over to LUMI.

Technical documentation

This module provides access to a pre-release of the new-generation AMD flang compiler. These may be built on top of ROCm versions that are also not fully supported.

The module basically makes other modules available, including the compiler module which is confusingly called therock. It also contains an MPI module that is layered on top of Cray MPICH but provides Fortran interfaces compatible with the new compiler, and some other libraries with Fortran interfaces.

This compiler is mostly targeted at GPU development which is why some popular libraries for CPU work (such as an optimised BLAS library) are currently not included.

The EasyBuild EasyConfig is only a wrapper downloading the necessary files and then calling install scripts developed by AMD and HLRS engineers for Hunter, and adapted by AMD to LUMI. Some further adaptations have been made in the GitHub repository AMD-flang-exsperimental for LUMI and integration with EasyBuild.

EasyBuild

23.2.1

  • This pre-release version was recommended by AMD for first experiments and also comes with some experimental ROCm libraries.

  • Note that the lapack option of the install script does not install optimised libraries but just the vanilla NetLib BLAS and Lapack. So it is not used on LUMI.

    The rocmlibs option installs some custom ROCm libraries that were needed for a specific project at HLRS and should also not be installed at LUMI (and require specific sources that cannot be directly downloaded).

  • Apart from this, the EasyConfig uses a Binary EasyBlock.

    • First all sources are downloaded

    • The install step then install the install scripts in the required directory, the source files also where expected by the install script, and then runs the install script.

      That install script actually does depend on Cray MPICH 8.1.33 at the moment.