• Competitor rules

    Please remember that any mention of competitors, hinting at competitors or offering to provide details of competitors will result in an account suspension. The full rules can be found under the 'Terms and Rules' link in the bottom right corner of your screen. Just don't mention competitors in any way, shape or form and you'll be OK.

AMD Bets on DirectX 12 for Not Just GPUs, but Also its CPUs

Man of Honour
Joined
21 May 2012
Posts
31,941
Location
Dalek flagship
AMD Bets on DirectX 12 for Not Just GPUs, but Also its CPUs

In an industry presentation on why the company is excited about Microsoft's upcoming DirectX 12 API, AMD revealed its most important feature that could impact on not only its graphics business, but also potentially revive its CPU business among gamers. DirectX 12 will make its debut with Windows 10, Microsoft's next big operating system, which will be given away as a free upgrade for _all_ current Windows 8 and Windows 7 users. The OS will come with a usable Start menu, and could lure gamers who stood their ground on Windows 7.

In its presentation, AMD touched upon two key features of the DirectX 12, starting with its most important, Multi-threaded command buffer recording; and Asynchronous compute scheduling/execution. A command buffer is a list of tasks for the CPU to execute, when drawing a 3D scene. There are some elements of 3D graphics that are still better suited for serial processing, and no single SIMD unit from any GPU architecture has managed to gain performance throughput parity with a modern CPU core. DirectX 11 and its predecessors are still largely single-threaded on the CPU, in the way it schedules command buffer.

gPEbxJj.jpg


dAPWT9V.jpg


295t545.jpg


8G2Elp7.jpg

