[Development] Updating x86 SIMD support in Qt

Allan Sandfeld Jensen kde at carewolf.com
Wed Jan 19 18:50:09 CET 2022


On Mittwoch, 19. Januar 2022 16:41:11 CET Thiago Macieira wrote:
> On Tuesday, 18 January 2022 22:43:40 PST Kevin Kofler via Development wrote:
> > Thiago Macieira wrote:
> > > By default, I'd like us to produce x86-64 v2 code, which is SSE4.
> > 
> > But v1 will still be available for distribution packaging? As long as that
> > is the case, I do not see a major issue, it will just be one more caveat
> > for distribution packaging. (Distributions still supporting v1, which I
> > think is most of the distros these days, will have to enable it
> > explicitly, possibly along with newer vn (n>1) if optimized builds are
> > desired.) But dropping support for v1 entirely causes headaches for
> > distributions.
> Yes, that's the idea. I'm just looking at raising our defaults in this case,
> not stop the older solutions, mostly because the compatibility we're
> talking about is with very old machines: the Intel Core line got SSE4.2 in
> 2008 with Nehalem, AMD got it with Bulldozer in 2011 and the Atom line got
> it in 2013 with Silvermont. Meanwhile, foregoing the SSE4 optimisations
> afforded by v2 leaves some performance on the table. Yes, most
> distributions still target v1 today but that's mostly for inertia reasons.
> As I said, I understand Red Hat 9 is going to up the minimum to v2.
> 
> Additionally, I'd like to make it easy to have both v1+v2 or, better yet,
> v1+v2+v3, so you can have your cake and eat it too. Some libraries like
> QtCore, QtGui and the Qt 3D ones make extensive use of math and would
> benefit from the extra operations, especially those of AVX.
> 
> > There are still (end) users of old hardware. E.g., my notebook is a Core 2
> > Duo that supports up to SSSE3 (so v1 + SSE3 + SSSE3), but no SSE4. So it
> > unfortunately falls one generation short of v2. (My desktop supports v2,
> > but not v3, because it is missing at least AVX2.) But as long as the
> > distribution packages work on it, I do not really care about what vn or
> > SSEn the Qt upstream binaries require.
> 
> I understand. I have one of those in a cabinet, but it doesn't power on (the
> PSU is bust). How much RAM do you have? How usable is a modern Linux
> desktop on it?

I have a ~10 year old Phenom II that I use as a media server, it also lacks 
SSE4 (only having AMDs so-called SSE4a). With 3 cores and 4GB of memory it 
runs a modern Qt5 based Linux desktop just fine, even if I don't regularly use 
it as such. So while it is no great loss for me if I needed to replace it with 
a 200€ NUC, it is certainly plausible people have such working old machines. I 
think it is fine to let the default not work on such machines, and let the 
distros that want to support it use v1.

'Allan




More information about the Development mailing list