- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
- Information contained in the HLRS Wiki is not legally binding and HLRS is not responsible for any damages that might result from its use -
Libraries(Hawk): Difference between revisions
(→AOCL) |
(→AOCL) |
||
Line 1: | Line 1: | ||
== AOCL == | == AOCL == | ||
The [https://developer.amd.com/amd-aocl/ AMD Optimizing CPU Libraries (AOCL)] are available for gcc and aocc with | The [https://developer.amd.com/amd-aocl/ AMD Optimizing CPU Libraries (AOCL)] are optimized to utilize AMD EPYC processors in an optimal way and are available for '''gcc''' and '''aocc''' with | ||
<pre>module load aocl/2.1.0</pre> | <pre>module load aocl/2.1.0</pre> | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- |
Revision as of 13:54, 2 March 2020
AOCL
The AMD Optimizing CPU Libraries (AOCL) are optimized to utilize AMD EPYC processors in an optimal way and are available for gcc and aocc with
module load aocl/2.1.0
Library | Purpose | Source | License | URL |
---|---|---|---|---|
amd-blis/amd-blis-mt | BLIS is a portable software framework for instantiating high-performance
BLAS-like dense linear algebra libraries. |
https://github.com/amd/blis | 3-clause BSD | https://developer.amd.com/amd-aocl/blas-library/ |
amd-fftw | An AMD optimized FFTW that includes selective kernels and routines
optimized for the AMD EPYC™ processor family. |
https://github.com/amd/amd-fftw | GPLv2 | https://developer.amd.com/amd-aocl/fftw/ |
amd-libflame | libFLAME is a portable library for dense matrix computations,
providing much of the functionality present in LAPACK. |
https://github.com/amd/libflame | 3-clause BSD | http://developer.amd.com/amd-cpu-libraries/blas-library/#libflame |
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
Intel MKL is available with
module load mkl/<version>
To link to this library with default settings with the intel compiler, you can use the -mkl flag:
# Link with Intel MKL dynamically icc/ifort ... -mkl # Link with Intel MKL statically icc/ifort ... -mkl -static-intel
For more settings and for other compilers (gcc, LLVM, etc.), there is an Intel MKL Link Line Advisor
Intel MKL seems to be using a 'Cripple AMD CPU' functionality that suppresses AVX/AVX2 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.
Further libraries
In order to get an up-to-date list, please refer to
module avail