The initial DirectX 12 tests, based on Ashes of the Singularity, are very heavily skewed in AMD’s favour. Some have blamed poor drivers on Nvidia’s part, others have said it’s an issue of the game not being optimised yet – but initial consensus seems to be that DirectX 12 gives more of a boost to AMD’s hardware than it does to Nvidia’s. It’s the complete opposite of the picture you get with DirectX 11; which considerably favours team green.
One GPU enthusiast thinks he has the answer. Overclock.net member ‘Mahigan’ believes that AMD’s hardware is far better at parallel processing than Nvidia’s, which is more attuned to serialised instructions. DirectX 12, which offers a console-like, to-the-metal approach relies on parallel instructions.
“nVIDIA, on the other hand, does much better at Serial scheduling of work loads (when you consider that anything prior to Maxwell 2 is limited to Serial Scheduling rather than Parallel Scheduling). DirectX 11 is suited for Serial Scheduling therefore naturally nVIDIA has an advantage under DirectX 11, “ he says.
“People wondering why Nvidia is doing a bit better in DX11 than DX12. That’s because Nvidia optimized their DX11 path in their drivers for Ashes of the Singularity. With DX12 there are no tangible driver optimizations because the Game Engine speaks almost directly to the Graphics Hardware. So none were made. Nvidia is at the mercy of the programmers talents as well as their own Maxwell architectures thread parallelism performance under DX12.
The Developers programmed for thread parallelism in Ashes of the Singularity in order to be able to better draw all those objects on the screen. Therefore what we’re seeing with the Nvidia numbers is the Nvidia draw call bottleneck showing up under DX12. Nvidia works around this with its own optimizations in DX11 by prioritizing workloads and replacing shaders. Yes, the nVIDIA driver contains a compiler which re-compiles and replaces shaders which are not fine tuned to their architecture on a per game basis. NVidia’s driver is also Multi-Threaded, making use of the idling CPU cores in order to recompile/replace shaders. The work nVIDIA does in software, under DX11, is the work AMD do in Hardware, under DX12, with their Asynchronous Compute Engines.”
AMD’s GCN architecture is made for parallel computing, which is probably why the company tried so hard to push for its own Mantle API (which has since been supplanted by Vulcan and DX12) It’s the same reasonably, essentially, that AMD’s cards underperformed with DX11.
“But what about poor AMD DX11 performance? Simple. AMDs GCN 1.1/1.2 architecture is suited towards Parallelism. It requires the CPU to feed the graphics card work. This creates a CPU bottleneck, on AMD hardware, under DX11 and low resolutions (say 1080p and even 1600p for Fury-X), as DX11 is limited to 1-2 cores for the Graphics pipeline (which also needs to take care of AI, Physics etc).
Replacing shaders or re-compiling shaders is not a solution for GCN 1.1/1.2 because AMDs Asynchronous Compute Engines are built to break down complex workloads into smaller, easier to work, workloads. The only way around this issue, if you want to maximize the use of all available compute resources under GCN 1.1/1.2, is to feed the GPU in Parallel… in comes in Mantle, Vulcan and Direct X 12.”
What it all means, beyond being technogobbledygook, is that AMD had parallel computing in mind, whereas Nvidia really just pushed more in the way of raw performance. Great for DX11, not so great for DX12. If it’s all true, it does mean that Nvidia’s going to have significantly change its architecture in the future if it wants the same sort of benefits that AMD gets.
To conclude, he says “Don’t count on better Direct X 12 drivers from nVIDIA. DirectX 12 is closer to Metal and it’s all on the developer to make efficient use of both nVIDIA and AMDs architectures.”
Last Updated: August 24, 2015