On Tue, 14 Jul 2020 08:31:32 +0100
"Kinsella, Ray" <m...@ashroe.eu> wrote:

> On 13/07/2020 23:19, Stephen Hemminger wrote:
> > On Mon, 13 Jul 2020 12:11:19 +0100
> > Vladimir Medvedkin <vladimir.medved...@intel.com> wrote:
> >   
> >> This patch series implements vectorized lookup using AVX512 for
> >> ipv4 dir24_8 and ipv6 trie algorithms.
> >> Also introduced rte_fib_set_lookup_fn() to change lookup function type.
> >> Added option to select lookup function type in testfib application.
> >>
> >> v6:
> >>  - style fixes
> >>
> >> v5:
> >>  - prefix zmm macro in rte_vect.h with RTE_X86
> >>  - remove unnecessary typedef for _x86_zmm_t
> >>  - reword commit title
> >>  - fix typos
> >>
> >> v4:
> >>  - use __rte_aligned() instead of using compiler attribute directly
> >>  - rework and add comments to meson.build
> >>
> >> v3:
> >>  - separate out the AVX-512 code into a separate file
> >>
> >> v2:
> >>  - rename rte_zmm to __rte_x86_zmm to reflect its internal usage
> >>  - make runtime decision to use avx512 lookup
> >>
> >> Vladimir Medvedkin (8):
> >>   eal/x86: introduce AVX 512-bit type
> >>   fib: make lookup function type configurable
> >>   fib: move lookup definition into the header file
> >>   fib: introduce AVX512 lookup
> >>   fib6: make lookup function type configurable
> >>   fib6: move lookup definition into the header file
> >>   fib6: introduce AVX512 lookup
> >>   app/testfib: add support for different lookup functions
> >>
> >>  app/test-fib/main.c                   |  58 +++++-
> >>  lib/librte_eal/x86/include/rte_vect.h |  19 ++
> >>  lib/librte_fib/Makefile               |  24 +++
> >>  lib/librte_fib/dir24_8.c              | 281 +++++---------------------
> >>  lib/librte_fib/dir24_8.h              | 226 ++++++++++++++++++++-
> >>  lib/librte_fib/dir24_8_avx512.c       | 165 +++++++++++++++
> >>  lib/librte_fib/dir24_8_avx512.h       |  24 +++
> >>  lib/librte_fib/meson.build            |  31 +++
> >>  lib/librte_fib/rte_fib.c              |  21 +-
> >>  lib/librte_fib/rte_fib.h              |  24 +++
> >>  lib/librte_fib/rte_fib6.c             |  20 +-
> >>  lib/librte_fib/rte_fib6.h             |  22 ++
> >>  lib/librte_fib/rte_fib_version.map    |   2 +
> >>  lib/librte_fib/trie.c                 | 161 +++------------
> >>  lib/librte_fib/trie.h                 | 119 ++++++++++-
> >>  lib/librte_fib/trie_avx512.c          | 269 ++++++++++++++++++++++++
> >>  lib/librte_fib/trie_avx512.h          |  20 ++
> >>  17 files changed, 1114 insertions(+), 372 deletions(-)
> >>  create mode 100644 lib/librte_fib/dir24_8_avx512.c
> >>  create mode 100644 lib/librte_fib/dir24_8_avx512.h
> >>  create mode 100644 lib/librte_fib/trie_avx512.c
> >>  create mode 100644 lib/librte_fib/trie_avx512.h
> >>  
> > 
> > Did anyone else see the recent AVX512 discussion from Linus:
> >   "I hope AVX512 dies a painful death, and that Intel starts fixing real 
> > problems 
> >    instead of trying to create magic instructions to then create benchmarks 
> > that they can look good on.   
> 
> Yup - I saw this one.
> Sweeping statements like these are good to provoke debate, the truth is 
> generally more nuanced.
> If you continue to read the post, Linus appears to be mostly questioning 
> microprocessor design decisions.
> 
> That is an interesting discussion, however the reality is that the technology 
> does exists and may be beneficial for Packet Processing. 
> 
> I would suggest, we continue to apply the same logic governing adoption of 
> any technology by DPDK. 
> When the technology is present and a clear benefit is shown, we use it with 
> caution.
> 
> In the case of Vladimir's patch,
> the user has to explicitly switch on the AVX512 lookup with 
> RTE_FIB_DIR24_8_VECTOR_AVX512.
> 

Using what is available makes sense in DPDK. 

Reply via email to