PDA

View Full Version : PCI express readpixels performance



Adrian
06-20-2004, 02:10 AM
I know a few developers are interested in this so I thought I'd post it.

ATI X600XT MB/sec
glCopyPixels 1220
glDrawPixels 917
glReadPixels 196

For comparison the X800XT AGP card got around 84 MB/sec, that is fairly typical for ATI on AGP.

NVidia cards give around 180MB/sec with AGP, I am waiting for the results of NVidia's PCI express cards.

196MB/sec is disappointing to say the least but it is double the AGP figure.

I have been asked to write an article on readback speed with pci express, I might do it but not sure I'm the most qualified. If there is anyone who would like to do this instead, let me know.

Corrail
06-20-2004, 04:39 AM
AFAIK the new ATI series use a PCI Express Bridge, not a native PCI Express interface. So maybe that is the reason for the low glReadPixels performance.

zeckensack
06-20-2004, 05:06 AM
Let's just hope that this is an "early driver" kind of thing.

dorbie
06-20-2004, 08:07 AM
AFAIK it is NVIDIA that uses a bus bridge chip on the card, not ATI. Dunno what ATI does but if it's a bridge it's at least on the same die.

P.S. Just did a quick search and yup, it looks like NVIDIA claims the ATI is bridged on the chip. He he, more GFX wars, :-)

http://www.theinquirer.net/?article=16651

Dunno who to believe :-( If this is true ATI was playing fast & loose with the word native.

Stephen_H
06-20-2004, 08:15 AM
There should be decidicated independent PCI Express channels for sending data upstream/downstream data from the card, so one would expect with properly written drivers that both would be the same speed, yes?

196MB/s is very disappointing.

Won
06-20-2004, 09:48 AM
Stephen_H: There can be, but there doesn't need to be. AGP can be fast in both directions (3Dlabs cards do it), but most consumer graphics cards only support AGP transfers for draw and PCI for read.

Adrian: Were those numbers for NV4x or NV3x hardware?

-Won

Humus
06-20-2004, 11:40 AM
Originally posted by dorbie:
P.S. Just did a quick search and yup, it looks like NVIDIA claims the ATI is bridged on the chip. He he, more GFX wars, :-)

http://www.theinquirer.net/?article=16651

Dunno who to believe :-( If this is true ATI was playing fast & loose with the word native.There are three things that are constant. Tax, death and nVidia spreading FUD.

dorbie
06-20-2004, 05:51 PM
Perhaps, however I recall it was ATI that stated their interface was native PCI-Express and NVIDIA's wasn't. Seems there's plenty of FUD being spread on both sides.

Adrian
06-21-2004, 12:55 AM
Originally posted by Won:
Adrian: Were those numbers for NV4x or NV3x hardware?The 180MB/sec is for the NV30.

M/\dm/\n
06-21-2004, 01:46 AM
Yup, Humus is definately on red side now :)

V-man
06-21-2004, 07:32 AM
The right image's left bottom area looks weird. Usually chip subunits don't span from one edge to the other. The pic just looks weird.

Dorbie, both companies made their own annoucements on PCI Ex.
ATI will go for native and add a bridge for AGP.
NV will go for AGP and add a bridge for PCI Ex.

Won
06-21-2004, 09:37 AM
This whole PCI-Express bridge v. native "debate" is pointless. There is nothing wrong with NVIDIA's decision to go with the bridge; in fact, they provide ample technical justification for why it's a reasonable interim solution. If it's just a marketing issue, then I'm surprised that NVIDIA even acknowledged ATI's attacks at all, although they kinda back-channeled it so only places like L'Inq would report it.

I wonder if we'll see the bridge in a motherboard. Might be an easy way to get PCI-Express on AGP nForce chipsets.

Anyway, I'm not sure how anyone would tell the difference between a plain old serializer and an AGP->PCI-Express bridge with those images. I would imagine most of the area would be buffering and the hundreds of data/address lines in both cases. The smoking gun would be if they pointed out the AGP bus control logic, but finding that would probably require some serious sleuthing besides the casual scrutiny of die photos.

-Won

Korval
06-21-2004, 11:50 AM
Yup, Humus is definately on red side now Now? He has been ever sense he interened for them a year ago or so.

