[dpdk-dev] [PATCH v6 0/8] fib: implement AVX512 vector lookup

Thomas Monjalon thomas at monjalon.net
Wed Jul 15 13:59:51 CEST 2020


15/07/2020 12:35, Medvedkin, Vladimir:
> On 15/07/2020 10:47, Thomas Monjalon wrote:
> > 14/07/2020 16:38, Stephen Hemminger:
> >> "Kinsella, Ray" <mdr at ashroe.eu> wrote:
> >>> On 13/07/2020 23:19, Stephen Hemminger wrote:
> >>>> 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.
> > 
> > Why does it require explicit  enabling in application?
> > AVX512 is not reliable enough to be automatically used when available?
> 
> It is reliable enough. User have to explicitly trigger to avx512 lookup 
> because using avx512 instructions can reduce the frequency of your 
> cores. The user knows their environment better. So the scalar version is 
> used so as not to affect the frequency.

So the user must know which micro-optimization is better for a code
they don't know. Reminder: an user is not a developper.
I understand we have no better solution though.
Can we improve the user experience with some recommendations, numbers, etc?




More information about the dev mailing list