What is the good things about Unified Memory Architecture compared with the architecture that separate the memory for CPU and GPU?
What is the good things about Unified Memory Architecture compared with the architecture that separate the memory for CPU and GPU?
Broadly speaking, UMA reduces the amount of copying/synchronization you have to do between CPU and GPU memory. With separate CPU and GPU memory pools, if you wanted to make a texture/model available to the GPU, you would have to first load it into CPU memory, then copy it to the GPU memory, and that copying can take a while. With UMA, the GPU can just directly read the data that was loaded by the CPU. Additionally, if you have a block of memory that is meant to be accessible by the CPU and GPU, you would need to do a lot of copying to ensure both the CPU and GPU memory blocks are synchronized. With UMA you don't need all of this copying back and forth. Finally, UMA allows the GPU to theoretically utilize nearly all of the system's RAM, which on M1 Max is up to 64GB. I don't believe any of the discrete GPUs in Apple products (except maybe the Mac Pro GPUs) have had access to that amount of RAM before.