Humus
06-21-2004, 03:49 PM
Originally posted by dorbie:
Perhaps, however I recall it was ATI that stated their interface was native PCI-Express and NVIDIA's wasn't. Seems there's plenty of FUD being spread on both sides.It is native PCI-e. But for AGP cards it's bridged down to AGP8x. NVidia does it the other way around. Native AGP8x, bridged to PCI-e, with the result that no PCI-e features nor the speed of the interface will be available on their cards, even if they are in a PCI-e slot.

ATi have only provided truthful information, of course packed in the fluffy PR lull-lull though, while nVidia on the other hand is trying to imply that ATI has been lying and is doing the same thing as they do, which is wrong and plain FUD.

Humus
06-21-2004, 03:58 PM
Originally posted by Won:
There is nothing wrong with NVIDIA's decision to go with the bridge; in fact, they provide ample technical justification for why it's a reasonable interim solution.It's a technical decision like any other with pros and cons. Somehow though nVidia couldn't take that we had a checkbox feature that their cards didn't. If they just said "well, we don't have native PCI-e, but it won't matter anyway because ... bla bla", then it would be fine. But what they are doing now would be like ATI claiming that nVidia doesn't really have SM3.0 support and provide DxCapsViewer output from old drivers where it wasn't yet enabled as evidence.

Won
06-21-2004, 07:13 PM
Touche. I've also read that NVIDIA's AGP (when bridged) is clocked at 12x or 16x so it should be sufficient for unidirectional transfers (depending on how the bandwidth is actually distributed). We shall see when those NV40s stop being back-ordered, and when those fancy 3Dlabs cards become available.

-Won

JackM
06-22-2004, 01:05 AM
ATi have only provided truthful informationYeah, sure Humus :)


ATI is supplying true PCI Express cards

ATI’s video processors have a native, or “true” PCI Express interface. They can communicate directly with the PCI Express bus at PCI Express speeds. Other graphics companies have cards that are compatible with PCI Express, but they are still only AGP cards that are “bridged” by a second chip to be physically compatible with PCI Express slots on the motherboard. This architecture can only work at AGP speeds, and is more vulnerable to failure, performance bottlenecks and incompatibility with software applications.

So, let the PR do their job, and stay out of it.

Humus
06-22-2004, 03:21 PM
So please explain to me how this is false.

Edit: Ok, so it's stretching the truth a little since these are problems the end-user likely won't see. But it's on a whole different level. This is a discussion of technical merit on the different solutions, while what nVidia does is spreading false information about our implementation and is using that to claim that ATI is lying and hypocritical.

esw
06-22-2004, 05:12 PM
To bring this thread back on topic...

A 6800 on a fast P4 with AGP8X should be able to get 600MB/s readpixels (assuming no reformatting cost, latest drivers, etc).

PCI-E is really hit-or-miss at the moment since the support is preliminary across the board. Suffice it to say that with fully mature chipsets, GPUs, and drivers, it isn't hard to get much higher than the above number.

Korval
06-22-2004, 05:26 PM
So please explain to me how this is false.The veracity of the statement is not the primary issue. You're accusing nVidia of spreading FUD: Fear, Uncertainty, and Doubt. ATi's statement about nVidia's solution spreads Fear, Uncertainty, and Doubt. Hence, it is as much FUD as what nVidia has said.

That being said, it isn't on nVidia to explain how their bridge isn't going to cause these problems. ATi's the one making the random claim; it is on them to prove their FUD.

"more vulnerable to failure"

How much more? 0.001% would be sufficient to make this claim true, but it doesn't have any real-world meaning.

"performance bottlenecks"

Only in the sense that they won't run at 16x speeds. But this, too, is misleading, because hitting AGP/PCIe memory is still going to be far slower than native video RAM.

"incompatibility with software applications"

OK, this is just an out-and-out lie. There is nothing that makes nVidia's solution "incompatible" with anything. To the outside world, it's aa PCIe chip. If it just so happens to never go above 8x speeds, that's its buisness.


This is a discussion of technical merit on the different solutionsIf anything, it's a discussion of how ATi's solution (either due to hardware misfunction or drivers) clearly isn't helping much on glReadPixels performance. nVidia's glReadPixel support, on native AGP, is almost the same as ATi's one under PCIe. nVidia's, even with the AGP/PCIe bridge, isn't likely to get worse, so it is entirely possible that NV40's PCIe versions will be faster.

Won
06-22-2004, 06:17 PM
esw --

Where does that Geforce 6800 number come from? Did you actually run a benchmark?

JackM
06-22-2004, 09:39 PM
So please explain to me how this is false.I was going to make a lenghty post, but then I noticed Korval post above :)

