- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
The AMD Optimizing CPU Libraries (AOCL) are optimized to utilize AMD EPYC processors in an optimal way.
A module is available gcc and aocc with
module load aocl/2.2.0
Keep in mind this module only contains the proprietary non-MPI components like amd-libm.
The libraries utilizing MPI will be compiled separately with MPT and provided as their own modules at a later time.
|amd-blis/amd-blis-mt||BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries.
|amd-fftw||An AMD optimized FFTW that includes selective kernels and routines
optimized for the AMD EPYC™ processor family.
|amd-libflame||libFLAME is a portable library for dense matrix computations,
providing much of the functionality present in LAPACK.
|amd-libm||amd-libm implements optimized trigonometric, logarithmic/exponential, power, etc.
functions that should perform better than the system libm.
Provides vector intrinsics of these as well (currently for __m128 __m128d types).
|proprietary||AMD LibM EULA||http://developer.amd.com/amd-cpu-libraries/amd-math-library-libm/|
|amd-rng||AMD Random Number Generator Library is a pseudorandom number generator library.
It provides a comprehensive set of statistical distribution functions and various uniform
distribution generators (base generators) including Wichmann-Hill and Mersenne Twister.
|proprietary||AMD RNG EULA||http://developer.amd.com/amd-cpu-libraries/rng-library/|
|amd-securerng||The AMD Secure Random Number Generator (RNG) is a library that provides APIs to access
the cryptographically secure random numbers generated by AMD’s hardware-based
random number generator implementation.
|proprietary||AMD SecureRNG EULA||http://developer.amd.com/amd-cpu-libraries/rng-library/#securerng|
Intel MKL is available with
module load mkl/<version>
For linking flags for different compilers, there is an Intel MKL Link Line Advisor
Static linking and 32-bit integer interface are recommended if applicable.
For distributed MKL functionality (ScaLAPACK, etc.), select SGIMPT for the MPI library.
Intel MKL seems to be using a 'Cripple AMD CPU' functionality that suppresses AVX/AVX2/FMA code paths for AMD CPUs even though these are capable.
This behavior can be bypassed with an undocumented environment variable set during runtime:
export MKL_DEBUG_CPU_TYPE=5 ./a.out
In tests with Intels MKL sample codes setting this environment variable has lead to a 2-3x better performance on a Zen 2 AMD CPU.
This environment variable is currently set as default for all users.
Attention: It seems that with mkl/19.1.1 this bypass has been removed. Please keep using mkl/19.1.0 for now for better performance.
In order to get an up-to-date list, please refer to