Pemalite said: Your entire first part of the argument is that the CPU is powerfull because the GPU can assist in processing. |
First, I did not said anywhere that RAM does any kind on calculation. Second, I don't seem to understand the PCI-E bandwidht problem and the massive performace hit that coping data from CPU to GPU creates. When you work with, let's say, CUDA, sometimes you forget about doing some work that would be 200x faster on the GPU just because the amount of time to pass and get back the date would take longer than doing it slowly on the CPU. The thing here is balanced performance, splitting worload between the two. An unified memory architecture will allow PS4 do physics calculations that won't be on PC versions simply because it can jut get the data and calculate on GPU without data passing costs. You have data, it's on CPUs memory space (DDR3), then you must pass it to the GPU memory space (GDDR5). Now try it using PCI-E and see if it looks fast for anything. I can already garantee you, if the data is small, it doesn't matter if the GPU does the operation 300x faster, you will have to use the CPU. The biggest prove of this problems is looking at what NVidia is doing with their GPU tech for clusters. Their biggest problems is that a node, when splitting work in a CUDA program had to: load data on CPU, send to GPU. Get it back on CPU and then send via ethernet/infiniband to all the other nodes that would do the same. Now, they have the hability to access the network interface directly form the GPU, so a GPU can actually send data to other without passing it to the CPU.
Second, the "memory wall". If you don't believe, reasearch on Google or ask a HPC specialist. This is the single reason that supercomputing migrated form the traditional supercomputer PRAM model for the distributed model we see on clusters. And is one of the primary reasons for Cloud Computing. More machines, more memory bandwidth. On old supercomputers (current ones are actually clusters) you increaser the core count and tried your best to find a better memory technology, but that race was lost long ago. Cache is there to help, not to solve. It all depends if the ammount of data you need will fit on it or not. If it won't, you will have to refill it anyway. Having more cores only makes it worse. And cores only help if the code you are running is optimized to use them. A lot of games are 32-bit executables, just to show how they aren't that worried about optimization now (3GB RAM limit for the executable).
Now, on PS4, you know what you have under the hood. The developer knows exactly. You can even predict and interfere in the way things will be on cache to gain performance. You will have games using heavy parallel processing in 8-cores plus offloading some physics to GPU (SPH it's a good example). And believe me, heavy parallel processing is something they aren't doing on PC games yet. And the GPU part it's even worse, it's much more harder to write code that runs calculation well on any GPU than on a specific one, simply because the compilers suck (I mean CUDA tools and OpenCL tools). For the CPU part, you have amazing compilers (partially thanks to Intel works on the 70s and 80s with matematicians). And besides that, it is currently a mess. NVidia and AMD can't create a common GPU API/Framework for doing calculations and we have to watch OpenCL AMD GPUs and CUDA NVidia GPUs (they work with OpenCL too, but NVidia only creates tools for CUDA and they are far better. Current dev tools for AMD GPUs simply suck terribly bad compared to CUDA). And that will make one hell of a difference.