|
Message-ID: <20200605234523.GU31009@gate.crashing.org> Date: Fri, 5 Jun 2020 18:45:23 -0500 From: Segher Boessenkool <segher@...nel.crashing.org> To: Rich Felker <dalias@...c.org> Cc: Daniel Kolesa <daniel@...aforge.org>, musl@...ts.openwall.com, Michal Suchánek <msuchanek@...e.de>, Joseph Myers <joseph@...esourcery.com>, libc-alpha@...rceware.org, eery@...erfox.es, Will Springer <skirmisher@...tonmail.com>, Palmer Dabbelt via binutils <binutils@...rceware.org>, via libc-dev <libc-dev@...ts.llvm.org>, linuxppc-dev@...ts.ozlabs.org Subject: Re: Re: ppc64le and 32-bit LE userland compatibility Hi! On Fri, Jun 05, 2020 at 01:50:46PM -0400, Rich Felker wrote: > On Fri, Jun 05, 2020 at 12:27:02PM -0500, Segher Boessenkool wrote: > > > I'm also not really all that convinced that vectors make a huge difference in non-specialized code (autovectorization still has a way to go) > > > > They do make a huge difference, depending on the application of course. > > But VSX is not just vectors even: it also gives you twice as many > > floating point scalars (64 now), and in newer versions of the ISA it can > > be beneficially used for integer scalars even. > > Vectorization is useful for a lot of things, and I'm sure there are > specialized workloads that benefit from 64 scalars, but I've never > encountered a place where having more than 16 registers made a > practical difference. 20 years ago 32 FP registers was already often a limitation, making FFT and similar kernels almost twice slower than they could otherwise be. Things are only *worse* with short vectors, not better. In general with floating point data you need more registers (because you have more state to look at concurrently) than with integer data. *Of course* having 64 floating point registers does not matter if your whole program only ever uses three floating point values, total, let alone concurrently. > The fact that there are specialized areas where this stuff matters > does not imply there aren't huge domains where it's completely > irrelevant. There are very few domains where ISA 2.07 does not have significant advantages over ISA 2.01. That is Power8 vs. Power4. > > No, that is exactly the point of requiring ISA 2.07. Anything can use > > ISA 2.07 (incl. VSX) without checking first, and without having a > > fallback to some other implementation. Going from ISA 2.01 to 2.07 is > > more than a decade of improvements, it is not trivial at all. > > This only affects code that's non-portable and PPC-specific, which a No, it does not. It is not only about vector registers, either. > I think a lot of the unnecessary fighting on this topic is arising > from differences of opinion over what an ABI entails. I would call > what you're talking about a "platform" and more of a platform-specific > *API* than an ABI -- it's about guarantees of interfaces available to > the programmer, not implementation details of linkage. No, this is very much about the ABI. The B stands for Binary. Which is what this is about. Segher
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.