IPC?

  • Iunno. It measures performance...

  • Instructions per clock.

  • Instructions per core.

  • Other.


Results are only viewable after voting.

richaron

Golden Member
Mar 27, 2012
1,357
329
136
Hi all,

As a reader of ~technical~ forums, and just out of curiosity, I'm interested in seeing what people mean when they use the abbreviation "IPC". I'm wondering if we even mean the same thing whilst trying to have a discussion.

So, being honest & non-judgemental, what's the first thing you think when reading "IPC"?
 

richaron

Golden Member
Mar 27, 2012
1,357
329
136
Thanks Nosta tho I think you may have missed the point of this thread, clearly there are many people who could vote on any option above. With language meanings are fluid, there's an argument that something means "exactly what I thought it meant when I wrote it".

Even what you consider the "wrong" meaning can be perfectly acceptable, even "right" meaning amongst other groups of people. I was simply wondering where we are with IPC.
 
Last edited:

DominionSeraph

Diamond Member
Jul 22, 2009
8,386
32
91
Even what you consider the "wrong" meaning can be perfectly acceptable, even "right" meaning amongst other groups of people. I was simply wondering where we are with IPC.

IPC is instructions per clock, period. What the hell would, "Instructions per core," even mean, and why would it be a relevant indicator of anything?
I know, let's start a thread as to whether "hp" means "horsepower," or, "hydrogen atoms per car."
 
Last edited:

NTMBK

Lifer
Nov 14, 2011
10,426
5,743
136
It's not a matter of opinion, it's a matter of being correct or incorrect. It's "instructions per clock".
 

witeken

Diamond Member
Dec 25, 2013
3,899
193
106
Which is the same.

You could also say instructions per clock cycle.
 

Dribble

Platinum Member
Aug 9, 2005
2,076
611
136
Whatever the acronym actually stands for it's generally used to indicate single thread performance. Instructions per cycle is just part of what gives that performance, and even that is a vague term - is that peak, average? What type of instructions must be included? - any, some specific mix, etc.
 

teejee

Senior member
Jul 4, 2013
361
199
116
Whatever the acronym actually stands for it's generally used to indicate single thread performance. Instructions per cycle is just part of what gives that performance, and even that is a vague term - is that peak, average? What type of instructions must be included? - any, some specific mix, etc.

exactly, IPC is a vague term in practice.
Are there any de facto standard how to measure IPC out there?
 

witeken

Diamond Member
Dec 25, 2013
3,899
193
106
I think most people simply use it as the average single threaded performance per clock cycle. If Haswell is 10% faster than Sandy Bridge on average at the same clock speed, it has a 10% higher IPC.
 

NTMBK

Lifer
Nov 14, 2011
10,426
5,743
136
exactly, IPC is a vague term in practice.
Are there any de facto standard how to measure IPC out there?

Not any especially good ones. IPC differs massively depending on what code you use. If you have lots of memory stalls in your code, its IPC will be much lower than something that is just banging on straight line arithmetic with a working set that fits into L2.
 

ThatsABigOne

Diamond Member
Nov 8, 2010
4,422
23
81
Not any especially good ones. IPC differs massively depending on what code you use. If you have lots of memory stalls in your code, its IPC will be much lower than something that is just banging on straight line arithmetic with a working set that fits into L2.

Branch on condition jumps also tend to destroy the IPC unless there is a really good branch predictor that predicts the right outcome correctly each time.
 

Techhog

Platinum Member
Sep 11, 2013
2,834
2
26
Next thread: When you see "CPU," do you think of "central processing unit" or "clowns per unicycle?"
 

tential

Diamond Member
May 13, 2008
7,348
642
121
So how will we figure out how to turn this topic, which is clearly impossible to disagree upon, into a massive debate?
 

Nothingness

Diamond Member
Jul 3, 2013
3,294
2,362
136
...clock cycle.
Interestingly, in "Computer Architecture: A Quantitative Approach", H&P define IPC as Instruction Per Clock and CPI as Clock cycle Per Instruction. Oh well it doesn't matter it all means the same :p

Branch on condition jumps also tend to destroy the IPC unless there is a really good branch predictor that predicts the right outcome correctly each time.
Modern branch predictors are typically well above 80% of correct predictions (and in fact above 90% in non pathological programs). The issue with branch misprediction is that if you get it wrong, you have to cancel everything you did speculatively after the mispredicted branch, while you can still execute instructions safely under a load miss.
 

richaron

Golden Member
Mar 27, 2012
1,357
329
136
Well I doubt anyone will chime in voting for "core" at this stage, but it's nice there is a consensus here at least. Quite a few times I've seen a higher frequency chip recommended because of "IPC".

I can pretend this was a public education thread, or a comment on the irony of people getting angsty over the suggestion of a bastardised term (whilst using English), but mostly I was curious/concerned as to what people thought. So thanks.

Edit: FWIW I've always considered IPC as an exact term related to a specific code path. Current usage is quite analogous to a nub thinking it means "instructions per core".
 
Last edited: