Prerequisites
The following prerequisites must be met:
GNU Make 4.2 or later
GCC 6.1.0 or later
AOCC 2.1 or later
MPI compiler 3.1 or later
Makeinfo 6.8 or later
For more information on supported operating systems, refer to Operating Systems.
Complete the following steps to build AOCL-FFTW for AMD EPYCTM processor based on the architecture generation:
Download the latest stable release of AOCL-FFTW (amd/amd-fftw).
Depending on the target system and build environment, you must enable/disable the appropriate configure options. Set PATH and LD_LIBRARY_PATH to the MPI installation. In the case of building for AMD Optimized FFTW library with AOCC compiler, you must compile and setup OpenMPI with AOCC compiler.
Complete the following steps to compile it for EPYCTM processors and other AMD “Zen”-based processors:
Note
For a complete list of options and their description, type
./configure --help.With GCC (default)
**Double Precision FFTW libraries** $ ./configure --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-mpi --enable-openmp --enable-shared --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install-dir> **Single Precision FFTW libraries** $ ./configure --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-mpi --enable-openmp --enable-shared --enable-single --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install-dir> **Long double FFTW libraries** $ ./configure --enable-shared --enable-openmp --enable-mpi --enable-long-double --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install- dir> **Quad Precision FFTW libraries** $ ./configure --enable-shared --enable-openmp --enable-quad-precision --enable-amd-opt --enable-dynamic-dispatcher --prefix=<your-install-dir>
With AOCC
**Double Precision FFTW libraries** $ ./configure --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-mpi --enable-openmp --enable-shared --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install-dir> CC=clang F77=flang FC=flang **Single Precision FFTW libraries** $ ./configure --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-mpi --enable-openmp --enable-shared --enable-single --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install-dir> CC=clang F77=flang FC=flang **Long double FFTW libraries** $ ./configure --enable-shared --enable-openmp --enable-mpi --enable-long-double --enable-amd-opt --enable-amd-mpifft --enable-dynamic-dispatcher --prefix=<your-install- dir> CC=clang F77=flang FC=flang **Quad FFTW libraries** $ ./configure --enable-shared --enable-openmp --enable-quad-precision --enable-amd-opt --enable-dynamic-dispatcher --prefix=<your-install-dir> CC=clang F77=flang FC=flang
AMD optimized fast planner is added as an extension to the original planner to improve the planning time of various planning modes in general and PATIENT mode in particular.
The configure user option
--enable-amd-fast-plannerwhen given in addition to-enable-amd-optenables this new fast planner.An optional configure option AMD_ARCH is supported, that can be set to the CPU architecture values, such as auto, znver1, znver2, znver3, znver4 or znver5 for AMD EPYCTM and other AMD “Zen”- based processors.
Additional config and build options to enable specific optimizations are covered in the Performance Tuning section.
A dynamic dispatcher feature has been added to build a single portable optimized library for execution on a wide range of x86 CPU architectures. Use the–enable-dynamic-dispatcher configure option to enable this feature on Linux-based systems. The configure option –enable- amd-opt is the mandatory master optimization switch that must be set for enabling other optional configure options, such as:
–enable-amd-mpifft
–enable-amd-mpi-vader-limit
–enable-amd-trans
–enable-amd-fast-planner
–enable-amd-top-n-planner
–enable-amd-app-opt
–enable-dynamic-dispatcher
Build the library:
$ makeInstall the library in the preferred path:
$ make install
Verify the installed library:
$ make check