Update on this: there's a WIP PR providing an easyblock for FFTW, cfr. https://github.com/hpcugent/easybuild-easyblocks/pull/1083 .

It works, but should probably be updated to take into account --optarch=GENERIC, since now it will by default auto-detect which SSE2/AVX* instructions can be used, and then configure FFTW accordingly.


On 05/01/2017 13:30, Kenneth Hoste wrote:


On 05/01/2017 13:07, Åke Sandgren wrote:
Like the correct set of
-mavx -mavx2 -mavx512f -mavx512pf -mavx512er -mavx512cd -mavx512vl
-mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi

Not quite sure which of the avx512 flags one needs.

That's for FFTW to deal with, not us?


K.

On 01/05/2017 01:03 PM, Åke Sandgren wrote:
Yeah, forgot that one has to add a some more flags to tell gcc to enable
those on a non-avx2 system.

And as Markus pointed out, non amd64 systems can use any of them...

On 01/05/2017 11:52 AM, Kenneth Hoste wrote:
Hi Åke,

On 07/12/2016 20:03, Åke Sandgren wrote:
Since i couldn't join todays meeting, here are some comments on the
outcome.

Regarding the suggested foss/2017a, OpenMPI 2.0.1 is way better than
1.10 in my opinion. Esp since i've seen cases of 1.10.3 failing to
actually start... probably a weird corner case, but it's repeatable.
We'll be going forward with OpenMPI 2.0.2 (about to be released).

FFTW 3.3.5 (at least for this toolchain) should be compiled with
--enable-sse2 --enable-avx --enable-avx2
and preferably with --enable-avx512 too.
I'm looking into this, but even though the FFTW documentation clearly
states that an FFTW library compiled with AVX2 will run just fine on a
system without AVX2, it seems like *building* FFTW with --enable-avx2 on
a system that doesn't support AVX2 doesn't work...

Here's what I'm seeing on a Sandy Bridge systems:

configure flags:

     --enable-threads --enable-openmp --with-pic --enable-single
--enable-mpi --enable-sse2 --enable-avx --enable-avx2 --enable-avx512

fails with:

In file included from ../../../dft/simd/n1f.h:21:0,
                  from ../common/n1fv_12.c:35,
                  from n1fv_12.c:3:
../../../simd-support/simd-avx2.h:43:2: error: #error "compiling
simd-avx2.h without avx2 support"
  #error "compiling simd-avx2.h without avx2 support"
   ^~~~~


So, I don't think that including all of these --enable-avx* flags is
going to work out well, unless we implement an FFTW easyblock that
auto-detects *what* is really supported and injects the corresponding
--enable-avx* flags.

3.3.5 built that way is safe to run on anything from sse2-only and
upwards.
And 6.2(3) is supposed to be able to build it that way even on sse2-only
systems.
Apparently not, but I don't think it's the problem of the GCC being
used, but of FFTW itself not allowing it...


regards,

Kenneth

On 12/07/2016 06:07 PM, Kenneth Hoste wrote:
Hi all,

Notes for today's conf call are available at
https://github.com/hpcugent/easybuild/wiki/Conference-call-notes-20161207
.

Next conf call is planned for Wed Dec 21st 2016, 5pm CET.


regards,

Kenneth

On 07/12/16 08:47, Kenneth Hoste wrote:
Dear EasyBuilders,

The next EasyBuild conference call is planned for today, Wed Dec 7th
2016, 5pm CET;
see also https://plus.google.com/events/c2n1qkbp1fhii89u647skiu5864

Agenda:

      * common toolchains: foss/2017a, intel/2017a

      * update on RPATH support
* https://github.com/hpcugent/easybuild-framework/issues/1992

      * Q&A

Suggestions for additional topics are welcome, please let me know if
you're planning to attend this conf call.

More information about the EasyBuild conference calls is available at
https://github.com/hpcugent/easybuild/wiki/Conference-calls .


regards,

Kenneth


Reply via email to