Cannot compile blaze headers on Intel Skylake nodes
Issue #205
resolved
Commit: d518c7ccf5f645740a168163e707a9075acd943e
g++ Version: 7.1.0
Compiling an empty main, which includes some headers (blaze_mwe.cpp
is attached) on the Stampede2 Skylake partition
g++ -I$WORK/dgswemv2_install_Release_stampede2-skx/include -march=native blaze_mwe.cpp
produces the following error
c506-053[skx](1146)$ g++ -std=c++14 -g -march=native -O3 -o main.o -I/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/ main.cpp
In file included from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Functions.h:83:0,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/SIMD.h:45,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/dense/DenseIterator.h:35,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/dense/StaticVector.h:49,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/CompressedVector.h:43,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/CompressedMatrix.h:46,
from /work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/Math.h:48,
from main.cpp:1:
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h: In function ‘blaze::SIMDint8 blaze::sign(const blaze::SIMDint8&)’:
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h:72:27: error: ‘_mm512_setzero_epi8’ was not declared in this scope
const __m512i zero ( _mm512_setzero_epi8() );
^~~~~~~~~~~~~~~~~~~
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h:72:27: note: suggested alternative: ‘_mm512_setzero_epi32’
const __m512i zero ( _mm512_setzero_epi8() );
^~~~~~~~~~~~~~~~~~~
_mm512_setzero_epi32
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h: In function ‘blaze::SIMDint16 blaze::sign(const blaze::SIMDint16&)’:
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h:115:27: error: ‘_mm512_setzero_epi16’ was not declared in this scope
const __m512i zero ( _mm512_setzero_epi16() );
^~~~~~~~~~~~~~~~~~~~
/work/02578/bremer/stampede2/dgswemv2_install_Release_stampede2-skx/include/blaze/math/simd/Sign.h:115:27: note: suggested alternative: ‘_mm512_setzero_epi32’
const __m512i zero ( _mm512_setzero_epi16() );
^~~~~~~~~~~~~~~~~~~~
_mm512_setzero_epi32
Please advise on how to proceed. Thanks!
Just in case, you're curious here are the -march=native
flags:
c506-024[skx](1032)$ echo | gcc -### -E - -march=native
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-pc-linux-gnu
Configured with: /admin/build/rpms/BUILD/gcc-7.1.0/configure --enable-libssp --enable-gold=yes --enable-ld=default --enable-plugins --enable-lto --with-tune=generic --enable-languages=c,c++,fortran --disable-multilib --prefix=/opt/apps/gcc/7.1.0 --with-gmp=/opt/apps/gcc/7.1.0 --with-mlgmp=/opt/apps/gcc/7.1.0 --with-mpfr=/opt/apps/gcc/7.1.0 --with-mpc=/opt/apps/gcc/7.1.0 --with-isl=/opt/apps/gcc/7.1.0
Thread model: posix
gcc version 7.1.0 (GCC)
COLLECT_GCC_OPTIONS='-E' '-march=native'
/opt/apps/gcc/7.1.0/libexec/gcc/x86_64-pc-linux-gnu/7.1.0/cc1 -E -quiet - "-march=knl" -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase -mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mavx512f -mno-avx512er -mavx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt -mxsavec -mxsaves -mavx512dq -mavx512bw -mavx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mclwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid --param "l1-cache-size=32" --param "l1-cache-line-size=64" --param "l2-cache-size=33792" "-mtune=generic"
COMPILER_PATH=/opt/apps/xalt/xalt/bin/:/opt/apps/gcc/7.1.0/libexec/gcc/x86_64-pc-linux-gnu/7.1.0/:/opt/apps/gcc/7.1.0/libexec/gcc/x86_64-pc-linux-gnu/7.1.0/:/opt/apps/gcc/7.1.0/libexec/gcc/x86_64-pc-linux-gnu/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../../x86_64-pc-linux-gnu/bin/
LIBRARY_PATH=/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../../x86_64-pc-linux-gnu/lib/:/opt/apps/gcc/7.1.0/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-E' '-march=native'
Comments (5)
-
-
-
assigned issue to
-
assigned issue to
-
- changed status to open
-
- changed status to resolved
Commit 1e02b4e provides a fix for the
sign()
functions for 8-bit and 16-bit integral data types using AVX-512BW. The fix is immediately available via cloning the Blaze repository and will be officially released in Blaze 3.5. -
reporter Just pulled and rebuilt. Everything looks good on my end as well.
Thanks for the quick turn around!
- Log in to comment
Hi Maximilian!
Thanks a lot for creating this issue. The problem is definitely on our side and we will provide a fix as quickly as possible. We apologize for the inconvenience and promise to fix the hole in our testing suite!
Best regards
Klaus!