Skip to content

Compile failure on KNL #183

Open
Open
@manodeep

Description

@manodeep

General information

  • Corrfunc version: 2.3.0
  • platform: linux
  • installation method (pip/source/other?): source

Issue description

Compilation failure with both gcc (tested with 6.4.0, 7.3.0) and icc with an error message.

Expected behavior

Code should compile on KNL

Actual behavior

Compile failure with the following error message (gcc7.3.0)

gcc -DDOUBLE_PREC  -DVERSION=\"2.3.0\" -DUSE_UNICODE -std=c99 -m64 -g -Wsign-compare -Wall -Wextra -Wshadow -Wunused -fPIC -D_POSIX_SOURCE=200809L -D_GNU_SOURCE -D_DARWIN_C_SOURCE -O3  -ftree-vectorize -funroll-loops -fprefetch-loop-arrays --param simultaneous-prefetches=4  -fopenmp -funroll-loops -march=native -fno-strict-aliasing -Wformat=2  -Wpacked  -Wnested-externs -Wpointer-arith  -Wredundant-decls  -Wfloat-equal -Wcast-qual -Wcast-align -Wmissing-declarations -Wmissing-prototypes  -Wnested-externs -Wstrict-prototypes   -Wno-unused-local-typedefs  -I../../io -I../../utils  -c countpairs_wp_impl_double.c -o countpairs_wp_impl_double.o
In file included from /apps/knl/software/core/gcccore/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/immintrin.h:43:0,
             from ../../utils/avx512_calls.h:16,
             from ../../utils/weight_functions_double.h:12,
             from wp_kernels_double.c:22,
             from countpairs_wp_impl_double.c:23:
/apps/knl/software/core/gcccore/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/avx2intrin.h: In function 'wp_avx512_intrinsics_double':
/apps/knl/software/core/gcccore/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/avx2intrin.h:973:20: error: the last argument must be an 8-bit immediate
   return (__m256i) __builtin_ia32_pblendd256 ((__v8si)__X,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        (__v8si)__Y,
        ~~~~~~~~~~~~
        __M);
        ~~~~     
make: *** [countpairs_wp_impl_double.o] Error 1

What have you tried so far?

Nothing yet. Initial searching has not lead to any obvious solution. I suspect that the error occurs on KNL because AVX512VL is not supported (unlike Skylake cpus where there is AVX512VL support)

Minimal failing example

The following steps should be sufficient to reproduce the problem:

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions