[v3,0/8] fib: implement AVX512 vector lookup
mbox series

Message ID cover.1589890262.git.vladimir.medvedkin@intel.com
Headers show
Series
  • fib: implement AVX512 vector lookup
Related show

Message

Vladimir Medvedkin May 19, 2020, 12:12 p.m. UTC
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.

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: introduce zmm type for AVX 512-bit
  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 |  20 +++
 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            |  20 +++
 lib/librte_fib/rte_fib.c              |  20 ++-
 lib/librte_fib/rte_fib.h              |  23 +++
 lib/librte_fib/rte_fib6.c             |  19 ++-
 lib/librte_fib/rte_fib6.h             |  21 +++
 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, 1100 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

Comments

David Marchand May 19, 2020, 12:23 p.m. UTC | #1
On Tue, May 19, 2020 at 2:15 PM Vladimir Medvedkin
<vladimir.medvedkin@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.

Is this series missing a 20.08 prefix in the titles?
Vladimir Medvedkin May 19, 2020, 12:57 p.m. UTC | #2
Hi,

On 19/05/2020 13:23, David Marchand wrote:
> On Tue, May 19, 2020 at 2:15 PM Vladimir Medvedkin
> <vladimir.medvedkin@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.
> Is this series missing a 20.08 prefix in the titles?


Ah yes, forgot about it. Do you need me to resend this series with a prefix?


>
David Marchand May 19, 2020, 1 p.m. UTC | #3
On Tue, May 19, 2020 at 2:57 PM Medvedkin, Vladimir
<vladimir.medvedkin@intel.com> wrote:
>
> Hi,
>
> On 19/05/2020 13:23, David Marchand wrote:
> > On Tue, May 19, 2020 at 2:15 PM Vladimir Medvedkin
> > <vladimir.medvedkin@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.
> > Is this series missing a 20.08 prefix in the titles?
>
>
> Ah yes, forgot about it. Do you need me to resend this series with a prefix?

I will mark it as deferred for 20.08, no need to resend.
Thanks.
Vladimir Medvedkin June 19, 2020, 10:34 a.m. UTC | #4
Waiting for reviews please.

On 19/05/2020 13:12, Vladimir Medvedkin 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.
>
> 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: introduce zmm type for AVX 512-bit
>    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 |  20 +++
>   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            |  20 +++
>   lib/librte_fib/rte_fib.c              |  20 ++-
>   lib/librte_fib/rte_fib.h              |  23 +++
>   lib/librte_fib/rte_fib6.c             |  19 ++-
>   lib/librte_fib/rte_fib6.h             |  21 +++
>   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, 1100 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
>