What kind of memory management is done in "Multi GPU" that combines multiple GPUs to enhance graphics performance?



As a technology to enhance graphic performance by combining multiple GPUs, NVIDIASLI, AMDCrossFireAlthough technologies such as the new API "Vulkan" and DirectX 12, you can combine different kinds of graphics. What kind of processing is being done in a multi-GPU that combines multiple GPUs is described in the movie "A New Perspective on Multi-GPU Memory Management"Explains it.

A New Perspective on Multi-GPU Memory Management - YouTube


AMD's CrossFire and NVIDIA's SLI are functions (multi GPU) that can be used by integrating multiple GPUs.


DirextX 12 and API's Vulkan can get rid of the limitations of multi-GPU configuration so far.


With old APIs up to DirextX 11, games and other applications handle buffers, textures, materials, and compute tests in one integrated API and are handled by graphics drivers. This means that multi-GPUs can be controlled only within the same graphic driver range, and it is inevitably a mechanism that can not mix different types of GPUs.


Therefore, software / hardware compliance is required to "graphically" disguise the driver and handle multiple different GPUs "LucidLogix VirtuSpecial skills like "I need it.


However, with Vulkan and DirectX 12, it is possible not only to handle threads of multiple CPUs independently, but also to handle multiple GPUs separately.


Developers can now handle lists with several different purposes ... ...


You can store different data in each GPU memory and ignore unnecessary data.


However, although game developers will be able to control tasks and memory, they can not immediately dispatch tasks more efficiently than SLI and CrossFire.


On the other hand, AFR (Alternate Frame Rendering) Is a technology that makes it possible to draw draw calls of a frame for each GPU.


AFR shows the effect of raising fps in the ideal state.


In contrast, GPU memory processing does not work this way.


In AFR, when dividing frames and drawing frames alternately, it is necessary for each GPU memory to duplicate the same contents. For this reason OpenGL and DirectX 11 were supposed to be able to use only 4 GB even if two graphics boards of 4 GB GPU memory were combined, for example.


However, there is another algorithm. Let's consider an example game of side scroll as an example.


This screen can be handled as multiple layers with different depths like the background and play area, for example.


It should be possible to render this different layer to different GPUs as separate images and then synthesize them and draw them as one picture.


In terms of memory chips, you will accumulate fragments of objects for each scene.


Another advantage of this drawing method is that there is no need to use the GPU's ability equally.


For layers with a low load of rendering, it can be handled by GPUs with inactive graphics capabilities like GPUs embedded in CPU, for example.


This allows you to mix older GPUs that are relatively inferior in performance to the latest GPUs, unlike AFR.


AFR is an effective technology for GPU with large capacity GPU memory,LatencyAnd increase the number of stutters.


Layer methods on the other hand require complicated implementations of object rendering.


VR and 3D images benefit from algorithms. Because our eyes are rendering almost the same information, we are operating close to AFR.


Nonetheless, our eyes have no latency or stutter problems like AFR, and the load balance is perfect. In any case, game developers are required to appropriately select algorithms related to the GPU depending on the contents of the game.

in Hardware,   Video,   Game, Posted by darkhorse_log