From 9e085bd04edf96de76f56f0c90661b91a870f0db Mon Sep 17 00:00:00 2001 From: nmeyer-ur Date: Wed, 20 May 2020 19:16:30 +0200 Subject: [PATCH] guard prevents multiple A64FX build messages --- .../implementation/WilsonKernelsAsmA64FX.h | 6 ++--- Grid/simd/Grid_a64fx-fixedsize.h | 2 +- Grid/simd/Grid_vector_types.h | 11 +++++++-- SVE_README.txt | 24 +++++++++++++++++++ 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Grid/qcd/action/fermion/implementation/WilsonKernelsAsmA64FX.h b/Grid/qcd/action/fermion/implementation/WilsonKernelsAsmA64FX.h index efb0746a..34da3110 100644 --- a/Grid/qcd/action/fermion/implementation/WilsonKernelsAsmA64FX.h +++ b/Grid/qcd/action/fermion/implementation/WilsonKernelsAsmA64FX.h @@ -39,16 +39,16 @@ Author: Nils Meyer Regensburg University // enable A64FX body #define WILSONKERNELSASMBODYA64FX -#pragma message("Including A64FX Dslash: WilsonKernelsAsmBodyA64FX.h") +#pragma message("A64FX Dslash: WilsonKernelsAsmBodyA64FX.h") /////////////////////////////////////////////////////////// // If we are A64FX specialise the single precision routine /////////////////////////////////////////////////////////// #if defined(DSLASHINTRIN) -#pragma message ("including A64FX Dslash: intrin") +#pragma message ("A64FX Dslash: intrin") #include #else -#pragma message ("including A64FX Dslash: asm") +#pragma message ("A64FX Dslash: asm") #include #endif diff --git a/Grid/simd/Grid_a64fx-fixedsize.h b/Grid/simd/Grid_a64fx-fixedsize.h index 46cb9354..edccfa82 100644 --- a/Grid/simd/Grid_a64fx-fixedsize.h +++ b/Grid/simd/Grid_a64fx-fixedsize.h @@ -39,7 +39,7 @@ // gcc 10 features #if __ARM_FEATURE_SVE_BITS==512 -#pragma message("Fixed-size SVE ACLE") +#pragma message("building for A64FX / fixed SVE data type size") /* gcc 10.0.1 and gcc 10.1 bug using ACLE data types CAS-159553-Y1K4C6 workaround: use gcc's internal data types, bugfix expected for gcc 10.2 typedef svbool_t pred __attribute__((arm_sve_vector_bits(512))); diff --git a/Grid/simd/Grid_vector_types.h b/Grid/simd/Grid_vector_types.h index 199d1487..ddf37ba9 100644 --- a/Grid/simd/Grid_vector_types.h +++ b/Grid/simd/Grid_vector_types.h @@ -120,11 +120,15 @@ accelerator_inline Grid_half sfw_float_to_half(float ff) { #if defined(A64FX) || defined(A64FXFIXEDSIZE) // breakout A64FX SVE ACLE here #include #if defined(A64FX) // VLA + #ifndef MSGVLA #pragma message("building for A64FX / SVE ACLE VLA") + #define MSGVLA + #endif #if defined(ARMCLANGCOMPAT) + #ifndef MSGCOMPAT #pragma message("applying armclang fix") - //#else - //#pragma message("not applying armclang fix") + #define MSGCOMPAT + #endif #endif #include "Grid_a64fx-2.h" #endif @@ -132,7 +136,10 @@ accelerator_inline Grid_half sfw_float_to_half(float ff) { #include "Grid_a64fx-fixedsize.h" #endif #else + #ifndef MSGGEN #pragma message("building for GEN") // generic + #define MSGGEN + #endif #include "Grid_generic.h" #endif #endif diff --git a/SVE_README.txt b/SVE_README.txt index 609cf111..be4f1baa 100644 --- a/SVE_README.txt +++ b/SVE_README.txt @@ -8,6 +8,22 @@ ../configure --with-lime=/home/men04359/lime/c-lime --without-hdf5 --enable-gen-simd-width=64 --enable-simd=GEN --enable-precision=double --enable-comms=none --enable-openmp CXX=g++-10.0.1 CC=gcc-10.0.1 CXXFLAGS="-std=c++11 -march=armv8-a+sve -msve-vector-bits=512 -fno-gcse -DA64FXFIXEDSIZE -DA64FXASM -DDSLASHINTRIN" +* gcc 10.0.1 fixed-size ACLE (fjt) w/ MPI + +export OMPI_CC=gcc-10.0.1 +export OMPI_CXX=g++-10.0.1 +export MPICH_CC=gcc-10.0.1 +export MPICH_CXX=g++-10.0.1 + +$ ../configure --without-hdf5 --enable-gen-simd-width=64 --enable-simd=GEN --enable-precision=double --enable-comms=mpi3 --enable-openmp CXX=mpiFCC CC=mpifcc CXXFLAGS="-std=c++11 -march=armv8-a+sve -msve-vector-bits=512 -fno-gcse -DA64FXFIXEDSIZE -DA64FXASM -DDSLASHINTRIN -DTOFU -I/opt/FJSVxtclanga/tcsds-1.2.24/include/mpi/fujitsu -lrt" LDFLAGS="-L/opt/FJSVxtclanga/tcsds-1.2.24/lib64 -lrt" + +works! but binaries do not finish when running via job scheduler. problem with MPI_finalize ? + +interactive login: mpirun -np 1 ./Benchmark_wilson_sweep --dslash-asm + [WARN] PLE 0610 plexec The process terminated with the signal.(rank=0)(nid=0xff010008)(sig=9) ? + +-------------------------------------------------------- + * armclang 20.0 VLA (merlin) ../configure --with-lime=/home/men04359/lime/c-lime --without-hdf5 --enable-gen-simd-width=64 --enable-simd=GEN --enable-precision=double --enable-comms=none --enable-openmp CXX=armclang++ CC=armclang CXXFLAGS="-std=c++11 -fno-unroll-loops -mllvm -vectorizer-min-trip-count=2 -march=armv8-a+sve -DARMCLANGCOMPAT -DA64FX -DA64FXASM -DDSLASHINTRIN" LDFLAGS=-static GRID_LDFLAGS=-static MPI_CXXLDFLAGS=-static @@ -29,6 +45,14 @@ TODO check ARMCLANGCOMPAT TODO check ARMCLANGCOMPAT +* armclang 20.1 VLA (fjt cluster) + +../configure --with-lime=$HOME/local --without-hdf5 --enable-gen-simd-width=64 --enable-simd=GEN --enable-precision=double --enable-comms=mpi3 --enable-openmp CXX=mpiFCC CC=mpifcc CXXFLAGS="-std=c++11 -mcpu=a64fx -DA64FX -DA64FXASM -DDSLASHINTRIN -DTOFU -I/opt/FJSVxtclanga/tcsds-1.2.24/include/mpi/fujitsu -lrt" LDFLAGS="-L/opt/FJSVxtclanga/tcsds-1.2.24/lib64" + +No ARMCLANGCOMPAT -> still correct ? + +-------------------------------------------------------- + * Fujitsu fcc ../configure --with-lime=$HOME/grid-a64fx/lime/c-lime --without-hdf5 --enable-gen-simd-width=64 --enable-simd=GEN --enable-precision=double --enable-comms=none --enable-openmp --with-mpfr=/home/users/gre/gre-1/grid-a64fx/mpfr-build/install CXX=FCC CC=fcc CXXFLAGS="-Nclang -Kfast -DA64FX -DA64FXASM -DDSLASHINTRIN"