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

Szilárd Páll szilard.pall at cbr.su.se
Thu Oct 18 13:01:00 CEST 2012


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> 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>> 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@**gromacs.org <gmx-developers at gromacs.org>
>> >
>>         <mailto:gmx-developers at __groma**cs.org <http://gromacs.org>
>>         <mailto:gmx-developers@**gromacs.org <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>
>>         <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/>
>>         <http://cmb.bio.uni-**goettingen.de/<http://cmb.bio.uni-goettingen.de/>
>> >>
>>                  ------------------------------**
>> ____---------------------
>>
>>                  --
>>                  gmx-developers mailing list
>>         gmx-developers at gromacs.org <mailto:gmx-developers@**gromacs.org<gmx-developers at gromacs.org>
>> >
>>         <mailto:gmx-developers at __groma**cs.org <http://gromacs.org>
>>         <mailto:gmx-developers@**gromacs.org <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>
>> >
>>
>>
>>
>>         <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<gmx-developers-__request at gromacs.org>
>>
>>         <mailto:gmx-developers-**request at gromacs.org<gmx-developers-request at gromacs.org>
>> >>.
>>
>>
>>
>>              --
>>              gmx-developers mailing list
>>         gmx-developers at gromacs.org <mailto:gmx-developers@**gromacs.org<gmx-developers at gromacs.org>
>> >
>>         <mailto:gmx-developers at __groma**cs.org <http://gromacs.org>
>>
>>         <mailto:gmx-developers@**gromacs.org <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<gmx-developers-request at gromacs.org>
>> >
>>              <mailto:gmx-developers-__**request at gromacs.org<gmx-developers-__request at gromacs.org>
>>         <mailto:gmx-developers-**request at gromacs.org<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/ <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/ <http://cmb.bio.uni-goettingen.de/>
> ------------------------------**---------------------
> --
> gmx-developers mailing list
> 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@**gromacs.org<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/a6198e31/attachment.html>


More information about the gromacs.org_gmx-developers mailing list