[dpdk-dev] [PATCH] net/ice: add AVX512BW flag check both in build and runtime

Rong, Leyi leyi.rong at intel.com
Tue Oct 27 16:36:58 CET 2020


> -----Original Message-----
> From: Bruce Richardson <bruce.richardson at intel.com>
> Sent: Tuesday, October 27, 2020 9:28 PM
> To: Ali Alnubani <alialnu at nvidia.com>
> Cc: Yigit, Ferruh <ferruh.yigit at intel.com>; Rong, Leyi <leyi.rong at intel.com>;
> Zhang, Qi Z <qi.z.zhang at intel.com>; Lu, Wenzhuo <wenzhuo.lu at intel.com>;
> Andrew Rybchenko <arybchenko at solarflare.com>; David Marchand
> <david.marchand at redhat.com>; Raslan Darawsheh <rasland at nvidia.com>;
> dev at dpdk.org
> Subject: Re: [PATCH] net/ice: add AVX512BW flag check both in build and
> runtime
> 
> On Tue, Oct 27, 2020 at 01:12:20PM +0000, Ali Alnubani wrote:
> > Hi,
> >
> > > -----Original Message-----
> > > From: Ferruh Yigit <ferruh.yigit at intel.com>
> > > Sent: Tuesday, October 27, 2020 1:57 PM
> > > To: Leyi Rong <leyi.rong at intel.com>; qi.z.zhang at intel.com;
> > > bruce.richardson at intel.com; wenzhuo.lu at intel.com; Ali Alnubani
> > > <alialnu at nvidia.com>; Andrew Rybchenko
> <arybchenko at solarflare.com>;
> > > David Marchand <david.marchand at redhat.com>
> > > Cc: dev at dpdk.org
> > > Subject: Re: [PATCH] net/ice: add AVX512BW flag check both in build
> > > and runtime
> > >
> > > On 10/27/2020 10:19 AM, Leyi Rong wrote:
> > > > Intrinsic function __mm512_bsrli_epi128 should be used in the
> > > > environment which supports AVX512BW, so adds check for this flag.
> > > >
> > > > Fixes: 5dd3b8f3af34 ("net/ice: add AVX512 vector path")
> > > >
> > > > Signed-off-by: Leyi Rong <leyi.rong at intel.com>
> > >
> > > Squashed into relevant commit in next-net, thanks.
> > >
> > >
> > > Andrew, Ali, David,
> > >
> > > Can you please confirm the issue is solved in the next-net/main?
> > >
> >
> > The build failures in CentOS 7, Ubuntu 18.04 and in OpenSUSE Leap 15.2 no
> longer reproduce. But we just noticed that Ubuntu 16.04.7 (gcc 5.4.0) is also
> failing with a different error:
> >
> > """
> > drivers/net/ice/ice_rxtx_vec_avx512.c:1:0: error: bad value
> > (skylake-avx512) for -march= switch
> >  /* SPDX-License-Identifier: BSD-3-Clause """
> > Which is also caused by "net/ice: add AVX512 vector path".
> >
> 
> I think we can drop the -march=skylake-avx512 flag in the build command for
> the avx512 file, since specifying the -mavx512f and -mavx512bw should be
> enough. Testing in an ubuntu 16.04 VM (which has 5.5 rather than 5.4
> compiler, but should be ok), shows that the avx512 instruction set flags are
> recognised and enable the isntructions, which the -march one is not.
> 
> /Bruce
> 
> bruce at ubuntu-1604-vm:~$ gcc -mavx512f -mavx512bw -dM -E - < /dev/null
> | grep AVX #define __AVX512F__ 1 #define __AVX512BW__ 1 #define
> __AVX__ 1 #define __AVX2__ 1 bruce at ubuntu-1604-vm:~$ gcc -
> march=skylake-avx512 -dM -E - < /dev/null | grep AVX
> cc1: error: bad value (skylake-avx512) for -march= switch

Hi Bruce,

Drop -march=skylake-avx512 really impact the throughput performance in my test, although -avx512f and -avx512bw are set meanwhile.
Could we add a judgement before setting -march=skylake-avx512, the judgement can just like 
if (toolchain == 'gcc' and cc.version().version_compare('>=7.0.0'))

Leyi


More information about the dev mailing list