DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Subject: Re: [PATCH v3 07/11] acl: use common AVX build handling
Date: Wed, 19 Mar 2025 10:59:01 +0000	[thread overview]
Message-ID: <Z9qjdXM8Uno050tW@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <CAJFAV8xQvCsAnJ7hn=9NGKv_W1oKvDsdKL9v1sOCSU2noR_paA@mail.gmail.com>

On Wed, Mar 19, 2025 at 11:40:19AM +0100, David Marchand wrote:
> On Wed, Mar 19, 2025 at 11:26 AM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Wed, Mar 19, 2025 at 11:16:09AM +0100, David Marchand wrote:
> > > On Tue, Mar 18, 2025 at 6:35 PM Bruce Richardson
> > > <bruce.richardson@intel.com> wrote:
> > > >
> > > > remove custom logic for building AVX2 and AVX-512 files.
> > > >
> > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> ---
> > > > lib/acl/meson.build | 54
> > > > ++++----------------------------------------- 1 file changed, 4
> > > > insertions(+), 50 deletions(-)
> > > >
> > > > diff --git a/lib/acl/meson.build b/lib/acl/meson.build index
> > > > a80c172812..87e9f25f8e 100644 --- a/lib/acl/meson.build +++
> > > > b/lib/acl/meson.build @@ -15,57 +15,11 @@ headers =
> > > > files('rte_acl.h', 'rte_acl_osdep.h')
> > > >
> > > >  if dpdk_conf.has('RTE_ARCH_X86') sources += files('acl_run_sse.c')
> > > >  - -    avx2_tmplib = static_library('avx2_tmp', -
> > > >  'acl_run_avx2.c', -            dependencies: static_rte_eal, -
> > > >  c_args: [cflags, cc_avx2_flags]) -    objs +=
> > > >  avx2_tmplib.extract_objects('acl_run_avx2.c') - -    # compile
> > > >  AVX512 version if: -    # we are building 64-bit binary AND
> > > >  binutils can generate proper code - -    if
> > > >  dpdk_conf.has('RTE_ARCH_X86_64') and binutils_ok - -        #
> > > >  compile AVX512 version if either: -        # a. we have AVX512
> > > >  supported in minimum instruction set -        #    baseline -
> > > >  # b. it's not minimum instruction set, but supported by -        #
> > > >  compiler -        # -        # in former case, just add avx512 C
> > > >  file to files list -        # in latter case, compile c file to
> > > >  static lib, using correct -        # compiler flags, and then have
> > > >  the .o file from static lib -        # linked into main lib.  - -
> > > >  # check if all required flags already enabled (variant a).  -
> > > >  acl_avx512_flags = ['__AVX512F__', '__AVX512VL__', -
> > > >  '__AVX512CD__', '__AVX512BW__']
> > >
> > > Not sure it is an issue.. CD is not part of common cc_avx512_flags.
> > >
> > It is since bce754b5d942 ("config/x86: add more flags in common AVX512
> > flags set") See:
> > https://github.com/DPDK/dpdk/blob/main/config/x86/meson.build#L68
> 
> Err.. I meant the target_has_avx512 variable.  But looking again, it
> seems we can remove this variable entirely after the series.
> 
Yes, though I'm now thinking that we may actually want to use it.

Since we have the avx handling "centralised" it might be worthwhile
looking again at how we might generate the most efficient code in all
cases. In some cases, using the AVX512 flag explicitly, along with
march=skylake-avx512 flag, may produce worse code than if we just used e.g.
the "march=native" flag. While this code was spread across a dozen files,
and newer instruction sets beyond AVX512 were not that many/common, keeping
checks short and to a minimum makes sense, but now it's centralised in only
2 files and new CPU generations add more capabilities, an extra check or
two doesn't seem so bad.

/Bruce

  reply	other threads:[~2025-03-19 10:59 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-14 17:23 [PATCH 0/3] remove driver-specific logic for AVX builds Bruce Richardson
2025-03-14 17:23 ` [PATCH 1/3] build: add generalized AVX handling for drivers Bruce Richardson
2025-03-14 17:23 ` [PATCH 2/3] net/intel: use common AVX build code Bruce Richardson
2025-03-14 17:23 ` [PATCH 3/3] drivers/net: build use common AVX handling Bruce Richardson
2025-03-14 17:31   ` David Marchand
2025-03-14 17:37     ` Bruce Richardson
2025-03-14 17:44 ` [PATCH v2 0/4] remove driver-specific logic for AVX builds Bruce Richardson
2025-03-14 17:44   ` [PATCH v2 1/4] build: add generalized AVX handling for drivers Bruce Richardson
2025-03-14 17:44   ` [PATCH v2 2/4] net/intel: use common AVX build code Bruce Richardson
2025-03-14 17:44   ` [PATCH v2 3/4] drivers/net: build use common AVX handling Bruce Richardson
2025-03-14 17:44   ` [PATCH v2 4/4] drivers/net: remove AVX2 build-time define Bruce Richardson
2025-03-17  9:47     ` David Marchand
2025-03-17  9:50   ` [PATCH v2 0/4] remove driver-specific logic for AVX builds David Marchand
2025-03-18 11:51     ` Bruce Richardson
2025-03-18 17:34 ` [PATCH v3 00/11] remove component-specific " Bruce Richardson
2025-03-18 17:34   ` [PATCH v3 01/11] build: add generalized AVX handling for drivers Bruce Richardson
2025-03-18 17:34   ` [PATCH v3 02/11] net/intel: use common AVX build code Bruce Richardson
2025-03-19 10:11     ` David Marchand
2025-03-19 11:17       ` Bruce Richardson
2025-03-18 17:34   ` [PATCH v3 03/11] drivers/net: build use common AVX handling Bruce Richardson
2025-03-18 17:34   ` [PATCH v3 04/11] drivers/net: remove AVX2 build-time define Bruce Richardson
2025-03-18 17:42     ` Ajit Khaparde
2025-03-18 17:34   ` [PATCH v3 05/11] event/dlb2: build using common AVX handling Bruce Richardson
2025-03-18 17:34   ` [PATCH v3 06/11] build: add generalized AVX handling for libs Bruce Richardson
2025-03-18 17:35   ` [PATCH v3 07/11] acl: use common AVX build handling Bruce Richardson
2025-03-19 10:16     ` David Marchand
2025-03-19 10:26       ` Bruce Richardson
2025-03-19 10:40         ` David Marchand
2025-03-19 10:59           ` Bruce Richardson [this message]
2025-03-18 17:35   ` [PATCH v3 08/11] fib: " Bruce Richardson
2025-03-18 17:35   ` [PATCH v3 09/11] net: simplify build-time logic for x86 Bruce Richardson
2025-03-19 10:24     ` David Marchand
2025-03-18 17:35   ` [PATCH v3 10/11] net: use common AVX512 build code Bruce Richardson
2025-03-18 17:35   ` [PATCH v3 11/11] member: use common AVX512 build support Bruce Richardson
2025-03-19 10:27   ` [PATCH v3 00/11] remove component-specific logic for AVX builds David Marchand
2025-03-19 17:29 ` [PATCH v4 " Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 01/11] drivers: add generalized AVX build handling Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 02/11] net/intel: use common AVX build code Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 03/11] drivers/net: build use common AVX handling Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 04/11] drivers/net: remove AVX2 build-time define Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 05/11] event/dlb2: build using common AVX handling Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 06/11] lib: add generalized AVX build handling Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 07/11] acl: use common " Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 08/11] fib: " Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 09/11] net: simplify build-time logic for x86 Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 10/11] net: use common AVX512 build code Bruce Richardson
2025-03-19 17:29   ` [PATCH v4 11/11] member: use common AVX512 build support Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z9qjdXM8Uno050tW@bricha3-mobl1.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.v.ananyev@yandex.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).