A graph from AMD on how a DirectX 11 app spreads CPU load across an 8-core CPU reveals how badly optimized the API is, for today's CPUs. The API and driver code is executed almost entirely on one core, and this is something that's bad for even dual- and quad-core CPUs (if you fundamentally disagree with AMD's "more cores" strategy). Overloading fewer cores with more API and driver-related serial workload makes up the "high API overhead" issue that AMD believes is holding back PC graphics efficiency compared to consoles, and it has a direct and significant impact on frame-rates.

Se72Exx.jpg


auSkFFf.jpg


ecZ4HLJ.jpg


5y9t3PZ.jpg


vLohM5x.jpg

DirectX 12 heralds a truly multi-threaded command buffer pathway, which scales up with any number of CPU cores you throw at it. Driver and API workloads are split evenly between CPU cores, significantly reducing API overhead, resulting in huge frame-rate increases. How big that increase is in the real-world, remains to be seen. AMD's own Mantle API addresses this exact issue with DirectX 11, and offers a CPU-efficient way of rendering. Its performance-yields are significant on GPU-limited scenarios such as APUs, but on bigger setups (eg: high-end R9 290 series graphics, high resolutions), the performance gains though significant, are not mind-blowing. In some scenarios, Mantle offered the difference between "slideshow" and "playable." Cynics have to give DirectX 12 the benefit of the doubt. It could end up doing a better job than even Mantle, at pushing paper through multi-core CPUs.

AMD's own presentation appears to agree with the way Mantle played out in the real world (benefits for APUs vs. high-end GPUs). A slide highlights how DirectX 12 and its new multi-core efficiency could step up draw-call capacity of an A10-7850K by over 450 percent. Sufficed to say, DirectX 12 will be a boon for smaller, cheaper mid-range GPUs, and make PC gaming more attractive for the gamer crowd at large. The fine-grain asynchronous compute-scheduling/execution, is another feature to look out for. It breaks down complex serial workloads into smaller, parallel tasks. It will also ensure that unused GPU resources are put to work on these smaller parallel tasks.

mqrD5GS.jpg


XiEgUsp.jpg


2aHADOb.jpg


1hMqZGc.jpg

So where does AMD fit in all of this? DirectX 12 support will no doubt help AMD sell GPUs. Like NVIDIA, AMD has preemptively announced DirectX 12 API support on all its GPUs based on the Graphics CoreNext architecture (Radeon HD 7000 series and above). AMD's real takeaway from DirectX 12 will be how its cheap 8-core socket AM3+ CPUs could gain tons of value overnight. The notion that "games don't use >4 CPU cores" will dramatically change. Any DirectX 12 game will split its command buffer and API loads between any number of CPU cores you throw at it. AMD sells you 8-core CPUs for as low as $170 (the FX-8320). Intel's design strategy of placing stronger but fewer cores on its client processors, could face its biggest challenge with DirectX 12.

http://www.techpowerup.com/210960/amd-bets-on-directx-12-for-not-just-gpus-but-also-its-cpus.html
 
Last edited:
I doubt it will give AMD an edge in CPU performance - mantle didn't suddenly make AMD CPUs preferable to Intel.
 
AMD could just, I don't know. Release a better CPU :p

That said, it's very likely that DX12's going to help, at least get them squaring up better to i5's.
 
Even if the API and drivers are optimised games aren't forced to be, why leave yourself dependent on software being coded a certain way? aren't AMD going back to a more Phenom-type architecture with Zen anyway?
 
D3D12 will only be used in some titles so although it will help it won't be a cure-all.

And this is all only about games, not any other application.


One of the reasons Intel does well is it is very hard to write highly parallel software, therefore Intel chooses fewer cores that have higher performance, but AMD chooses simpler cores and more of them. This is a classic software problem that AMD should have gotten right if they understood why their X86-64 extension took off and the Intel IA-64 failed . IA-64 is a far better architecture but ti didn't get software support. Intel learned the lesson and have created CPUs that perform the best under today's software limitations.



games aren't suddenly going to make full use of 8 cores by magic just because they use DX12. The only difference is the graphics calls wont be potentially limited to a single/few cores.
 
I doubt it will give AMD an edge in CPU performance - mantle didn't suddenly make AMD CPUs preferable to Intel.

It may actually happen, although not for enthusiasts. i3 could equal or beat a fx8xxx in some games, however now, with properly made code, you could get a cheap gaming machine and the ones already on the market get a "free" significant upgrade.

If a fx8320 can do 80fps while an i7 can do 120fps, but the price is double, I much rather go with the 1st and spend the extra money on gfx card, RAM, SSD, etc.
 
It may actually happen, although not for enthusiasts. i3 could equal or beat a fx8xxx in some games, however now, with properly made code, you could get a cheap gaming machine and the ones already on the market get a "free" significant upgrade.

If a fx8320 can do 80fps while an i7 can do 120fps, but the price is double, I much rather go with the 1st and spend the extra money on gfx card, RAM, SSD, etc.

But it wont, if a game was designed with only 2 threads it wont make use of the8 cores anyway. Sure the DX12 calls may be divided but that is only a small part of a game's load.
 
True, but since most games come out on a slow 8core APU, they're forced to optimize as much as possible the rest of the code, so the render part should be the real hog.
 
Last edited:
Very much doubt developers will take the time needed to make their games run well on AMD FX 8 core CPU's.

I mean, why would they? AMD command only 20% of the desktop market share.

They'll make sure the games run well on Intel, as 80% ish of the market runs an Intel.
 
DX11 communicates with the GPU through just one thread, this has nothing to do with Multithreading at a blanket level as some seem to think.

You can code different tasks through different threads, yes, the problem is all that still needs to be pushed through one thread to the GPU, its a very real and very big bottleneck.

Opening up more GPU extraction threads will result in huge performance gains, and yes more for AMD than Intel given that an i3's 2 fast threads don't make up for AMD 8 slower threads, not even close, infact an FX-4300 will easily match it, an FX 6300 easily beat it.

The i3 can only improve by about <60%, an FX-8300 can improve by <800%
 
Last edited:
As an AMD CPU user, I can vouch for the efficacy of low level APIs and Mantle specifically.

Battelfield 4 is worlds apart using Mantle opposed to DX11.
 
Back
Top Bottom