Now back on topic..


A 6800 on a fast P4 with AGP8X should be able to get 600MB/s readpixels That's some very high numbers you are getting. I have 5900XT on AGP8X mobo, and getting on average ~200Mb/s (read).

Adrian
06-23-2004, 12:08 AM
Originally posted by esw:
A 6800 on a fast P4 with AGP8X should be able to get 600MB/s readpixels (assuming no reformatting cost, latest drivers, etc).This FAQ needs updating then.

"The fastest performance you'll get a readback is approximately 160-180 MB/s (~45 MPix/s) for RGBA/BGRA which is the GPU hardware limit (due to PCI reads on the memory interface). This is with a P4 1.5GHz and above class system. The readback rate doesn't change significantly with the GeForce FX family. Note that you'll get the highest performance when you read back large areas as opposed to small ones."

http://developer.nvidia.com/object/General_FAQ.html

esw
06-23-2004, 07:09 AM
Won, those are measured numbers.

JackM, 6800 has new hardware support for fast AGP readbacks, so I wouldn't expect the same numbers from a 5900XT.

The FAQ should probably be updated. Most of those drawpixels/readpixels numbers are from a GeForce4 on a P4 1.5 which isn't exactly state-of-the-art anymore :-)

Won
06-23-2004, 10:31 AM
Crap. I was hoping for 1.5x-2x that. Were you using PBO? What size was the image?

-Won

Adrian
06-23-2004, 11:36 AM
Originally posted by Won:
Crap. I was hoping for 1.5x-2x that. Were you using PBO? What size was the image?

-Won600MB/sec for AGP sounds very good to me, why were you expecting more? He also says you can expect much better performance with pci-e 6800's once the drivers have matured.

Since it looks like he works for NVidia he is likely to be using the optimal image size and PBO/PDR :)

Won
06-23-2004, 01:04 PM
Various shady reasons. For one, AGP 4x gives you ~1GB/sec, and I'm guessing AGP 8x Realizm boards will pretty much peg 2GB/sec. Another was the "up to 5x improved" figure quoted from the Gelato site, and 5x 180MB/sec (the NV40 approximate read bandwidth) is 900MB/sec. Maybe they were just referring to faster data reformatting. Unfortunately, PCI-Express isn't going to help me.

-Won

esw
06-23-2004, 01:54 PM
600MB/s is a reasonably conservative number for a wide range of modern P4 systems doing a stock glReadPixels - no PDR/PBO. Particularly beefy systems or PDR/PBO usage can do even better.

1GB/s is certainly achievable (I've seen it), but any number of software, GPU, CPU, or motherboard factors can limit that, so I figured I'd be a bit conservative while I'm on the record here :-)

Won
06-23-2004, 04:37 PM
What about an Athlon64 using an 8151 AGP bridge?

-Won

PS :D

Zeross
06-24-2004, 05:28 AM
More glReadPixels benchmarks :

6800 AGP : 605.5 Mo /s
6800 PCI Express : 166.8 Mo /s

5900 AGP : 133.1 Mo /s
5900 PCI Express : 191.7 Mo /s

9600 AGP : 95.2 Mo /s
X600 PCI Express : 175.8 Mo /s

X800 AGP : 97.2 Mo /s Obviously there's something wrong with NV45 PCIE implementation and it doesn't come from the HSI since the 5900PCX is seeing an improvement from the FX version. Hard to tell what happens exactly, poorly optimized driver is probably the issue here, hope nVidia will quickly resolve it.

esw
06-24-2004, 12:40 PM
Zeross, what chipsets are those numbers run on?

Zeross
06-24-2004, 02:31 PM
i925X for PCI Express cards, i875P for AGP cards :)

King Fuzzy
06-27-2004, 02:10 PM
Something to remember about GLReadPixels, is that it processes the pixels when the command is called, that means multipal floating point functions per pixel, it dosnt just copy the data from one location to another.

zeckensack
06-27-2004, 02:24 PM
No. Certainly not required if the framebuffer format and the requested readback format match.

And even if there's conversion going on, it can all be done with integers. A few bitshifts and msb replications here and there, that's it.
At least for color buffers. Depth buffers may be trickier, depending on implementation.

Adrian
06-28-2004, 12:14 PM
Results from a 6800 GT on an FX51 AGP8x.

MB/sec
glCopyPixels 8715
glDrawPixels 901
glReadPixels 629
glReadPixels(PDR) 948