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 needsmpichas it also provides MPI-based libraries. -
hdf5-parallel: HDF5 library in parallel configuration. Needstherockandmpich. -
pnetcdf: PnetCDF library, usestherock,mpichandhdf5-parallel -
netcdf_c: NetCDF libraries with the C interface. Builds uponhdf5-paralleland according to the install script also on top ofpnetcdf -
netcdf_fortranFortran interfaces for NetCDF, needsnetcdf_c,
Each module will take care of loading the necessary dependencies so that you cannot make mistakes with that.
Compiler names:
-
amdclangfor C -
amdclang++for C++ -
amdflangfor 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.1is pre-installed in CrayEnv only, so
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:
-
This version is based on the development version of flang 23 and a development version of ROCm™ marked as 7.13. Its
mpichmodule 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 therocm/6.3.4module for the MPICH GTL dependencies. It also provides thefftw,hdf5-parallel,pnetcdf,netcdf_candnetcdf_fortranmodules.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
lapackoption 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
rocmlibsoption 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
BinaryEasyBlock.-
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.
-