It’s fun to say hUMA. You can pronounce it any way you want, and it’ll sound fun and light to say. But there’s nothing light about the performance advantages hUMA will bring to the PlayStation 4, Xbox One, and AMD’s next set of desktop processors. AMD, of course, is providing the internals of all three next-gen platforms. hUMA stands for “Heterogeneous Uniform Memory Access”, and if you understand the relationship of RAM to a CPU and GPU in a PC, this will be exciting for you.
Let’s start with a simple example: A CPU, some RAM, and a hard drive. The CPU performs operations, and stores the results in RAM. The RAM can quickly be accessed by the CPU if it needs values in memory for other operations. If the CPU tries to store data into RAM, but there’s no room in RAM, a virtual memory page will be made on the hard drive. Obviously, the hard drive will have much slower access speeds than RAM, but it’s better than a complete shutdown.
Taking that example one step further, let’s add a GPU. GPU’s have their own memory space called VRAM. When you buy a GPU, it’ll tell you how much VRAM it has (top of the line stuff right now has about 2 GB), but the same principle basically applies. The problem introduced here is that the CPU and GPU have discrete sets of memory. What if the CPU and GPU need to communicate? Well, the memory has to be copied over from the CPU’s RAM to the GPU’s VRAM, or vice versa. Then, the GPU is going to operate on the memory, and send the result back to the CPU. The travel time here is inefficient to say the least.
I have a real-world example for you here, that you can try at home! If you own Borderlands 2 for PC, and you don’t have an NVIDIA system with a second graphics card for PhysX. If you do, lucky you. But for the rest of us, try this: Play some Borderlands 2. Enjoy it for it a bit. Then, quit your game, go to graphics options, and find the PhysX Processing option. It’s probably set to low for you. Turn that up to medium, and restart Borderlands 2 so it takes effect. Reload your saved game, and holy wow, look at that framerate plummet. What’s going on here is that since the GPU is trying to handle rendering the game, it’s offloading the physics calculations to the CPU. Thanks to the memory copying bottleneck I explained above, your framerate goes down. Not to mention the vector-based physics used heavily in particle physics is better done by a GPU than a CPU, which is why NVIDIA, last I checked, recommends using a second video card to dedicate to PhysX.
Note: I tried the above example on my AMD video card. If you have a single NVIDIA card, you may see better results. This is not a scientific study by any means, I’m just trying to make a point.
You may have heard the term “APU”. This is the system that is used in many AMD processors. In this scenario, the CPU and the GPU are likely part of the same chip. They also use the same physical memory. However, the CPU and the GPU will be allocated different portions of this memory. If they want to communicate, they don’t have to send the data from the RAM through the bus, but they still have to copy it. Even though they are both reading from the same set of physical memory, since it is allocated to each processor separately, it is as if each has their own walled garden of memory. If I can get a little technical here, the piece of RAM at address space 0 for the CPU isn’t the same physical piece of RAM at address space 0 for the GPU. This is an improvement from the above case, but it can be improved further.
Thus, bringing us to hUMA. The CPU and GPU sharing the same physical memory, but also the same address space. Does the GPU need to work on memory at address 0? Okay, go for it. No copying of anything. This could be huge, because developers no longer need to worry about speed roadblocks. The CPU and GPU can both focus on what they do best, and newly viable algorithms could be created, which could have all kinds of implications on gaming. If the CPU is being undertaxed, the GPU could use more memory to store larger textures. Or maybe the GPU could help out with AI processing (Although this is unlikely, GPU’s are really good at vector math and AI isn’t really about vectors, so much). The full potential of the hardware can now be realized with this arrangement.
It is widely believed that both the Xbox One and the PlayStation 4 will use hUMA, but AMD isn’t talking. Most likely, they can’t comment on certain aspects of the Xbox One or PlayStation 4. The title of the source forum thread says that the PS4 will use hUMA, but the Xbox One will not. That is refuted later in the forum thread. Information is sketchy at this time, but if this is true, this will be huge, especially later in the consoles’ lives as developers get more familiar with hUMA.