[gmx-users] Build fails with AVX2_256 on Intel Xeon CPU E5-2680 v3

Mark Abraham mark.j.abraham at gmail.com
Mon Jan 25 19:18:35 CET 2016


Hi,

Thanks. Indications are that you also need an updated binaries package.
Specifically, there's a test that the compiler accepts the avx2 flag, which
is passing. But some other part of the infrastructure isn't working
(probably the linker) because the next test fails.

Mark

On Mon, 25 Jan 2016 18:57 Nicolas Cheron <nicolas.cheron.boulot at gmail.com>
wrote:

> Hi,
>
> All my installations are made from a clean build directory. I am
> using CentOS release 6.6 and the CPU is Intel Xeon CPU E5-2650 v3 @
> 2.30GHz. Here is the exact list of command that I have used (as I said, I
> have also tried with gcc4.9.3 and gcc5.2):
>
> module purge
> module load gcc/4.8.5
> cd /home2/ncheron/Programs/
> cp 00-Install/gromacs-5.1.1.tar.gz .
> tar zxf gromacs-5.1.1.tar.gz
> rm gromacs-5.1.1.tar.gz
> cd /home2/ncheron/Programs/gromacs-5.1.1
> umask 022
> mkdir build
> cd /home2/ncheron/Programs/gromacs-5.1.1/build
> mkdir /home2/ncheron/Programs/Gromacs5.1.1
>
> CMAKE_PREFIX_PATH=/home2/ncheron/Programs/LibXml_2.9.2:/home2/ncheron/Programs/Boost_1.60.0
> cmake .. -DGMX_OPENMP=ON -DGMX_THREAD_MPI=ON -DGMX_MPI=OFF -DGMX_GPU=OFF
> -DGMX_DOUBLE=OFF -DGMX_BUILD_MDRUN_ONLY=ON
> -DCMAKE_INSTALL_PREFIX=/home2/ncheron/Programs/Gromacs5.1.1
> -DGMX_BUILD_OWN_FFTW=ON
>
> -DGMX_BUILD_OWN_FFTW_URL=/home2/ncheron/Programs/00-Install/fftw-3.3.4.tar.gz
> -DGMX_DEFAULT_SUFFIX=OFF -DGMX_BINARY_SUFFIX=_Dell -DGMX_LIBS_SUFFIX=_Dell
> -DGMX_SIMD=AVX2_256
> make -j4
> make install
>
> The error file says:
> CMake Error at cmake/gmxManageSimd.cmake:271 (message):
>   Cannot find AVX2 compiler flag.  Use a newer compiler, or choose AVX SIMD
>   (slower).
> Call Stack (most recent call first):
>   CMakeLists.txt:645 (gmx_manage_simd)
>
>
> The output file says:
> -- The C compiler identification is GNU 4.8.5
> -- The CXX compiler identification is GNU 4.8.5
> -- Check for working C compiler: /usr/local/gcc/4.8.5/bin/gcc
> -- Check for working C compiler: /usr/local/gcc/4.8.5/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- Check for working CXX compiler: /usr/local/gcc/4.8.5/bin/g++
> -- Check for working CXX compiler: /usr/local/gcc/4.8.5/bin/g++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Try OpenMP C flag = [-fopenmp]
> -- Performing Test OpenMP_FLAG_DETECTED
> -- Performing Test OpenMP_FLAG_DETECTED - Success
> -- Try OpenMP CXX flag = [-fopenmp]
> -- Performing Test OpenMP_FLAG_DETECTED
> -- Performing Test OpenMP_FLAG_DETECTED - Success
> -- Found OpenMP: -fopenmp
> -- Performing Test CFLAGS_WARN
> -- Performing Test CFLAGS_WARN - Success
> -- Performing Test CFLAGS_WARN_EXTRA
> -- Performing Test CFLAGS_WARN_EXTRA - Success
> -- Performing Test CFLAGS_WARN_UNDEF
> -- Performing Test CFLAGS_WARN_UNDEF - Success
> -- Performing Test CFLAGS_WARN_REL
> -- Performing Test CFLAGS_WARN_REL - Success
> -- Performing Test CFLAGS_EXCESS_PREC
> -- Performing Test CFLAGS_EXCESS_PREC - Success
> -- Performing Test CFLAGS_COPT
> -- Performing Test CFLAGS_COPT - Success
> -- Performing Test CFLAGS_NOINLINE
> -- Performing Test CFLAGS_NOINLINE - Success
> -- Performing Test CXXFLAGS_WARN
> -- Performing Test CXXFLAGS_WARN - Success
> -- Performing Test CXXFLAGS_WARN_EXTRA
> -- Performing Test CXXFLAGS_WARN_EXTRA - Success
> -- Performing Test CXXFLAGS_WARN_UNDEF
> -- Performing Test CXXFLAGS_WARN_UNDEF - Success
> -- Performing Test CXXFLAGS_WARN_REL
> -- Performing Test CXXFLAGS_WARN_REL - Success
> -- Performing Test CXXFLAGS_EXCESS_PREC
> -- Performing Test CXXFLAGS_EXCESS_PREC - Success
> -- Performing Test CXXFLAGS_COPT
> -- Performing Test CXXFLAGS_COPT - Success
> -- Performing Test CXXFLAGS_NOINLINE
> -- Performing Test CXXFLAGS_NOINLINE - Success
> -- Looking for include file unistd.h
> -- Looking for include file unistd.h - found
> -- Looking for include file pwd.h
> -- Looking for include file pwd.h - found
> -- Looking for include file dirent.h
> -- Looking for include file dirent.h - found
> -- Looking for include file time.h
> -- Looking for include file time.h - found
> -- Looking for include file sys/time.h
> -- Looking for include file sys/time.h - found
> -- Looking for include file io.h
> -- Looking for include file io.h - not found
> -- Looking for include file sched.h
> -- Looking for include file sched.h - found
> -- Looking for include file regex.h
> -- Looking for include file regex.h - found
> -- Looking for posix_memalign
> -- Looking for posix_memalign - found
> -- Looking for memalign
> -- Looking for memalign - not found
> -- Looking for _aligned_malloc
> -- Looking for _aligned_malloc - not found
> -- Looking for gettimeofday
> -- Looking for gettimeofday - found
> -- Looking for sysconf
> -- Looking for sysconf - found
> -- Looking for nice
> -- Looking for nice - found
> -- Looking for fsync
> -- Looking for fsync - found
> -- Looking for _fileno
> -- Looking for _fileno - not found
> -- Looking for fileno
> -- Looking for fileno - found
> -- Looking for _commit
> -- Looking for _commit - not found
> -- Looking for sigaction
> -- Looking for sigaction - found
> -- Looking for rsqrt
> -- Looking for rsqrt - not found
> -- Looking for rsqrtf
> -- Looking for rsqrtf - not found
> -- Looking for sqrtf
> -- Looking for sqrtf - found
> -- Looking for clock_gettime in rt
> -- Looking for clock_gettime in rt - found
> -- Looking for feenableexcept in m
> -- Looking for feenableexcept in m - found
> -- Checking for sched.h GNU affinity API
> -- Performing Test sched_affinity_compile
> -- Performing Test sched_affinity_compile - Success
> -- Check if the system is big endian
> -- Searching 16 bit integer
> -- Looking for sys/types.h
> -- Looking for sys/types.h - found
> -- Looking for stdint.h
> -- Looking for stdint.h - found
> -- Looking for stddef.h
> -- Looking for stddef.h - found
> -- Check size of unsigned short
> -- Check size of unsigned short - done
> -- Using unsigned short
> -- Check if the system is big endian - little endian
> -- Defaulting to building static libraries
> -- Looking for zlibVersion in /usr/lib64/libz.so
> -- Looking for zlibVersion in /usr/lib64/libz.so - found
> -- Found LibXml2: /home2/ncheron/Programs/LibXml_2.9.2/lib/libxml2.so
> (found version "2.9.2")
> -- Looking for xmlTextWriterEndAttribute in
> /home2/ncheron/Programs/LibXml_2.9.2/lib/libxml2.so
> -- Looking for xmlTextWriterEndAttribute in
> /home2/ncheron/Programs/LibXml_2.9.2/lib/libxml2.so - found
> -- Looking for include file libxml/parser.h
> -- Looking for include file libxml/parser.h - found
> -- Looking for pthread.h
> -- Looking for pthread.h - found
> -- Looking for pthread_create
> -- Looking for pthread_create - not found
> -- Looking for pthread_create in pthreads
> -- Looking for pthread_create in pthreads - not found
> -- Looking for pthread_create in pthread
> -- Looking for pthread_create in pthread - found
> -- Found Threads: TRUE
> -- Looking for include file pthread.h
> -- Looking for include file pthread.h - found
> -- Atomic operations found
> -- Performing Test PTHREAD_SETAFFINITY
> -- Performing Test PTHREAD_SETAFFINITY - Success
> -- Boost version: 1.60.0
> -- Checking for GCC x86 inline asm
> -- Checking for GCC x86 inline asm - supported
> -- Setting build user/date/host/cpu information
> -- Setting build user & time - OK
> -- Checking floating point format
> -- Checking floating point format - IEEE754 (LE byte, LE word)
> -- Checking for 64-bit off_t
> -- Checking for 64-bit off_t - present
> -- Checking for fseeko/ftello
> -- Checking for fseeko/ftello - present
> -- Checking for SIGUSR1
> -- Checking for SIGUSR1 - found
> -- Checking for pipe support
> -- Checking for isfinite
> -- Performing Test isfinite_compile_ok
> -- Performing Test isfinite_compile_ok - Success
> -- Checking for isfinite - yes
> -- Checking for _isfinite
> -- Performing Test _isfinite_compile_ok
> -- Performing Test _isfinite_compile_ok - Failed
> -- Checking for _isfinite - no
> -- Checking for _finite
> -- Performing Test _finite_compile_ok
> -- Performing Test _finite_compile_ok - Failed
> -- Checking for _finite - no
> -- Performing Test CXXFLAG_STD_CXX0X
> -- Performing Test CXXFLAG_STD_CXX0X - Success
> -- Performing Test GMX_CXX11_SUPPORTED
> -- Performing Test GMX_CXX11_SUPPORTED - Success
> -- Looking for C++ include regex
> -- Looking for C++ include regex - not found
> -- Checking for system XDR support
> -- Checking for system XDR support - present
> -- Try C compiler AVX2 flag = [-march=core-avx2]
> -- Performing Test C_FLAG_march_core_avx2
> -- Performing Test C_FLAG_march_core_avx2 - Success
> -- Performing Test C_SIMD_COMPILES_FLAG_march_core_avx2
> -- Performing Test C_SIMD_COMPILES_FLAG_march_core_avx2 - Failed
> -- Try C compiler AVX2 flag = [-mavx2]
> -- Performing Test C_FLAG_mavx2
> -- Performing Test C_FLAG_mavx2 - Success
> -- Performing Test C_SIMD_COMPILES_FLAG_mavx2
> -- Performing Test C_SIMD_COMPILES_FLAG_mavx2 - Failed
> -- Try C compiler AVX2 flag = [/arch:AVX]
> -- Performing Test C_FLAG_arch_AVX
> -- Performing Test C_FLAG_arch_AVX - Failed
> -- Try C compiler AVX2 flag = [-hgnu]
> -- Performing Test C_FLAG_hgnu
> -- Performing Test C_FLAG_hgnu - Failed
> -- Try C compiler AVX2 flag = []
> -- Performing Test C_FLAG_
> -- Performing Test C_FLAG_ - Success
> -- Performing Test C_SIMD_COMPILES_FLAG_
> -- Performing Test C_SIMD_COMPILES_FLAG_ - Failed
> -- Try C++ compiler AVX2 flag = [-march=core-avx2]
> -- Performing Test CXX_FLAG_march_core_avx2
> -- Performing Test CXX_FLAG_march_core_avx2 - Success
> -- Performing Test CXX_SIMD_COMPILES_FLAG_march_core_avx2
> -- Performing Test CXX_SIMD_COMPILES_FLAG_march_core_avx2 - Failed
> -- Try C++ compiler AVX2 flag = [-mavx2]
> -- Performing Test CXX_FLAG_mavx2
> -- Performing Test CXX_FLAG_mavx2 - Success
> -- Performing Test CXX_SIMD_COMPILES_FLAG_mavx2
> -- Performing Test CXX_SIMD_COMPILES_FLAG_mavx2 - Failed
> -- Try C++ compiler AVX2 flag = [/arch:AVX]
> -- Performing Test CXX_FLAG_arch_AVX
> -- Performing Test CXX_FLAG_arch_AVX - Failed
> -- Try C++ compiler AVX2 flag = [-hgnu]
> -- Performing Test CXX_FLAG_hgnu
> -- Performing Test CXX_FLAG_hgnu - Failed
> -- Try C++ compiler AVX2 flag = []
> -- Performing Test CXX_FLAG_
> -- Performing Test CXX_FLAG_ - Success
> -- Performing Test CXX_SIMD_COMPILES_FLAG_
> -- Performing Test CXX_SIMD_COMPILES_FLAG_ - Failed
> -- Configuring incomplete, errors occurred!
> See also
> "/home2/ncheron/Programs/gromacs-5.1.1/build/CMakeFiles/CMakeOutput.log".
> See also
> "/home2/ncheron/Programs/gromacs-5.1.1/build/CMakeFiles/CMakeError.log".
>
> Nicolas
>
>
> 2016-01-24 22:29 GMT+01:00 Mark Abraham <mark.j.abraham at gmail.com>:
> >
> > Hi,
> >
> > That shouldn't happen. What does the terminal output when you run cmake
> in
> > a clean build tree?
> >
> > Mark
> >
> > On Sun, 24 Jan 2016 21:59 Nicolas Cheron <
> nicolas.cheron.boulot at gmail.com>
> > wrote:
> >
> > > Hi,
> > >
> > > I have faced the same problem, with gcc 4.8.3, 4.9.1 and 5.2. I ended
> up
> > > asking for SIMD=AVX_256. So I assume there is something else going
> wrong.
> > >
> > > Nicolas
> > >
> > > 2016-01-24 20:59 GMT+01:00 Mark Abraham <mark.j.abraham at gmail.com>:
> > >
> > > > Hi,
> > > >
> > > > Like the *5.1* installation instructions and that error suggest, you
> > > need a
> > > > recent compiler. The "stable" compilers in distros like centos are
> > > merely a
> > > > euphemism for outdated, if you want to run fast on new hardware.
> > > >
> > > > Mark
> > > >
> > > > On Sun, 24 Jan 2016 16:47 Koji Tanaka <kj.tanaka at gmail.com> wrote:
> > > >
> > > > > Hello Gromacs Community,
> > > > >
> > > > > I'm trying to build Gromacs with SIMD=AVX2_256 support, but it
> fails.
> > > > > Instead, if I pick AVX_256, the build will finish okay.
> > > > >
> > > > > However, according to the documentation(
> > > > > http://www.gromacs.org/Documentation/Installation_Instructions_5.0
> ),
> > > > > AVX2_256 is the right option for the Intel Xeon CPU E5-2680 v3
> > > (Haswell).
> > > > > Does anyone have the same problem?
> > > > >
> > > > > My environment is;
> > > > > - CentOS 6.7
> > > > > - Gromacs 5.1.1
> > > > > - OpenMPI 1.10.1
> > > > >
> > > > > The error message is;
> > > > > -------------------------------------------------------------------
> > > > > CMake Error at cmake/gmxManageSimd.cmake:271 (message):
> > > > >   Cannot find AVX2 compiler flag.  Use a newer compiler, or choose
> AVX
> > > > SIMD
> > > > >   (slower).
> > > > > Call Stack (most recent call first):
> > > > >   CMakeLists.txt:645 (gmx_manage_simd)
> > > > >
> > > > >
> > > > > Also, I found the following error in
> build/CMakeFiles/CMakeError.log
> > > > > -------------------------------------------------------------------
> > > > > Run Build Command:/usr/bin/gmake "cmTryCompileExec1019102511/fast"
> > > > > /usr/bin/gmake -f
> CMakeFiles/cmTryCompileExec1019102511.dir/build.make
> > > > > CMakeFiles/cmTryCompileExec1019102511.dir/build
> > > > > gmake[1]: Entering directory
> > > > `/tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp'
> > > > > /usr/bin/cmake -E cmake_progress_report
> > > > > /tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp/CMakeFiles 1
> > > > > Building C object CMakeFiles/cmTryCompileExec1019102511.dir/src.c.o
> > > > > /opt/openmpi/1.10.1/bin/mpicc   -Wundef -Wextra
> > > > > -Wno-missing-field-initializers -Wno-sign-compare -Wpointer-arith
> -Wall
> > > > > -Wno-unused -Wunused-value -Wunused-p
> > > > > arameter  -D_callconv___regcall   -o
> > > > > CMakeFiles/cmTryCompileExec1019102511.dir/src.c.o   -c
> > > > > /tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp/src.c
> > > > > /tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp/src.c:1: error:
> expected
> > > > ‘=’,
> > > > > ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘f’
> > > > > /tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp/src.c: In function
> ‘main’:
> > > > > /tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp/src.c:1: warning:
> implicit
> > > > > declaration of function ‘f’
> > > > > gmake[1]: *** [CMakeFiles/cmTryCompileExec1019102511.dir/src.c.o]
> > > Error 1
> > > > > gmake[1]: Leaving directory
> > > > `/tmp/gromacs-5.1.1/build/CMakeFiles/CMakeTmp'
> > > > > gmake: *** [cmTryCompileExec1019102511/fast] Error 2
> > > > >
> > > > >
> > > > > Any comment/suggestion would be appreciated!
> > > > >
> > > > > Thanks a lot,
> > > > > Koji
> > > > > --
> > > > > Gromacs Users mailing list
> > > > >
> > > > > * Please search the archive at
> > > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> > > > > posting!
> > > > >
> > > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> > > > >
> > > > > * For (un)subscribe requests visit
> > > > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users
> or
> > > > > send a mail to gmx-users-request at gromacs.org.
> > > > --
> > > > Gromacs Users mailing list
> > > >
> > > > * Please search the archive at
> > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> > > > posting!
> > > >
> > > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> > > >
> > > > * For (un)subscribe requests visit
> > > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users
> or
> > > > send a mail to gmx-users-request at gromacs.org.
> > > >
> > > --
> > > Gromacs Users mailing list
> > >
> > > * Please search the archive at
> > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> > > posting!
> > >
> > > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> > >
> > > * For (un)subscribe requests visit
> > > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> > > send a mail to gmx-users-request at gromacs.org.
> > --
> > Gromacs Users mailing list
> >
> > * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> posting!
> >
> > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> >
> > * For (un)subscribe requests visit
> > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> send a mail to gmx-users-request at gromacs.org.
> --
> Gromacs Users mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> send a mail to gmx-users-request at gromacs.org.


More information about the gromacs.org_gmx-users mailing list