21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Perhaps code using _mm512_set_epi8() could be reworked to
avoid that intrinsic, or maybe support could be detected at build
configuration time and definitions for them could be provided in
DPDK headers.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
In file included from ../lib/hash/rte_thash_gfni.h:16,
from ../lib/hash/rte_thash.h:27,
from ../lib/hash/rte_thash.c:7:
../lib/hash/rte_thash_x86_gfni.h: In function ‘__rte_thash_gfni’:
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
[-Werror=implicit-function-declaration]
__m512i permute_idx = _mm512_set_epi8(7, 6, 5, 4, 7, 6, 5, 4,
^~~~~~~~~~~~~~~
_mm512_set1_epi8
From: David Marchand <hidden> Date: 2021-11-09 15:57:51
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Perhaps code using _mm512_set_epi8() could be reworked to
avoid that intrinsic, or maybe support could be detected at build
configuration time and definitions for them could be provided in
DPDK headers.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
In file included from ../lib/hash/rte_thash_gfni.h:16,
from ../lib/hash/rte_thash.h:27,
from ../lib/hash/rte_thash.c:7:
../lib/hash/rte_thash_x86_gfni.h: In function ‘__rte_thash_gfni’:
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
[-Werror=implicit-function-declaration]
__m512i permute_idx = _mm512_set_epi8(7, 6, 5, 4, 7, 6, 5, 4,
^~~~~~~~~~~~~~~
_mm512_set1_epi8
Vladimir, can you reimplement this part without relying on _mm512_set_epi8?
Thanks.
--
David Marchand
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?
Do the machines used for the CentOS 8 CI builds support AVX512?
The failing build is on an Ice Lake server with:
meson -Dmachine=native build
ninja -C build
On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?
From: Thomas Monjalon <hidden> Date: 2021-11-09 16:15:12
09/11/2021 17:12, Lance Richardson:
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
The failing build is on an Ice Lake server with:
meson -Dmachine=native build
ninja -C build
On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?
Based on the CI build logs, the target architecture was Skylake, which
supports AVX512 but doesn't support GFNI.
On Tue, Nov 9, 2021 at 11:15 AM Thomas Monjalon [off-list ref] wrote:
09/11/2021 17:12, Lance Richardson:
quoted
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
quoted
The failing build is on an Ice Lake server with:
meson -Dmachine=native build
ninja -C build
On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?
From: Medvedkin, Vladimir <hidden> Date: 2021-11-09 16:44:17
Hi all,
It looks like the problem caused by the lack of _mm512_set1_epi8()
implementation inside the gcc8, however _mm512_set1_epi[16,32,64] has
been implemented.
I replaced it with _mm512_set1_epi32 and on gcc8 it builds fine. I'll
send a fix soon.
On 09/11/2021 17:22, Lance Richardson wrote:
Based on the CI build logs, the target architecture was Skylake, which
supports AVX512 but doesn't support GFNI.
On Tue, Nov 9, 2021 at 11:15 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 17:12, Lance Richardson:
quoted
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
quoted
The failing build is on an Ice Lake server with:
meson -Dmachine=native build
ninja -C build
On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html
BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.
Lance
# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?