By: Doug Siebert (foo.delete@this.bar.bar), April 20, 2012 9:00 pm
Room: Moderated Discussions
Linus Torvalds (torvalds@linux-foundation.org) on 4/20/12 wrote:
---------------------------
>I.S.T. (objectorbit@yahoo.com) on 4/19/12 wrote:
>>
>>I find them a fair bit surprising. Not entirely, I expected it to get better with
>>better compilers tuned more to the oddness of Bulldozer, but not by this much.
>
>I personally have a very simple rule: if performance changes
>this drastically from compiler tweaking, the uarch is
>broken.
>
>P4 was broken. And BD is broken.
Isn't the important question whether the optimizations that benefit BD negatively impact other architectures? If BD benefits from some scheduling changes that don't hurt anything else, then there wouldn't be any harm in making those the default. i.e., it'd just be dumb luck it wasn't that way in the first place.
Not saying this is the case here because I haven't studied the details of these specific changes, but I think it matters and you shouldn't just declare a uarch broken because compiler changes benefit it. That's true only if the compiler changes that benefit it ALSO actively hurt (most) everything else.
Otherwise, why not make those changes that don't hurt anything else, and then if the remaining difference is tiny, turns out the uarch isn't broken after all...
---------------------------
>I.S.T. (objectorbit@yahoo.com) on 4/19/12 wrote:
>>
>>I find them a fair bit surprising. Not entirely, I expected it to get better with
>>better compilers tuned more to the oddness of Bulldozer, but not by this much.
>
>I personally have a very simple rule: if performance changes
>this drastically from compiler tweaking, the uarch is
>broken.
>
>P4 was broken. And BD is broken.
Isn't the important question whether the optimizations that benefit BD negatively impact other architectures? If BD benefits from some scheduling changes that don't hurt anything else, then there wouldn't be any harm in making those the default. i.e., it'd just be dumb luck it wasn't that way in the first place.
Not saying this is the case here because I haven't studied the details of these specific changes, but I think it matters and you shouldn't just declare a uarch broken because compiler changes benefit it. That's true only if the compiler changes that benefit it ALSO actively hurt (most) everything else.
Otherwise, why not make those changes that don't hurt anything else, and then if the remaining difference is tiny, turns out the uarch isn't broken after all...



