Pemalite said: Glad you cleared up the point of you not understanding the PCI-E bandwidth problem.
Well, the proof is in the pudding in regards to Physics calculations. You're talking servers and super computers, that's your problem, consoles and the Desktop PC are far removed from that. Cache helps to solve the bandwidth and latency deficit of having the CPU to grab data from system memory. I agree with the first part. wn if you felt inclined. |
Man, that is a lot of text. Let's go point-by-point:
You are not understading the problems with GPU intensive processing and the problem in the bottleneck. Currently the single massive bottleneck is on passing data from CPU to GPU and all currently uses of GPU calculations are the ones that aren't affected by this problem. As you said "Some datasets aren't terribly bandwidth or latency sensitive, some are". Thats sums up all the point of discussion.
Don't assume to that all massive parallel operations are easy to run on a GPU. Conditional statements or recursive algorithm destroy GPU calculation performance and it's not easy to remove this problems. So we usually deal with more complex algorithms on GPU and still having to worry about distributing your data set is far from a nice experience. That even account for physics, SPH being a good example of problems with CPU-GPU data transfer (http://chihara.naist.jp/people/2003/takasi-a/research/short_paper.pdf, but newer resultas from NVidia are actually looking good now).
Don't believe in the memory wall problem if you prefer, even if it is basically accepted as a fact in all the parallel/masivelly parallel computing community. And that's what we have with 8 or 16 cores. These link: http://storagemojo.com/2008/12/08/many-cores-hit-the-memory-wall/ is pretty great and shows some nice points, even with cases of 16 core processors losing to 8 core ones in operations. There is a paper from John Von Neumann there pointing the problem, and that was in 1945. Is Von Neumann is wrong about it? Not much likely. You point for the use on traditional desktops, where normally the CPU isn't being heavily taxed. And when it is normally the answer is Turbo Boost and that disable cores to rise the clock of others, wich avoids the memory wall problem. I'm talking here about games using all of the cores to do intensive operations and that will hit the bottleneck faster than anything.
HPC is a good source of information about what will happen next. Simply because desktops from now use a similar approach to 80s supercomputers (many cores, PRAM). After that, HPC migrated from that to distributed systems. And that's what's next to regular computing. It's so similar that even GPUs aren't nothing new. NASA's vector computers used in space simulations (and others used in nuclear experiments simulation) are exactly what a GPU is and they existed in the 70s. GPU are just that tech reused for rasterization in the 80s that, by pure luck, were pretty good for graphics calculation because of its nature.
And of course a PS4 can't do "Battlefield 4 in Eyefinity at 7680x1440 with everything on Ultra and achieve 60fps" since it doesn't have the required raw power to rasterize all that pixels. More GPUs? Good luck splitting work between them without passing data. But PS4 will far exceed in physics calculation using both GPU and CPU to workload the task. And even in 1080p, it will look way better. And forgot BF4 now, since it's a unoptimized launch game and probably just a por of the PC version to grab money from people.
And, last: "There are other alternatives other than Cuda (Only locked to nVidia) and OpenCL. This is the PC, you can make your own if you felt inclined. Mantle is coming it will be a game changer. Whatever nuances that multi-platform developers make for console is going to translate into real gains for AMD's Graphics Core Next GPU's on the PC.
No, there isn't any good and real alternative to CUDA. Even CUDA currently sucks. We don't need more alternatives, we need a unified one that runs well on all GPUs and has good developer tools. All the decent ones are NVidia only. AMD needs to up their game here. About Mantle, it's largely PR talk. Coming from AMD that has a terrible background in software tools it is even worse. All GPUs around here are totally different beasts, it's not easy to optimize code for them. Of course it will bring some improvement, but will be far from a game changer. If it was that easy, NVidia would already have it. In the research world, AMD basically never, I mean never, brings nothing new to the table. NVidia brought a lot of massive techs over the years, CUDA is currently the king in GPU computing and Optics is almost bringing real-time raytracing for us. That last one, is THE game changer for the next decade of graphics processing.