That certainly couldn't have been your original point:
It was and still is.
Note that this is what started our discussion. If "inherent scaling problems" refer to "a loss of work, no matter how small", that implies you expect IPC to scale much more easily.
I do - increasing IPC requires nothing from the programmer, perhaps only the compiler.
In reality IPC only scales by roughly 10% every generation before it becomes too expensive, so that's not setting a very high bar for multi-core to beat!
Yes, probably true. However, look at the Bulldozer fiasco - can you honestly say it was a good idea to shave off execution resources and increase the pipeline length in order to add extra cores and hit higher clockspeeds?
My point is, Intel has the right approach by NOT adding moar cores like AMD does. They increase IPC as much as is possible in a given generation, and add cores only later. Witness Core 2 Quad 7 years ago, with 6 core CPUs only available to enthusiasts or on workstations.
So that brings us back to my point. The reason multi-core has been unable to convincingly beat the IPC scaling is not because most applications "inherently" don't have multi-threading potential. It's because (A) the synchronization overhead has been too high, and (B) the synchronization primitives were too hard to use correctly by most developers to bother. TSX addresses both issues simultaneously. And thus it demands re-evaluating whether the next generation should put most effort into marginally increasing IPC, or offer more cores.
I'm less interested in WHY multi core scaling has not been as good as it could have been and more interested in the FACT that it is the case.
What the dictionary says it means. Permanent. Fixed. And quantitatively it means the scaling would have to be worse than 10% on average, always, unfixable.
Actually that is not what inherent means - look at this online
definition:
Existing as an essential constituent or characteristic; intrinsic.
THAT is what I meant - that scaling issues are an inherent problem with multi core CPUs.
That's not superscalar, that's SMT (such as Hyper-Threading).
Yes, used the wrong example.
In that sense IPC would also have inherent scaling issues, which doesn't fit your original statement. So you're going to have to make up your mind...
Well lets read my original statement again, shall we?
Look at K8 vs P4 - AMD went after IPC, Intel went after clockspeed. We all know which was faster.
Look at Bulldozer and derivatives vs Intel Core anything - again, Intel is faster at just about everything, despite "only" having 4 cores and "stupidly" going after higher IPC.
IPC should be the first thing anyone ever optimizes, due to A) inherent scaling problems with multiple cores, except in ideal situations like graphics, and B) power consumption and heat problems when trying to boost clock speed at the expense of IPC, a la both P4 and Bulldozer.
Do I say that IPC does not have its own issues? No. Do I say IPC is perfect? No.
I saw multi core programming has inherent scaling issues, which is true. Not fixed, but then that is not what inherent means, is it? Unless you care to correct the dictionary.
My actual point, which we have deviated from completely, is that IPC is the low hanging fruit compared to adding extra cores. Rather do that than add extra cores - if possible. Obviously having a CPU with 20 decoders and 20 integer execution units is not much good to most people, however, IPC should still be the first thing optimized in any generation. My point was particularly made concerning AMD's core race vs Intel's tick tock. Witness how Intel has consistently improved IPC every generation, whereas AMD has actually slid backwards. Who makes better CPUs? That is my point.
Which confirms that you've actually changed your mind about things. There's nothing wrong with that since we can now agree on things, but please show some integrity and admit it instead of trying to defend your original use of the word "inherent" which is really no longer fitting.
I'm really not sure how you arrived at this - I have not changed my mind. As I said, inherent does not mean fixed or permanent, it means an essential part of me. It is not I who misunderstood that. You apparently assumed that I was saying that multi core scaling carries a fixed penalty of 10 doodads. Again, the key is here:
IPC should be the first thing anyone ever optimizes,
I do not see the word "only" there - do you? I do not see a recommendation to do away with multiple cores altogether - do you?