InvalidError :
bit_user :
This is a very absolutist statement and is rooted very much in the current state of affairs, rather than looking towards 2014 and beyond.
I still stand by what I said.
I think I'd be surprised if you didn't.
😉
InvalidError :
Latency? Going over PCIe already requires hundreds of cycles so the drivers and software already need to be written to accommodate very high latencies.
We're talking about
very different things, here. Any GPU-compute task is currently driven by the CPU. The computation model is that the CPU prepares some work and ships it off to the GPU. In the meantime, the CPU can go do something else or queue up more work, but if we're talking about something like a game, the CPU often needs to get the results before it can finish that frame and move on to the next. So, pipelining opportunities are limited.
Now, the CPU is waiting for the data to transfer to the card, then for the GPU to process it, and finally for the GPU to return some result. If either of those steps includes a significant amount of data transfer, then the time the CPU must wait for that data directly affects the amount of time to process a frame, which directly affects the framerate.
And we're not talking about "a few cycles more or less", but rather something like feeding 100 MB of scene geometry to the physics engine, for instance. And let's just worry about one direction. When you're talking about 4, 8, or 16 GB/sec, that amounts to 25 ms, 12.5 ms, or 6.25 ms. No big deal, eh? Well, if you're doing it for every frame, then the maximum framerate you could reach would be 40, 80, or 160 fps. Right now, you're probably thinking that 80 fps sounds pretty good, so 8x it is! Well, let's not forget that we're assuming exclusive use of the bus, but there's a lot of graphics data being shipped over it, as well. It also assumes that the GPU's computation time is zero, which it's not. And the CPU has to do other chores that are either dependent on the results of the GPU computation or a dependency of it. So, maybe you can see why bus speed is so important - because transaction time can be as much or more important than the total amount of stuff you can cram over it, if you were simply sending nonstop.
Of course, I have no idea how realistic 100 MB is, and clever game devs will try to keep as much data on the graphics card as possible and overlap as many things as they can. But even if you cut my number down to 10 MB and assume that bus channel is available 50% of the time, you still come out with spending 30% of the time potentially waiting on just the bus @ 60 fps, in the PCIe 3.0 x4 case.
Don't think we won't start seeing this, since the APUs used in the upcoming consoles have no bus separating the CPU and GPU. They both have fast, wide datapaths to unified memory, as well as possibly a shared L3 cache. Game devs will certainly be doing a lot more heterogeneous computing, to use AMD's parlance.
InvalidError :
x8 currently has very little benefit over x4 most of the time even though PCIe 3.0 has been out for nearly two years already so it will still be a few more years before x8 starts becoming a bottleneck actually worth worrying about.
Fortunately, this point can quite easily be refuted, on the basis of PCIe scaling studies Tom's has actually done. In an article they wrote about PCIe 2.0 scaling, nearly
three years ago, they stated:
Which flies in the face of your above assertion.
InvalidError :
By the time it does, PCIe 4.0 will likely be out since the optimistic ETA is late 2014.
BTW, PCIe 4.0 is coming out in late-2014 or early-2015 so, "looking toward 2014 and beyond", PCIe 4.0 would be my answer. By the time PCIe 3.0 x4 becomes a bottleneck, PCIe 4.0 x4 will be available and enthusiasts will likely have an urge to upgrade regardless of what they have today.
That's completely out of context. We're talking about
this platform, not something coming out in 2015 or 2016! I was saying that you have to look at the demands of the software that will be out during the first couple years after this platform is released, in order to judge whether PCIe x4 or x8 would be a bottle neck on it, because that's the minimum period of time when people who buy these will actually be using them.