[gmx-developers] warning Emulating FMA instructions - this is probably not what you want!

Jochen Hub jhub at gwdg.de
Thu Oct 18 09:43:51 CEST 2012


Following Szilard, I tried to use

cmake -DCMAKE_C_FLAGS=-mfma4 ...

instead of export CFLAGS=-mfma4 to add the -mfma4 flag. Now, the only 
difference in CMakeCache.txt is

< CMAKE_C_FLAGS:STRING='-mavx  -Wall -Wno-unused -Wunused-value  '
---
 > CMAKE_C_FLAGS:STRING=-mavx  -Wall -Wno-unused -Wunused-value  -mfma4

which is just what I wanted, right? (and the warning on emulating FMA 
instructions does not appear any more).

Jochen


Am 10/17/12 11:28 PM, schrieb Szilárd Páll:
>
> That way of calling CMake triggers an interesting bug in the option
> generator and CFLAGS will essentially override part of the
> auto-generated compiler options. Diff of relevant lines in
> CMakeCache.txt are below, the only difference is that the second file
> ("+" in the diff) was generated by running "CFLAGS=-march=native cmake...":
>
>   //Flags used by the compiler during all build types
> -CMAKE_C_FLAGS:STRING='-msse2  -Wall -Wno-unused -Wunused-value  '
> +CMAKE_C_FLAGS:STRING='-msse2  -march=native '
>   //Flags used by the compiler during debug builds.
> -CMAKE_C_FLAGS_DEBUG:STRING=-fno-inline  -g
> +CMAKE_C_FLAGS_DEBUG:STRING=-g
> -//Flags used by the compiler during release builds.
> -CMAKE_C_FLAGS_RELEASE:STRING=-fomit-frame-pointer -funroll-all-loops
> -fexcess-precision=fast  -O3 -DNDEBUG
> +//Flags used by the compiler during release builds (/MD /Ob1 /Oi
> +// /Ot /Oy /Gs will produce slightly less optimized but smaller
> +// files).
> +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
>
> As this messes with "considered to be best basic set of options", we
> could state that CFLAGS should not be used, but it might be a better
> alternative to make the configuration prepend the CFLAG to the
> CMAKE_C_FLAGS and keep our generated set of flags as well.
>
> I'm not sure which options is best. Thoughts?
>
> --
> Szilárd
>
>
> On Wed, Oct 17, 2012 at 10:12 PM, Jochen Hub <jhub at gwdg.de
> <mailto:jhub at gwdg.de>> wrote:
>
>     Hi all,
>
>     many thanks for the help. I now compiled with gcc 4.7 and with
>     manually adding export CFLAGS=-mfma4 (that is what you meant,
>     right?). Now the warning does not appear any more.
>
>     I am not sure though how Gromacs performed on this hardware using
>     these settings, as the AVX kernels are apparently not in release-4.6.
>
>     Thanks,
>     Jochen
>
>
>     Am 10/17/12 5:12 PM, schrieb Szilárd Páll:
>
>         On Wed, Oct 17, 2012 at 4:46 PM, Berk Hess <hess at kth.se
>         <mailto:hess at kth.se>
>         <mailto:hess at kth.se <mailto:hess at kth.se>>> wrote:
>
>              Hi,
>
>              Apparently icc can compile the code, so than it's not
>         strange that
>              you end up in this situation. But we should avoid this from
>         happening.
>              SSE4.1 would be the next supported level, but you really
>         want the
>              vex instructions and not plain SSE, as the latter is much
>         slower.
>
>
>         AMD explicitly states that only up to -msse3 should be used on
>         Bulldozer
>         and I have never tried to generate SSE4.1 instructions with icc
>         and run
>         it on AMD. I would not be surprised if it didn't work.
>
>         --
>         Szilárd
>
>              The best thing would be to use gcc, preferably 4.7.
>
>              Cheers,
>
>              Berk
>
>              ----- Reply message -----
>              From: "Szilárd Páll" <szilard.pall at cbr.su.se
>         <mailto:szilard.pall at cbr.su.se>
>              <mailto:szilard.pall at cbr.su.se
>         <mailto:szilard.pall at cbr.su.se>__>>
>              To: "Discussion list for GROMACS development"
>              <gmx-developers at gromacs.org
>         <mailto:gmx-developers at gromacs.org>
>         <mailto:gmx-developers at __gromacs.org
>         <mailto:gmx-developers at gromacs.org>>>
>              Subject: [gmx-developers] warning Emulating FMA
>         instructions - this
>              is probably not what you want!
>              Date: Wed, Oct 17, 2012 15:25
>
>
>              Hi,
>
>              First of all, as far as I know, the new icc 13 can not generate
>              AMD-compatible FMA4/XOP (v12 surely cant:
>         http://developer.amd.com/__Assets/CompilerOptQuickRef-__62004200.pdf
>         <http://developer.amd.com/Assets/CompilerOptQuickRef-62004200.pdf>),
>              so I find it strange that you've ended up with
>              GMX_ACCELERATION=AVX_128_FMA using an Intel compiler --
>         unless you
>              set the acceleration manually. To get FMA4 support you need
>         to use a
>              recent gcc version, the newer the better. The Verlet
>         kernels don't
>              benefit much from FMA4, so if you want to, you can use Intel
>              Compiler, but then you need to set the acceleration to SSE2
>         (max
>              SSE3 works, but we don't use these instructions).
>
>              On Wed, Oct 17, 2012 at 11:14 AM, Jochen Hub <jhub at gwdg.de
>         <mailto:jhub at gwdg.de>
>              <mailto:jhub at gwdg.de <mailto:jhub at gwdg.de>>> wrote:
>
>                  Hi developers,
>
>                  does anyone know how to interpret this icc warning:
>
>                  [  8%]
>
>         /home/jhub/src/gromacs/____include/gmx_x86_avx_128_fma.h(____88):
>
>                  warning #1224: #warning directive: Emulating FMA
>         instructions -
>                  this is probably not what you want!
>
>                     #warning Emulating FMA instructions - this is
>         probably not
>                  what you want!
>
>
>              This warning is related to a bug in the build system,
>         you'll need to
>              add the -mfma4 flag to the compiler flags manually.
>
>              --
>              Szilard
>
>
>                  I am compiling 46-release on a Interlagos 6378 with
>         OpenMPI and
>                  icc 13.0.0 20120731. My cmake line is:
>
>                  cmake $gmxsrc \
>                       -DFFTW_LIBRARY=$FFTW_LOCATION/____lib/libfftw3f.a \
>                       -DFFTW3F_INCLUDE_DIR=$FFTW_____LOCATION/include \
>
>           -DFFTW3F_LIBRARIES=$FFTW_____LOCATION/lib/libfftw3f.a \
>
>                       -DCMAKE_INSTALL_PREFIX=$(pwd) \
>                       -DGMX_X11=OFF \
>                       -DCMAKE_CXX_COMPILER=$MPICXX \
>                       -DCMAKE_C_COMPILER=$MPICC \
>                       -DGMX_MPI=ON \
>                       -DGMX_PREFER_STATIC_LIBS=ON \
>                       -DGMX_GPU=OFF
>
>                  and cmake reported:
>
>                  -- Performing Test GNU_AVX_CFLAG
>                  -- Performing Test GNU_AVX_CFLAG - Success
>                  -- Enabling 128-bit AVX Gromacs acceleration (with
>                  fused-multiply add), and it will help compiler
>         optimization.
>
>                  Thanks a lot,
>                  Jochen
>
>
>
>
>                  --
>                  ------------------------------____---------------------
>
>                  Dr. Jochen Hub
>                  Computational Molecular Biophysics Group
>                  Institute for Microbiology and Genetics
>                  Georg-August-University of Göttingen
>                  Justus-von-Liebig-Weg 11, 37077 Göttingen, Germany.
>                  Phone: +49-551-39-14189 <tel:%2B49-551-39-14189>
>         <tel:%2B49-551-39-14189>
>         http://cmb.bio.uni-goettingen.____de/
>                  <http://cmb.bio.uni-__goettingen.de/
>         <http://cmb.bio.uni-goettingen.de/>>
>                  ------------------------------____---------------------
>                  --
>                  gmx-developers mailing list
>         gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
>         <mailto:gmx-developers at __gromacs.org
>         <mailto:gmx-developers at gromacs.org>>
>         http://lists.gromacs.org/____mailman/listinfo/gmx-____developers
>         <http://lists.gromacs.org/__mailman/listinfo/gmx-__developers>
>
>
>         <http://lists.gromacs.org/__mailman/listinfo/gmx-__developers
>         <http://lists.gromacs.org/mailman/listinfo/gmx-developers>>
>                  Please don't post (un)subscribe requests to the list.
>         Use the
>                  www interface or send it to
>         gmx-developers-request at __groma__cs.org <http://gromacs.org>
>                  <mailto:gmx-developers-__request at gromacs.org
>         <mailto:gmx-developers-request at gromacs.org>>.
>
>
>
>              --
>              gmx-developers mailing list
>         gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
>         <mailto:gmx-developers at __gromacs.org
>         <mailto:gmx-developers at gromacs.org>>
>
>         http://lists.gromacs.org/__mailman/listinfo/gmx-__developers
>         <http://lists.gromacs.org/mailman/listinfo/gmx-developers>
>              Please don't post (un)subscribe requests to the list. Use the
>              www interface or send it to
>         gmx-developers-request at __gromacs.org
>         <mailto:gmx-developers-request at gromacs.org>
>              <mailto:gmx-developers-__request at gromacs.org
>         <mailto:gmx-developers-request at gromacs.org>>.
>
>
>
>
>
>     --
>     ------------------------------__---------------------
>     Dr. Jochen Hub
>     Computational Molecular Biophysics Group
>     Institute for Microbiology and Genetics
>     Georg-August-University of Göttingen
>     Justus-von-Liebig-Weg 11, 37077 Göttingen, Germany.
>     Phone: +49-551-39-14189 <tel:%2B49-551-39-14189>
>     http://cmb.bio.uni-goettingen.__de/ <http://cmb.bio.uni-goettingen.de/>
>     ------------------------------__---------------------
>
>

-- 
---------------------------------------------------
Dr. Jochen Hub
Computational Molecular Biophysics Group
Institute for Microbiology and Genetics
Georg-August-University of Göttingen
Justus-von-Liebig-Weg 11, 37077 Göttingen, Germany.
Phone: +49-551-39-14189
http://cmb.bio.uni-goettingen.de/
---------------------------------------------------



More information about the gromacs.org_gmx-developers mailing list