[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