Article: AMD's Jaguar Microarchitecture
By: Michael S (already5chosen.delete@this.yahoo.com), April 6, 2014 8:23 am
Room: Moderated Discussions
none (nono.delete@this.none.com) on April 6, 2014 9:07 am wrote:
> Megol (golem960.delete@this.gmail.com) on April 6, 2014 8:21 am wrote:
> [...]
> > Second: It is still supported in the most used performance
> > oriented architecture: the x86. So how can it be dead?
>
> (80-bit )x87 is like 8086, it's still supported. My understanding is that all recent micro
> architectures have poor x87 performance, and you'd better use SSE if you want to achieve good FP
> performance. IMHO that basically means that if it's not dead it's at least dying.
Actually, judged by historical standards, recent microarcitectures have very good x87 performance.
As long as you work in registers, the performance of 80-bit x87 on "fat" Intel and AMD cores is not far away from 64-bit scalar SSE/AVX. The performance degradation (relatively to scalar SSE) is mostly due to following factors:
1. fewer software-visible registers (only applies to x86-64),
2. additional register moves/exchanges required and due to stack-based instruction format
3. compilers that partly still didn't master stack acrobatics and partly don't try to master it, because not necessarily corect notion that "everybody who cares already uses SSE".
At FP arithmetic instruction latency/throughput level the difference between 80-bit and 64-bit scalar SSE is really small.
Now, when one touches the memory, the difference is bigger, but not bigger than 2x.
> Megol (golem960.delete@this.gmail.com) on April 6, 2014 8:21 am wrote:
> [...]
> > Second: It is still supported in the most used performance
> > oriented architecture: the x86. So how can it be dead?
>
> (80-bit )x87 is like 8086, it's still supported. My understanding is that all recent micro
> architectures have poor x87 performance, and you'd better use SSE if you want to achieve good FP
> performance. IMHO that basically means that if it's not dead it's at least dying.
Actually, judged by historical standards, recent microarcitectures have very good x87 performance.
As long as you work in registers, the performance of 80-bit x87 on "fat" Intel and AMD cores is not far away from 64-bit scalar SSE/AVX. The performance degradation (relatively to scalar SSE) is mostly due to following factors:
1. fewer software-visible registers (only applies to x86-64),
2. additional register moves/exchanges required and due to stack-based instruction format
3. compilers that partly still didn't master stack acrobatics and partly don't try to master it, because not necessarily corect notion that "everybody who cares already uses SSE".
At FP arithmetic instruction latency/throughput level the difference between 80-bit and 64-bit scalar SSE is really small.
Now, when one touches the memory, the difference is bigger, but not bigger than 2x.