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

Berk Hess hess at kth.se
Thu Oct 18 13:15:17 CEST 2012


It seems that for many other packages it does work, so we might want to 
comply with that.

But here we seem to have another issue: -mfma4 was not added automatically.
CMakeLists.txt never checks for this. Did Erik simply forget to do so?

Cheers,

Berk

On 10/18/2012 01:01 PM, Szilárd Páll wrote:
> That's correct. The point I was trying to make is that we might end up 
> hearing about this issue in the future if people use CFLAGS just by 
> routine. I fact, I'm not even sure that cmake is not supposed to pick 
> up CLAGS as well and it's some later cmake pass rewriting compiler 
> options is that the current code is trying to overcome, but it ends up 
> loosing some options when CFLAGS is set.
>
> Any comments? Should CFLAGS work?
>
> --
> Szilárd
>
>
> On Thu, Oct 18, 2012 at 9:43 AM, Jochen Hub <jhub at gwdg.de 
> <mailto:jhub at gwdg.de>> wrote:
>
>     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>
>         <mailto: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>>
>                 <mailto: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>>
>                      <mailto: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>>
>                 <mailto:gmx-developers@
>         <mailto:gmx-developers@>__gromacs.org <http://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>>
>                      <mailto: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>
>                 <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>>
>                 <mailto:gmx-developers@
>         <mailto:gmx-developers@>__gromacs.org <http://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://groma__cs.org> <http://gromacs.org>
>                          <mailto: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>>>.
>
>
>
>                      --
>                      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>>
>                 <mailto:gmx-developers@
>         <mailto:gmx-developers@>__gromacs.org <http://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 <http://gromacs.org>
>                 <mailto: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>
>                 <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>
>         <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 <tel:%2B49-551-39-14189>
>     http://cmb.bio.uni-goettingen.de/
>     ---------------------------------------------------
>     -- 
>     gmx-developers mailing list
>     gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
>     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>.
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20121018/122d2adc/attachment.html>


More information about the gromacs.org_gmx-developers mailing list