DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Build failures in 21.11-rc2
@ 2021-11-09 15:53 Lance Richardson
  2021-11-09 15:57 ` David Marchand
  0 siblings, 1 reply; 7+ messages in thread
From: Lance Richardson @ 2021-11-09 15:53 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 15:53 [dpdk-dev] Build failures in 21.11-rc2 Lance Richardson
@ 2021-11-09 15:57 ` David Marchand
  2021-11-09 16:08   ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: David Marchand @ 2021-11-09 15:57 UTC (permalink / raw)
  To: Vladimir Medvedkin
  Cc: dev, Lance Richardson, Thomas Monjalon, Ananyev, Konstantin

On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
<lance.richardson@broadcom.com> 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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 15:57 ` David Marchand
@ 2021-11-09 16:08   ` Thomas Monjalon
  2021-11-09 16:12     ` Lance Richardson
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2021-11-09 16:08 UTC (permalink / raw)
  To: Vladimir Medvedkin, David Marchand, Lance Richardson
  Cc: dev, Ananyev, Konstantin

09/11/2021 16:57, David Marchand:
> On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
> <lance.richardson@broadcom.com> 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.

CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
> > 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)
[...]
> > ../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?



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 16:08   ` Thomas Monjalon
@ 2021-11-09 16:12     ` Lance Richardson
  2021-11-09 16:15       ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: Lance Richardson @ 2021-11-09 16:12 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Vladimir Medvedkin, David Marchand, dev, Ananyev, Konstantin

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 <thomas@monjalon.net> wrote:
>
> 09/11/2021 16:57, David Marchand:
> > On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
> > <lance.richardson@broadcom.com> 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.
>
> CI compilation was passing:
> http://mails.dpdk.org/archives/test-report/2021-November/238534.html
> I would like to better understand.
>
> [...]
> > > 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)
> [...]
> > > ../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?
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 16:12     ` Lance Richardson
@ 2021-11-09 16:15       ` Thomas Monjalon
  2021-11-09 16:22         ` Lance Richardson
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2021-11-09 16:15 UTC (permalink / raw)
  To: Lance Richardson
  Cc: Vladimir Medvedkin, David Marchand, dev, Ananyev, Konstantin

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 <thomas@monjalon.net> wrote:
> > 09/11/2021 16:57, David Marchand:
> > > On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
> > > <lance.richardson@broadcom.com> 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.
> >
> > CI compilation was passing:
> > http://mails.dpdk.org/archives/test-report/2021-November/238534.html
> > I would like to better understand.
> >
> > [...]
> > > > 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)
> > [...]
> > > > ../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?




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 16:15       ` Thomas Monjalon
@ 2021-11-09 16:22         ` Lance Richardson
  2021-11-09 16:44           ` Medvedkin, Vladimir
  0 siblings, 1 reply; 7+ messages in thread
From: Lance Richardson @ 2021-11-09 16:22 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Vladimir Medvedkin, David Marchand, dev, Ananyev, Konstantin

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 <thomas@monjalon.net> wrote:
>
> 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 <thomas@monjalon.net> wrote:
> > > 09/11/2021 16:57, David Marchand:
> > > > On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
> > > > <lance.richardson@broadcom.com> 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.
> > >
> > > CI compilation was passing:
> > > http://mails.dpdk.org/archives/test-report/2021-November/238534.html
> > > I would like to better understand.
> > >
> > > [...]
> > > > > 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)
> > > [...]
> > > > > ../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?
>
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] Build failures in 21.11-rc2
  2021-11-09 16:22         ` Lance Richardson
@ 2021-11-09 16:44           ` Medvedkin, Vladimir
  0 siblings, 0 replies; 7+ messages in thread
From: Medvedkin, Vladimir @ 2021-11-09 16:44 UTC (permalink / raw)
  To: Lance Richardson, Thomas Monjalon
  Cc: David Marchand, dev, Ananyev,  Konstantin

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 <thomas@monjalon.net> wrote:
>>
>> 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 <thomas@monjalon.net> wrote:
>>>> 09/11/2021 16:57, David Marchand:
>>>>> On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
>>>>> <lance.richardson@broadcom.com> 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.
>>>>
>>>> CI compilation was passing:
>>>> http://mails.dpdk.org/archives/test-report/2021-November/238534.html
>>>> I would like to better understand.
>>>>
>>>> [...]
>>>>>> 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)
>>>> [...]
>>>>>> ../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?
>>
>>
>>

-- 
Regards,
Vladimir

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-11-09 16:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-09 15:53 [dpdk-dev] Build failures in 21.11-rc2 Lance Richardson
2021-11-09 15:57 ` David Marchand
2021-11-09 16:08   ` Thomas Monjalon
2021-11-09 16:12     ` Lance Richardson
2021-11-09 16:15       ` Thomas Monjalon
2021-11-09 16:22         ` Lance Richardson
2021-11-09 16:44           ` Medvedkin, Vladimir

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).