NVIDIA Kepler speculation thread

Card A has a better 99% percentile performance than Card B. ;)

And yet, if you bought Card A you would end up with 20 fps on average lower for this game and micro-stuttering. How many gamers do you know that would consider that a good purchase?

Percentiles have two main uses. First, they are useful for finding outliers. If the 99th percentile for frame rates is 20 ms, then frames at 100ms are odd - and you should probably look at them to see why. The second use is to find standing within one's group. If your daughter is in the 99th percentile, she is doing really well compared to the rest of her class.

Notice that I did not say they are useful for comparing different groups. Just because two sets have the same 99th percentile doesn't mean their behavior is at all similar.

What follows is a rather lengthy explanation of how that principle applies to this particular case. It isn't really necessary. Understanding the last sentence of the above paragraph is more than enough to understand my objection to the original chart. Using a spoiler tag to hide it from people who don't care.

So we go back to my first post. The plot is meant to compare several different video cards. Each card is compared using a percentile - which is sampled from an unknown distribution of frame rates. The assertion that the author is trying to make is that since 99% of frames for the 7970 are above 40 fps and 99% of the frames for the 780 are above 41 fps - they are the same card. After all, it is only a difference of 2.5% right?

That may seem reasonable at first, but it actually doesn't tell us anything about the performance of the two cards over 40 fps and over 41 fps. In this case, this particular site claims that the average FPS for the 7970 is 50 fps. The average fps for the 780 from their numbers is 55. So looking at the average, you get a difference of 10% - which is far more significant. Note that I wouldn't argue with you if you thought that still wasn't enough to justify cost, but it is an entirely different picture than the 2.5% paints.

So the next argument is that it tells you about frame time. The problem is that it doesn't. Choosing a number in the 7970's favor this time, look at the time spent beyond 33ms (this would be 30 hz - or where you would see a noticable jump in lag on most 60 or 120 hz monitors) for something like Crisis. In this case, the 7970 only spends 441ms beyond that number, while the 780 spends 663ms beyond it. Assuming the tests ran for the same amount of time, the 7970 outperforms the 780 by almost 50% in displaying "noticeable" frame rate drops. That number is imperfect, because one large spike can skew the number - but still the 2.5% shown by the 9th percentile frame time is in this case a huge disservice to the 7970.

So go back to my examples. My examples show that percentiles can obscure underlying behavior that is critical to making decisions. In this case, they aren't just random examples - they mirror what you see when you look at the case by case studies.
 
I am trying to find a way to be diplomatic about this - but this chart is just plain idiotic.

99th percentile means that 99% of the results lay below the line. So for example, Consider two systems.

System A) Renders at 1 fps for 98 seconds, 150 fps for 1 second, and 120 fps for 1 second.
System B) Renders at 60 fps for 100 seconds.

According to this chart, the System B would show up almost 60 fps LOWER than the first - because it's 99th percentile is 60, while the first systems 99th percentile is 120. So which system would you rather have?

I could see a chart like this with average frame rate. I could see a chart like this for average frame rate excluding the top and bottom 5% of results to get rid of noise. But seriously - this chart is just plain bad. It is one of the worst cases of "marketing science" I've ever seen.
I don't think you understand how the 99th percentile calculation works. The Tech Report defines it as

We can quantify that reality by looking at the 99th percentile response time, which sounds like a lot of big words but is a fundamentally simple concept: for each system, 99% of all requests were processed within X milliseconds.

System A's avg FPS is 3.68 and 99th percentile number isn't much different. Certainly not 120 fps.
 
I don't think you understand how the 99th percentile calculation works. The Tech Report defines it as



System A's avg FPS is 3.68 and 99th percentile number isn't much different. Certainly not 120 fps.

I'm afraid I understand exactly how the 99th percentile works. There are many ways you can calculate it. I gave what is called the nearest rank. The formula is given by:

ordinal = percentile / 100 * samples +1/2

I use the NIST definition which is the following formula for the ordinal:

ordinal = percentile/100*(samples-1)+1

For my way, the ordinal is the 99th value, or 120. For the other, the ordinal is 99.5. Since the 100th ordinal is defined as the largest value, that needs to be rounded down so you also get 120. The NIST definition is the one used in programs like Excel, so is probably what TechReport used.

