[PATCH 3/4] net/ice: remove SSE vector path
Bruce Richardson
bruce.richardson at intel.com
Tue Aug 26 14:05:26 CEST 2025
On Tue, Aug 26, 2025 at 04:54:53PM +0500, Khadem Ullah wrote:
> On Tue, Aug 26, 2025 at 3:50 PM Bruce Richardson
> <[1]bruce.richardson at intel.com> wrote:
>
> > No problem.
> > BTW: Please don't top-post in replying - it's best practice to put
> > the reply below the text you are replying to. Thanks.
> Ohh, I got it :)
> I was triming the quotes when replying but in top-post format,
>
> will always try to avoid top-post in replying in future!
>
>
> > AVX2 was first available in systems starting in 2013, (and AMD
> systems
> > since 2015), so at this point it's been around a long time. The SSE
> code
> > paths in the drivers will only be used by systems which do not have
> AVX2 on
> > them - which should be relatively rare, I hope, at this point. There
> are no
> > features in the SSE driver that are not available in the AVX2 one,
> so, I'm
> > not aware of any reason why one would need to use the SSE code path
> in a
> > deployment of DPDK.
> Yes, I think all feaures in SSE do already exists in AVX2 paths.
> > Even without this patch, there will be no features added to the SSE
> code
> > paths in the drivers. Any new additions would just be to the AVX2 and
> > AVX-512 code paths. Even for systems without AVX2, if the SSE path is
> > removed the driver will fall-back to the scalar paths, which have far
> more
> > features available in them than the SSE codepaths, which were
> simplified for
> > performance reasons.
> Thanks for the update. I could not exaclty got the meaning of fall-back
> to the scalar path.
> Does that means that the driver automatically switches to the scalar
> path ?
> which is slower but includes all the necessary features that were
> simplified in the AVX2 path.
> I believe AVX2 provides an average performance much better for small
> frame or packet size (about 14 Gbps).
Yes, AXV2 and AVX-512 code paths have far higher performance than the
scalar paths. However, that performance comes at the cost of not supporting
all features. What the drivers then do at initialization time, is they
check the offloads requested by the app, and then select the highest
performance code path that can support those requested offloads.
The whole process should be transparent to the user - they just get the
best performance possible for their running conditions...
/Bruce
More information about the dev
mailing list