By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), July 11, 2013 3:12 pm
Room: Moderated Discussions
Michael S (already5chosen.delete@this.yahoo.com) on July 11, 2013 2:43 pm wrote:
>
> Technically, there is nothing esoteric about AVX
I'd argue that AVX is esoteric for one simple reason: it assumes that vectors are so important that you want to waste tons of resources on them.
And don't try to make out like it's not tons of resources. Yes, you can make a fairly bad implementation of AVX (ie not true 256-wide units), but even that is nasty for resource tracking and the pipeline, and it wouldn't actually generally be any faster than XMM, and so the people who want AVX would complain anyway.
So it's almost certainly better to just not fake it, since there isn't all that big an installed base for it anyway.
Yes, yes, I'm a single-thread and scalar bigot. I'll happily admit to that. I think vectorization has an upside, but I don't happen to think that it is all that big, and I think there are quickly diminishing returns. I just happen to think that AVX crossed the line on that "effort vs returns" scale, which is why I think the lack of AVX support in Atom is quite reasonable.
But yes, since AVX thus isn't something you can rely on in new cpus, that makes it potentially much less interesting to support for many software cases too. And I just don't think it's important enough to matter.
Engineering is about tradeoffs.
Linus
>
> Technically, there is nothing esoteric about AVX
I'd argue that AVX is esoteric for one simple reason: it assumes that vectors are so important that you want to waste tons of resources on them.
And don't try to make out like it's not tons of resources. Yes, you can make a fairly bad implementation of AVX (ie not true 256-wide units), but even that is nasty for resource tracking and the pipeline, and it wouldn't actually generally be any faster than XMM, and so the people who want AVX would complain anyway.
So it's almost certainly better to just not fake it, since there isn't all that big an installed base for it anyway.
Yes, yes, I'm a single-thread and scalar bigot. I'll happily admit to that. I think vectorization has an upside, but I don't happen to think that it is all that big, and I think there are quickly diminishing returns. I just happen to think that AVX crossed the line on that "effort vs returns" scale, which is why I think the lack of AVX support in Atom is quite reasonable.
But yes, since AVX thus isn't something you can rely on in new cpus, that makes it potentially much less interesting to support for many software cases too. And I just don't think it's important enough to matter.
Engineering is about tradeoffs.
Linus