Some additional thoughts/questions about DRAM:
Over at MR, one would sometimes hear an argument like this:
"Suppose you're comparing a Mac with 16 GB unified RAM to a PC with 16 GB CPU RAM plus 8GB GPU ram. Further suppose you were doing a GPU calculation that required 6 GB GPU ram. On a PC, that would still leave you with 16 GB RAM for CPU calculations, while on a Mac you'd only have 16 - 6 = 10 GB available."
The standard counter to this is: "Any data in GPU RAM eventually needs to be moved over to the CPU to be used, so you'd also have 16 - 6 = 10 GB PC CPU RAM available. UMA simply avoids this duplication— and consequently avoids data-transfer ineffeciencies, by having a common pool that both the CPU and GPU can access."
But now I'm now wondering if the counter is a bit too pat, for two reasons:
1) The discussion of dynamic caching indicates that, in the absence of such caching, the system will often reserve more RAM than is needed for a GPU calculation. To use an arbitrary number for illustration, say it reserves 7.5 GB for that 6 GB calculation (i.e., an extra 1.5 GB). Without UMA, reserving that extra 1.5 GB on the GPU RAM is not going to reduce available CPU RAM. However, with UMA, it seems it would—in fact this seems to be one of the problems that M3's data caching is designed to address.
2) When you have separate CPU and GPU RAM, can't you have some calculations that are done in the GPU RAM, where all that needs to be sent to the CPU are intermediate and final results, such that you wouldn't need to copy all the contents of the GPU RAM to the CPU RAM? If that were the case, then the separate GPU RAM would effectively increase the available RAM.