Previewing DX12 Multi-Adapter with Ashes of the Singularity
Ashes of the Singularity gave us an early peek at how AMD and Nvidia's current GPUs are shaping up for DirectX 12 when we checked out the upcoming real-time strategy title last November. Back then our focus was primarily on DX11 vs. DX12 performance and more to the point how Nvidia's Maxwell and AMD's GCN 1.2 architectures compared. We also looked at CPU performance which proved to be interesting to look at as well.
Although the final game's release is still pending, we know Stardock has been hard at work as shown by the cool new features in its Ashes of the Singularity benchmark 2.0.
The most notable of them is 'explicit multi-adapter' (EMA), DirectX 12's multi-GPU technology, which gives game developers precise control over the workloads of their engine and direct control over the resources offered by each GPU in a system.
Rather than the AFR (alternate-frame rendering) method used by DX11, each frame of a game is split into a tile and this method is called SFR (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.
Perhaps the coolest and most unholy feature of EMA is its ability to support both AMD and Nvidia GPUs in the same system. This means it is possible to pair a GeForce GTX 980 Ti with a Radeon R9 Fury X for example. This mind blowing feature is what we will be focusing on today.
Another advantage of this method is greater memory capacity. Previously multi-GPU configurations in DX9, DX10 and DX11 games were limited to a single GPU's worth of VRAM. For example, dual 4GB cards would only equal 4GB. This is because each GPU contains an identical copy of a game's data set to ensure synchronization and prevent scene corruption.
DX12's explicit multi-adapter technology allows multiple GPUs to combine their memory into a single larger pool. This means two 4GB cards would essentially have an 8GB memory buffer and this could certainly improve the texture fidelity of future games.
The Ashes of the Singularity benchmark 2.0 also makes advanced use of multi-queue and signaling mechanisms, aka asynchronous compute. This is the feature that AMD supports at a hardware level while Nvidia has had to patch it in at the driver level.
As a result, GeForce cards were actually faster when rendering in the DX11 mode, while the opposite was true for the Radeon graphics cards. Now with even more emphasis on async compute it will be interesting to see how Nvidia's Maxwell GPUs handle this latest version of Ashes of the Singularity.
Test System Specs
Something worth noting is that the Multi GPU mode under DX12 required 16GB of RAM to work, installing less would cause the game to hang when loading and eventually crash to the desktop. The developer says this is because Multi GPU requires additional RAM due to the way D3D12 shadows texture memory.
- Intel Core i7-6700K (4.00GHz)
- 4GBx4 Kingston Predator DDR4-3000
- Asrock Z170 Extreme7+ (Intel Z170)
- Silverstone Strider 700w PSU
- Crucial MX200 1TB
- Microsoft Windows 10 Pro 64-bit
- Nvidia GeForce 361.91 WHQL
- AMD Crimson Edition 16.1.1 Hotfix
- Radeon R9 Fury X (4096MB)
- Radeon R9 390X (8192MB)
- Radeon R9 390 (8192MB)
- GeForce GTX 980 Ti (6144MB)
- GeForce GTX 980 (4096MB)
- GeForce GTX 970 (4096MB)