There are other methods. For example, linear interpolation between the closest ranks. For this one it would give 135. If the sample size was large enough with enough spread, you can fit a normal curve and try to use that. In the example I gave that wouldn't work. The distribution is most certainly not normal.

A quick trip to Mathworld or Wikipedia will confirm those definitions if you don't believe me. I can also recommend some good stat books if you like. Note that all of those definitions fit the definition you posted.
 
I don't know exactly how TechReport calculates the 99th percentile FPS (as opposed to 99th percentile frametime), but if they do calculate it simply as the inverse of the 99th percentile frametime, and they consider every frame to be a single request... Then yes, we might have a problem here. While it should be mostly fine for micro-stuttering, their current calculations completely ignore small numbers of extremely long frames, which also noticeably affect user experience.

The "correct" way to calculate 99th percentile FPS might be to use nearest-pointing resampling of the data at a very high frequency (sorry if my terminology is inaccurate). Basically if you have 3 frames taking 40ms/400ms/60ms, you would create 40 samples of 40ms, 400 points of 400ms, 60 points of 60ms, and *then* calculate the 99th percentile for that. There might be a more mathematically precise way to do this without sampling but I can't think of it right now.

You'd basically be looking at the perceived delay at any given point in time, as opposed to any given frame. That would also have the effect of a much lower 99th percentile FPS for systems with a few very long frames, so I imagine there might be some IHV pressure to more to 98th or 95th percentile, heh...
 
And yet, if you bought Card A you would end up with 20 fps on average lower for this game and micro-stuttering. How many gamers do you know that would consider that a good purchase?
I'm too old to still enjoy playing hangman and there are only so many ways to say that 1 number can't possibly cover everything.

Percentiles have two main uses. First, they are useful for finding outliers. If the 99th percentile for frame rates is 20 ms, then frames at 100ms are odd - and you should probably look at them to see why. The second use is to find standing within one's group. If your daughter is in the 99th percentile, she is doing really well compared to the rest of her class.
Using a single number as a metric only works when you stay within the limitation of a particular framework. A number tailored to such a pattern loses some of its relevance the more the characteristics deviate from them. This is no unlike frameworks built upon the assumption of a gaussian distribution breaking down the more the subject at hand isn't.

Pretty much all single die GPUs have a pretty consistent behavior: not a lot of microstutter, a histogram that follows more or less the same trajectory etc. If a particular GPU doesn't follow that pattern, it should be obvious from the full dataset.

... ... My examples show that percentiles can obscure underlying behavior that is critical to making decisions. In this case, they aren't just random examples - they mirror what you see when you look at the case by case studies.
Yes, percentiles will obscure behavior that is critical to making decisions: this is likely to be the case for any single number metric you can come up with.

For example:
I could see a chart like this with average frame rate. I could see a chart like this for average frame rate excluding the top and bottom 5% of results to get rid of noise.
I'm pretty sure there are many scenarios where this metric would obscure just as many critical issues as any other.

Arun said:
Basically if you have 3 frames taking 40ms/400ms/60ms, you would create 40 samples of 40ms, 400 points of 400ms, 60 points of 60ms, and *then* calculate the 99th percentile for that.
I see your point but I'm a bit on the fence this one: the question is if you want the length of the hitch to matter or simply that fact that they exist? What I mean is: does it matter whether you have a 50ms hitch on GPU A or a 200ms hitch on GPU B at the same location? The fluid motion is broken either way.
 
I see your point but I'm a bit on the fence this one: the question is if you want the length of the hitch to matter or simply that fact that they exist? What I mean is: does it matter whether you have a 50ms hitch on GPU A or a 200ms hitch on GPU B at the same location? The fluid motion is broken either way.
Agreed, it's not an easy issue as it depends on how the human brain/visual system perceives

But to take an extreme case, let's assume a game that runs at a perfect vsynced 60fps, except for one frame which take a full 1s every 10s. As that means you get 541 frames every 10s, that one frame would be ignored by the 99th percentile, whereas it actually represents a full 10% of the time.

I'm not sure exactly how this should be handled if you only show one number... At some point you just need to look at the graph and the reviewer's description, and remember a single number will always be a rough approximation. But it's true that the current approximation could probably be improved.

