ARM64 gfortran performance comparison

Fortran compiler tuning on aarch64

HTML result view exported from: https://openbenchmarking.org/result/1703078-RI-1703071RI00.

ARM64 gfortran performance comparisonProcessorMemoryDiskMotherboardOSKernelCompilerFile-SystemScreen Resolution5.4.06.2.17.0.07.0.0/A536.2.1/A537.0.17.0.1/A57 tunedUnknown @ 1.50GHz (4 Cores)2048MB16GB NCard + 32GB 00000Ubuntu 16.043.14.65-61 (aarch64)GCC 5.4.0 20160609 + LLVM 3.8.0ext41280x1440GCC 6.2.1 20160901 + LLVM 3.8.0GCC 7.0.0 20160923 + LLVM 3.8.0GCC 6.2.1 20160901 + LLVM 3.8.0Unknown @ 1.54GHz (4 Cores)Amlogic3.14.79-vegas95 (aarch64)GCC 7.0.1 20170306 + Clang 3.8.0-2ubuntu4 + LLVM 3.8.0GCC 7.0.1 20170307 + Clang 3.8.0-2ubuntu4 + LLVM 3.8.0OpenBenchmarking.orgCompiler Details- 5.4.0: --build=aarch64-linux-gnu --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new -v - 6.2.1: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new - 7.0.0: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new - 7.0.0/A53: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new - 6.2.1/A53: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new - 7.0.1: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new - 7.0.1/A57 tuned: --build=aarch64-linux-gnu --disable-bootstrap --disable-browser-plugin --disable-libquadmath --disable-werror --enable-checking=release --enable-clocale=gnu --enable-fix-cortex-a53-843419 --enable-gnu-unique-object --enable-languages=c,c++,fortran --enable-libstdcxx-time=yes --enable-multiarch --enable-nls --enable-plugin --enable-shared --enable-threads=posix --host=aarch64-linux-gnu --target=aarch64-linux-gnu --with-arch-directory=aarch64 --with-default-libstdcxx-abi=new Processor Details- Scaling Governor: meson_cpufreq performance

ARM64 gfortran performance comparisonnpb: LU.Adolfyn: Computational Fluid Dynamicsffte: N=64, 1D Complex FFT Routine5.4.06.2.17.0.07.0.0/A536.2.1/A537.0.17.0.1/A57 tuned753.88272.531505.70748.24345.051510.71754.35268.121443.32861.02268.241442.95857.04269.171441.56754.51268.371517.95858.70250.381501.56OpenBenchmarking.org

NAS Parallel Benchmarks

Test / Class: LU.A

OpenBenchmarking.orgTotal Mop/s, More Is BetterNAS Parallel Benchmarks 3.3Test / Class: LU.A5.4.06.2.17.0.07.0.0/A536.2.1/A537.0.17.0.1/A57 tuned2004006008001000SE +/- 0.43, N = 3SE +/- 0.37, N = 3SE +/- 0.61, N = 3SE +/- 0.76, N = 3SE +/- 0.95, N = 3SE +/- 2.39, N = 3SE +/- 1.06, N = 3753.88748.24754.35861.02857.04754.51858.70-mcpu=cortex-a53-mcpu=cortex-a53-mcpu=cortex-a53-mtune=cortex-a53-mtune=cortex-a53-Ofast -mcpu=cortex-a57 -ftree-vectorize-mcpu=cortex-a571. (F9X) gfortran options: -O3 -fomit-frame-pointer -fipa-pta -march=armv8-a+crc -march=native -pthread -lmpi_usempif08 -lmpi_mpifh -lmpi 2. Open MPI 1.10.2

Dolfyn

Computational Fluid Dynamics

OpenBenchmarking.orgSeconds, Fewer Is BetterDolfyn 0.527Computational Fluid Dynamics5.4.06.2.17.0.07.0.0/A536.2.1/A537.0.17.0.1/A57 tuned70140210280350SE +/- 0.36, N = 3SE +/- 0.33, N = 3SE +/- 0.25, N = 3SE +/- 0.12, N = 3SE +/- 0.58, N = 3SE +/- 0.45, N = 3SE +/- 0.42, N = 3272.53345.05268.12268.24269.17268.37250.38-O2-O2 -mcpu=cortex-a531. (F9X) gfortran options:

FFTE

Test: N=64, 1D Complex FFT Routine

OpenBenchmarking.orgMFLOPS, More Is BetterFFTE 5.0Test: N=64, 1D Complex FFT Routine5.4.06.2.17.0.07.0.0/A536.2.1/A537.0.17.0.1/A57 tuned30060090012001500SE +/- 0.20, N = 3SE +/- 1.23, N = 3SE +/- 0.08, N = 3SE +/- 0.27, N = 3SE +/- 1.85, N = 3SE +/- 1.19, N = 3SE +/- 1.17, N = 31505.701510.711443.321442.951441.561517.951501.561. (F9X) gfortran options: -O3 -fomit-frame-pointer -fopenmp -pthread -lmpi_usempif08 -lmpi_mpifh -lmpi


Phoronix Test Suite v10.8.4