Hi,
as described in segmentation fault with pgi 16.1 · Issue #55 · FFTW/fftw3 · GitHub , fftw 3.3.4 does compile with pgi 16.1 alright, BUT any client to the library produces a segfault. In other words, fftw 3.3.4 is unusable with 16.1!
the behavior can be reproduced with the “bench” utility inside the source code directory or by calling “make check”. Any help would be appreciated. PGI 15.9 builds the library without any problems and produces a working binary.
Best,
P
PS. Recent versions of GCC and ICC also produce usable binaries of fftw 3.3.4!
tull
March 8, 2016, 6:47pm
2
We are investigating, and while we do build fftw, we are not using your
configuration. When we determine what is going wrong, we will create
a bug report for it and proceed from there.
dave
thanks dave for letting me know. Please keep me posted on this!
tull
October 18, 2016, 5:34pm
5
I just downloaded fftw 3.3.5
and built them on a Nehalem and Haswell systems. I used the configuration
CC=pgcc
CXX=pgc++
F77=pgfortran
FC=pgfortran
FFLAGS=“-Mpreprocess -Mbackslash -O2”
CFLAGS=“-O2”
CPPFLAGS=“-O2”
./configure --prefix=/path/to/final/installdir
make
make check
make install
and things work as expected.
I tried this with both 16.9 and upcoming 16.10 release.
dave
very good news! thanks. than I consider this closed.
Best,
P
I just downloaded fftw 3.3.5
and built them on a Nehalem and Haswell systems. I used the configuration
CC=pgcc
CXX=pgc++
F77=pgfortran
FC=pgfortran
FFLAGS=“-Mpreprocess -Mbackslash -O2”
CFLAGS=“-O2”
CPPFLAGS=“-O2”
./configure --prefix=/path/to/final/installdir
make
make check
make install
and things work as expected.
I tried this with both 16.9 and upcoming 16.10 release.
dave
Unfortunately, you had not add --enable-avx flag. With this this flag version 3.3.5 fails during the compilation . Other hand version 3.3.4 is compiled by PGI 16.9 , 16.10 but failed during the run as at the beginning of this topic. Therefore, fftw 3.3.4 and 3.3.5 are still unusable with 16.9-16.10!
according to
opened 02:12PM - 02 Mar 16 UTC
Hi -
I need to use fftw 3.3.4 with the pgi compiler 16.1. fftw does build with … the following flags"
```
$ CC=pgcc CFLAGS="-O2 -fPIC" F77=pgfortran FFLAGS="-O2" ./configure --enable-avx --enable-openmp --enable-shared --prefix=/home/steinba/software/fftw/3.3.4/pgi161-nompi
```
fftw builds, the checks fail and I see that the bench util runs into a segmentation fault when called like
```
$ ./bench -s 64
Segmentation fault (core dumped)
```
The code can be compiled alright with pgi 15.9 and the bench utility runs just fine.
Any idea?
Thanks,
P
```
$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.4 (Santiago)
Release: 6.4
Codename: Santiago
$ uname -a
Linux tauruslogin4 2.6.32-504.3.3.el6.x86_64 #1 SMP Fri Dec 12 16:05:43 EST 2014 x86_64 x86_64 x86_64 GNU/Linux
```
opened 10:45AM - 07 Jan 17 UTC
closed 04:28PM - 16 Jan 17 UTC
Hello all!
I tried to build FFTW version 3.3.5 with --enable-avx flag by usi… ng PGI-16.9 compiler and got the following errors:
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx.h: 262)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx.h: 271)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx.h: 280)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx.h: 289)
Using --enable-avx2 provides another errors of the same type:
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 102)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 103)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 104)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 105)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 90)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 91)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 94)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 95)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 96)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_10.c: 98)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 100)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 101)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 102)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 106)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 107)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 108)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 83)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 86)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 87)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 88)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 89)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 90)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 91)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 94)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 95)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 96)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_11.c: 97)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_3.c: 54)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_5.c: 64)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_5.c: 65)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_5.c: 68)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_5.c: 70)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_5.c: 71)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_6.c: 69)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_6.c: 71)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 70)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 71)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 72)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 73)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 75)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 76)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 79)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 80)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 81)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 82)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 85)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 86)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 87)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 88)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_7.c: 89)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_8.c: 80)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_8.c: 81)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_8.c: 82)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_8.c: 83)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 103)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 104)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 105)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 106)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 107)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 108)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 110)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 111)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 83)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 87)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 89)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 93)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 94)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 95)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 96)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 97)
PGC-S-0094-Illegal type conversion required (./../common/n1fv_9.c: 98)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 263)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 273)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 278)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 282)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 301)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 341)
PGC-S-0094-Illegal type conversion required (../../../simd-support/simd-avx2.h: 349)
Is any way to overcome this issue, except disabling avx and avx2 ?
the problem with segfaulting FFTW still exists in PGI 16.9
tull
January 9, 2017, 10:32pm
9
We filed TPR 23180 in October, but it does appear corrected yet.
You can enable avx type instructions from code generator if you compile
on a Sandybridge cpu or compile with “-tp sandybridge”. Other CPUs support
avx as well (amd bulldozer, for example). To get avx2 instructions as
part of what the code generator can generate, use -tp haswell.
add the cpu type to the compile flags.
But inlining the avx headers in fftw when you set those switches, does not work yet, and we don’t know if it is the header or us.
dave