By: Ricardo B (ricardo.b.delete@this.xxxxx.xx), May 11, 2013 7:07 am
Room: Moderated Discussions
RichardC (tich.delete@this.pobox.com) on May 11, 2013 7:02 am wrote:
> Gabriele Svelto (gabriele.svelto.delete@this.gmail.com) on May 10, 2013 3:45 am wrote:
> > There's also a lot of client-side applications that benefit
> > from it. Compilation of large programs is a good
> > example and there's tons of content creation, simulation, etc... applications that also benefit from it.
>
> To judge that fairly, you would need to have an equivalent amount of effort
> going into designing SMT and non-SMT cpu's with the same hardware resources.
> Instead, what we have is a bunch of (very good) Intel cpu's with all the overhead
> of SMT built in, whether or not you're using it. And we also have some much less
> good AMD cpu's, without SMT.
>
> Under the circumstances, since you're paying the die area cost and clockspeed cost
> of supporting SMT, then the fact that many apps go faster with SMT than without
> is not particularly surprising.
>
> I think it's probably a good idea on the whole for servers. I suspect it isn't
> such a good idea for client/desktop/mobile; but what we get these days, at least
> for desktops, is a compromise between server and client requirements.
SMT is not really a compromise between client vs server, but on application types.
Modern OoO CPU cores have massive execution resources to squeeze out every last inch of single thread performance.
However, lots of software is, by nature, very low on instruction level parallelism and leaves most of those resources unused.
On servers, the HTML generation engines (ie, the PHP/ASP/whaever interpreter) is very dependent on branches and pointer chasing.
But on clients, applications like compilers, game physics and AI, etc, also have similar issues.
For this type of applications, adding SMT to an OoO core can deliver a very big performance improvement with very little area/speed overhead.
Which leads to an interesting situation, on the x86 world.
The cores with SMT from Intel are also the ones with most execution resources and, by far, best single thread performance.
> Gabriele Svelto (gabriele.svelto.delete@this.gmail.com) on May 10, 2013 3:45 am wrote:
> > There's also a lot of client-side applications that benefit
> > from it. Compilation of large programs is a good
> > example and there's tons of content creation, simulation, etc... applications that also benefit from it.
>
> To judge that fairly, you would need to have an equivalent amount of effort
> going into designing SMT and non-SMT cpu's with the same hardware resources.
> Instead, what we have is a bunch of (very good) Intel cpu's with all the overhead
> of SMT built in, whether or not you're using it. And we also have some much less
> good AMD cpu's, without SMT.
>
> Under the circumstances, since you're paying the die area cost and clockspeed cost
> of supporting SMT, then the fact that many apps go faster with SMT than without
> is not particularly surprising.
>
> I think it's probably a good idea on the whole for servers. I suspect it isn't
> such a good idea for client/desktop/mobile; but what we get these days, at least
> for desktops, is a compromise between server and client requirements.
SMT is not really a compromise between client vs server, but on application types.
Modern OoO CPU cores have massive execution resources to squeeze out every last inch of single thread performance.
However, lots of software is, by nature, very low on instruction level parallelism and leaves most of those resources unused.
On servers, the HTML generation engines (ie, the PHP/ASP/whaever interpreter) is very dependent on branches and pointer chasing.
But on clients, applications like compilers, game physics and AI, etc, also have similar issues.
For this type of applications, adding SMT to an OoO core can deliver a very big performance improvement with very little area/speed overhead.
Which leads to an interesting situation, on the x86 world.
The cores with SMT from Intel are also the ones with most execution resources and, by far, best single thread performance.