Another factor is that I suspect unusually long frames are fairly often caused by the game engine rather than the driver/GPU, so from a GPU benchmarking perspective, it's likely to be "noise" even if it was highly perceptible by the end-user. At some point you really need to figure out a better way for game developers to handle frametimes as Andrew has repeatedly pointed out, and you also need them to do the extra effort to optimise away frametime spikes as opposed to focusing on average FPS.

---
Anyway while this is an interesting discussion, it's massively off-topic. Should it be moved to a new dedicated thread or?
 
I'm afraid I understand exactly how the 99th percentile works. There are many ways you can calculate it. I gave what is called the nearest rank. The formula is given by:

ordinal = percentile / 100 * samples +1/2

I use the NIST definition which is the following formula for the ordinal:

ordinal = percentile/100*(samples-1)+1

For my way, the ordinal is the 99th value, or 120. For the other, the ordinal is 99.5. Since the 100th ordinal is defined as the largest value, that needs to be rounded down so you also get 120. The NIST definition is the one used in programs like Excel, so is probably what TechReport used.

There are other methods. For example, linear interpolation between the closest ranks. For this one it would give 135. If the sample size was large enough with enough spread, you can fit a normal curve and try to use that. In the example I gave that wouldn't work. The distribution is most certainly not normal.

A quick trip to Mathworld or Wikipedia will confirm those definitions if you don't believe me. I can also recommend some good stat books if you like. Note that all of those definitions fit the definition you posted.
The formula used by The Tech Report is the only one that's relevant as that's the data being discussed. The way I read their description they aren't calculating the result you say they are. If I'm incorrect their description is unclear. Maybe Scott should specify the exact formula he used, but I'm not going to bother pursuing it.
 
Anyway while this is an interesting discussion, it's massively off-topic. Should it be moved to a new dedicated thread or?
I'm done with this. My biggest issue was the start of this sub-thread using fps instead of frame times as 99% percentile input, since that gives the wrong result under all circumstances. That was simply unfair (unintentionally) as a basis to dismiss the whole methodology. After that, it's more matter of opinion.
 
Looking at the reviews, there really is some variety again. Hexus only has it 5% faster than the 7970 GHz at 1600p. PC Perspective had it only 14% faster. Most are around the 22% mark though I believe.

What's worse is, Hexus lauds it as their favourite high end card while PC Perspective found it hard to make a case for buying it :p

I think this is the "real" reason why Hexus thinks of it as their favorite ... I think you read the wrong review. :LOL:

http://hexus.net/tech/reviews/graphics/55725-evga-geforce-gtx-780-superclocked-acx/
 
No I read the right review, I just don't bother with overclocked cards because last time I checked both camps had overclocked cards. You don't generally see AMD cards overclocked on launch day, but then again that's just one more aspect of reviewing that Nvidia has manipulated over the past couple of years. Also reviewing overclocked cards from one side vs stock cards from the other side is just bullshit.
 
Please correct me if I'm wrong, but why use the 7970 Ghz in your comparisons since it's nothing more than an OC'd 7970?

At least the EVGA GeForce GTX 780 Superclocked ACX has no memory clocks at this time.
 
pharma said:
I think this is the "real" reason why Hexus thinks of it as their favorite ... I think you read the wrong review.
Wow... regardless of the "value" of the 780, the relative value add on that EVGA card for $10 is incredible. You are getting a ~15-25% performance bump for a 1.6% increase in price.
 
Because it's not just an overclocked 7970.

Sounds like a OC'd 7970, even smells like it. From TechSpot review:

7970 GHz Edition in Detail
For those familiar with the Radeon HD 7970 there isn't much you haven't seen before. Essentially this is the same graphics card with a little factory overclocking and a larger price tag.
Whereas the standard Radeon HD 7970 graphics cards feature a core clock of 925MHz and a memory frequency of 1375MHz, the GHz Edition has been bumped to 1000MHz/1500MHz. This comes up to be a ~8% core overclock and 9% memory overclock, which isn't quite in line with the 11% price increase versus a standard HD 7970 card.
...
http://www.techspot.com/review/546-amd-radeon-hd-7970-ghz-edition/

Most other reviews state the same. Don't know what you're smoking but I don't think I want any.:LOL:
 
Back
Top