AMD Explains DX12 Explicit Multi GPU Benefits
AMD Explains DX12 Explicit Multi GPU Benefits
Published: 13th August 2015 | Source: AMD |
MD Explains DX12 Multi GPU Abilities
As some of you may already be aware, DirectX 11 was never really built to handle multiple GPUs working on a single game. Yes SLI and Crossfire exist, but as many of you also know, they are far from perfect solutions.
DirectX 12 is different, being built from the start to be able to handle multiple GPUs it has the ability to transform SLI and Crossfire as we know them today by making it easier to implement and use and should make horrible SLI/CF profiles a thing of the past.
One of the first features AMD is looking to show off is the ability to use an APU and a GPU together, allowing the APU's iGPU to do some of the smaller tasks, allowing he beefier dedicated GPU to do the more intensive work. Nothing is stopping this from working with Intel's Integrated Graphics, in theory, but this will certainly require extra developer interaction in order to implement.
At this point we are unsure if we will see this implemented into many games, though the option is definitely interesting.
"With asymmetric rendering in DirectX 12, an engine can assign appropriately-sized workloads to each GPU in a system. Whereas an APU’s graphics chip might be idle in a DirectX 11 game after the addition of a discrete GPU, that graphics silicon can now be used as a 3D co-processor responsible for smaller rendering tasks like physics or lighting. The larger GPU can handle the heavy lifting tasks like 3D geometry, and the entire scene can be composited for the user at higher overall performance."
Crossfire and SLI typically use a AFR (alternative frame rendering) approach to Multi-GPU configurations, allowing each GPU to render every other frame. This allows a theoretical 2x increase in he number of frames produced, but also increases the typical lag experienced, as frames have to wait for each other before they can be put onscreen.
DirectX 12 ads a new option to the mix, SFR (Split Frame Rendering) which allows each GPU to produce half of each frame, meaning that the two GPUs are actually working together to produce each frame. This means that frames can be completed between 2-3 times faster than typical SLI or Crossfire AFR setups, meaning that you game should feel much more responsive. This type of Crossfire was recently used in Civilization Beyond Earth when it used AMD's mantle API with AMD GPUs.
"New DirectX® 12 multi-GPU rendering modes like “split-frame rendering” (SFR) can break each frame of a game into multiple smaller tiles, and assign one tile to each GPU in the system. These tiles are rendered in parallel by the GPUs and combined into a completed scene for the user. Parallel use of GPUs reduces render latency to improve FPS and VR responsiveness."
One other feature DirectX 12 brings to the table is the ability to combine memory pools, provided the game developer creates their games with this feature in mind.
In traditional AFR based Multi GPU rendering, both GPUs are working on separate frames of the same scene, requiring both GPUs to hold exactly the same data in each GPUs VRAM as both are working on the same tasks. Without explicit mechanisms to utilize multiple GPUs, tasks cannot be decided in such a way that the GPUs could do different enough tasks to utilize their memory pools separately.
With DirectX 12 developers can specifically allocate tasks to a specific GPU, allowing them to control the GPU hardware in such a way that each GPU could use their full frame buffer independently, meaning that 2 4GB cards in SLI or Crossfire could create a setup with 8GB of effective GPU memory.
Right now I do not see many developers taking this approach to crossfire as the work required to assign tasks in such a way will not be cost effective as not many people use Multi GPU setups, so the effort would likely be placed in an area where more of an impact on sales could be achieved, perhaps improving the graphical fidelity or otherwise trying to improve the games framerate in other ways.
DirectX 12 will change the way we all think of Multi GPU configurations when it launches later this year, making them much more viable and gamer friendly. For a long time we have recommended that gamers buy the single best GPU that they can afford, avoiding multi GPU setups when possible until you get to the highest end GPUs in order to avoid the issues which plague Multi GPU setups. This may be about to change, but we will need to see the improvements for ourselves before we change out way of thinking.