Carl, AVX support was introduced in 4.1 which explains why you did not have such issues before. What is your configure command in these 2 cases ? Please create an issue on github and attach your config.log.
George. On Fri, Feb 5, 2021 at 2:44 PM Carl Ponder via users < users@lists.open-mpi.org> wrote: > Building OpenMPI 4.1.0 with the PGI 21.1 compiler on a Broadwell > processor, I get this error > > libtool: compile: pgcc -DHAVE_CONFIG_H -I. -I../../../../opal/include > -I../../../../ompi/include -I../../../../oshmem/include > -I../../../../opal/mca/hwloc/hwloc201/hwloc/include/private/autogen > -I../../../../opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen > -I../../../../ompi/mpiext/cuda/c -DGENERATE_SSE3_CODE -DGENERATE_SSE41_CODE > -DGENERATE_AVX_CODE -DGENERATE_AVX2_CODE -DGENERATE_AVX512_CODE > -I../../../.. -I../../../../orte/include > -I/gpfs/fs1/SHARE/Utils/PGI/21.1/Linux_x86_64/21.1/cuda/11.2/include > -DUCS_S_PACKED= -I/gpfs/fs1/SHARE/Utils/ZLib/1.2.11/PGI-21.1/include > -I/gpfs/fs1/SHARE/Utils/HWLoc/2.4.0/PGI-21.1_CUDA-11.2.0.0_460.27.04/include > -I/usr/local/include -I/usr/local/include -march=skylake-avx512 -O3 > -DNDEBUG -m64 -tp=px -Mnodalign -fno-strict-aliasing -c op_avx_functions.c > -MD -fPIC -DPIC -o .libs/liblocal_ops_avx512_la-op_avx_functions.o > LLVM ERROR: Cannot select: intrinsic %llvm.x86.sse3.ldu.dq > Makefile:1993: recipe for target > 'liblocal_ops_avx512_la-op_avx_functions.lo' failed > make[2]: *** [liblocal_ops_avx512_la-op_avx_functions.lo] Error 1 > make[2]: Leaving directory > '/gpfs/fs1/SHARE/Utils/OpenMPI/4.1.0/PGI-21.1_CUDA-11.2.0.0_460.27.04_UCX-1.10.0-rc2_HWLoc-2.4.0_ZLib-1.2.11/distro/ompi/mca/op/avx' > > and the GCC 10.2.0 compiler gives me errors like this: > > op_avx_functions.c: In function ‘ompi_op_avx_2buff_bxor_uint64_t_avx512’: > op_avx_functions.c:208:21: warning: AVX512F vector return without AVX512F > enabled changes the ABI [-Wpsabi] > 208 | __m512i vecA = > _mm512_loadu_si512((__m512i*)in); \ > | ^~~~ > op_avx_functions.c:263:5: note: in expansion of macro > ‘OP_AVX_AVX512_BIT_FUNC’ > 263 | OP_AVX_AVX512_BIT_FUNC(name, type_size, type, > op); \ > | ^~~~~~~~~~~~~~~~~~~~~~ > op_avx_functions.c:573:5: note: in expansion of macro ‘OP_AVX_BIT_FUNC’ > 573 | OP_AVX_BIT_FUNC(bxor, 64, uint64_t, xor) > | ^~~~~~~~~~~~~~~ > In file included from > /gpfs/fs1/SHARE/Utils/GCC/10.2.0/GCC-BASE-7.5.0_GMP-6.2.1_ISL-0.23_MPFR-4.1.0_MPC-1.2.1_CUDA-11.2.0.0_460.27.04/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/immintrin.h:55, > from op_avx_functions.c:26: > op_avx_functions.c: In function ‘ompi_op_avx_2buff_max_int8_t_avx512’: > /gpfs/fs1/SHARE/Utils/GCC/10.2.0/GCC-BASE-7.5.0_GMP-6.2.1_ISL-0.23_MPFR-4.1.0_MPC-1.2.1_CUDA-11.2.0.0_460.27.04/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/avx512fintrin.h:6429:1: > error: inlining failed in call > to ‘always_inline’ ‘_mm512_storeu_si512’: target specific option mismatch > > I can get 4.1.0 to build with GCC by removing these flags > > -march=corei7-avx -mtune=corei7-avx > > and PGI by removing this flag > > -tp=px > > I didn't have these issues with the OpenMPI 4.0.4 source. Is there a bug > in the 4.1.0? >