• 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.

DX12 and 6+ CPU cores: savior or irrelevant?

Associate
Joined
12 Jul 2015
Posts
1,694
Firstly, since the DX12 + multiple cores discussion mainly seems to take place in this subforum, I thought I would post here. However, if the mods feel it's a better fit elsewhere feel free to move it of course.

On a plethora of fora (that rhyms!), whereas CPU upgrades/sidegrades are concerned and especially now that Skylake is upon us, I have noticed a trend that recommends Haswell-E (specifically the 5820K because of it's price point) for gamers. The two main arguments provided are:

1) Having more cores is (more) future proof;
2) (Tying into #1) With DX12 around the corner more cores will be utilised in games.

This has made me curious, also because both #1 and #2 are mere assumptions, in my opinion anyway. So therefore I thought this could be an interesting thread to discuss the matter as DX12 creeps ever closer.

What follows is what I think on the matter personally. DX12 is obviously a fact, as is that it can (note 'can' instead of 'will'!) utilise 6+ cores and corresponding threads - however this is no gurantee that it will. The only thing that I've heard from the horse's mouth is that it can, not that it will (because, how could they possibly predict what devs will do...?). Game devs will have to implement it and for them to do that there must be a number of good reasons, which, frankly, I just don't see in the forseeable future.

One reason that I've often seen provided for the 'it will' arguement is that most PC games are console ports and consoles have 8 core CPUs now. True, however... They are, IMHO, rather low level AMD parts that are not on par with older, current and future Intel quad cores - and the latter have no problems whatsoever keeping more than up with any game out there (especially because the GPU plays a much larger role than the CPU). Hence I see no point for game devs to implement 6+ core utilisation.

And because the GPU plays such a significant role in games, why would you want to offload more to the CPU? Sure, it can do other tasks than the GPU, I get that, but nothing that seemingly cannot be done a faster clocked quad core part.

Next, there are only a few DX12 games on the horizon and it usually takes quite a while before such a thing is truly and fully adopted (e.g. look at DX11). By that time Skylake-E is already here - whatever that will bring as compored to the current enthusiast platform.

So I ask, why would you recommend gamers (including yourself) to put all their eggs in one basket (= Haswell-E) at this point in time? Is it because the entire platform its price is currently on par with the Skylake platform? Sure, it is here and there (not where I live, that's for sure, where Haswell-E as a complete platform clearly is the most expensive one). However, keep in mind that Skylake has just been released and thus its prices are still at a premium. With that take into account that, if history has taught us anything (and still is today), games prefer the less cores but higher frequencies and I ask aloud and to no one in particular, wouldn't it make more sense to go for that higher clocked quad core?
 
Just gone x99 myself. I do stuff other than gaming where the extra cores help, but even if I did not, I would have gone with it over skylake for gaming for two reason.

1) Worked out cheaper (went with the x99-sli/5820k bundle here for £393, gone up in price now), similar spec for skylake i7 would have been more expensive.

2) On the dx12 issue. Way I see it. Haswell-e is no slouch.

If devs don't use the extra cores. Then meh. It's not like it will be that much slower than skylake. It's not going to be a case of skylake is playable fps, haswell-e is not. On the other hand, if they do, the extra cores will be a good boost, while skylake will have nothing.

Basically I'd rather have the slightly lower ipc, but extra cores just incase.

Is it a gamble? Sure, but it's not really one you can lose. Even if they aren't used, the ipc is more than good enough and you get extra cores for other stuff (streaming, recording etc).

Of course, the above is based on prices when I was buying, if x99 was significantly more expensive than skylake, then I might not have bothered (I'm cheap :D )
 
Last edited:
Cores or no X99 is faster in games at the high end. Lashings of extra L2 help, as do various other things. Including the extra cores in some games.

So forget the DX12 argument, because it is rather silly unless you plan on keeping the rig 10 years and just focus on the fact that it's faster for same money.
 
I'm still Rocking a Couple of FX8350 Rigs

By the time I replace these it will be Zen

By that time DX12 Will be starting to become more of an issue than it is now
 
Just gone x99 myself. I do stuff other than gaming where the extra cores help, but even if I did not, I would have gone with it over skylake for gaming for two reason.

1) Worked out cheaper (went with the x99-sli/5820k bundle here for £393, gone up in price now), similar spec for skylake i7 would have been more expensive.

2) On the dx12 issue. Way I see it. Haswell-e is no slouch.

If devs don't use the extra cores. Then meh. It's not like it will be that much slower than skylake. It's not going to be a case of skylake is playable fps, haswell-e is not. On the other hand, if they do, the extra cores will be a good boost, while skylake will have nothing.

Basically I'd rather have the slightly lower ipc, but extra cores just incase.

Is it a gamble? Sure, but it's not really one you can lose. Even if they aren't used, the ipc is more than good enough and you get extra cores for other stuff (streaming, recording etc).

Of course, the above is based on prices when I was buying, if x99 was significantly more expensive than skylake, then I might not have bothered (I'm cheap :D )

Well said, I'm in the same boat.

I bought X99M + 5820k which was cheaper than 6700k + ASUS VIII gene (even at low i7 price), and the X99 bundle has now increased in price
 
4 core seems to be the sweetspot right now with regards to games.

I doubt this will change for the foreseeable future but if I was going to upgrade I would go for a Haswell-E because it seems better bang for buck than skylake.
 
The first problem I noticed is the notion that games are "ported" from consoles, and are as such "console ports".

The reality is that this isn't true, "console ports" simply do not exist. Games are not "ported" from consoles.

So what the consoles have specifically isn't a factor in to what optimisations PCs will get when it comes to DX12.

The significance of the console hardware isn't about the number of cores, but about raw power and available resources (RAM), which brings up the lowest common denominator when it comes to games development.

This means your typical game will see a large improvement in general over previous releases when the previous consoles were current.

DX12's intention is to level the playing field with consoles, in as much as how the APIs talk to the hardware, and remove uncessary overhead that just bogs down, or throttles performance.

DX12's goal is essentially to make the way games are ran on PCs more like they are on consoles. Lower level access to the hardware without as many abstraction layers as before.

This can do a few things, the main things are the hardware gets less bogged down by tasks, thus can dedicate more processing power to the tasks so that the GPU/s can be fed with more data and aren't sitting idle waiting for more instructions.

The other major thing is the way the API deals with threading to the CPU, ie the tasks that it sends to the CPU to process. Previously they would essentially have been serially sent (ie, in a queue and were processed one after the other).

DX12 enables the CPU to be sent multiple threads of work to be processed in a parallel fashion, which means the GPU doesn't have to wait as long to perform a task if the CPU is processing a specific thread.

So in essence it allows the CPU to be fed more data in a more appropriate order to ensure the GPU is spending as little time as possible waiting idly for a new set of instructions to come through.

This is what caused the Mantle API's minimum frame rates to increase on lower end CPUs, because the GPUs were being fed data more frequently. The GPU isn't actually "performing" any better, it's simply stopping and starting much less frequently, hence the "increase" in performance.

This is what I liked about Mantle, I never bought that its intention was to become a major API, I think its existence was to give MS a well needed kick up the arse to implement an API that suited modern hardware much better than DX11. I reckon it was an exercise, or a proof of concept to essentially get the ball rolling. Because the reality is that proprietary APIs in such an industry never go anywhere, and are doomed to fail.

So with regards to the actual topic, I think DX12 is going to make a huge difference, and levy great usage of 6 core CPUs, simply because a lot of work has gone in to multithreading DX12 instructions. I suppose you could say a CPU is more like a pool of processing power with DX12 than a rigid set of 4/6/8 independent processing cores.
 
The problem with DX11 is "Draw Calls" its the way the CPU communicates with GPU and this is very important, as it stands DX11 can only communicate through a single CPU thread, for some years now this is not enough, there is so much communication going on between the CPU and GPU that this "single thread" gets choked-up, the result of that is the GPU must wait on the CPU thread to catch-up, in waiting what the GPU is doing is slowing down, the result of that is lower FPS.

This is aside from other things the CPU does in games, like Physics and AI calculations which it can do across multiple threads.

DX12 'Can' Use upto 6 threads for Draw Calls alone and do it at a much lower level, the end result is upto about 20 time the 'Draw Call' performance.

The result is one of those 'not so good' AMD 8 Core CPU's can now use 75% of its total performance for Draw Calls where at in DX11 the same CPU can only use 12.5% for the same task, hence the bad performance. yet in DX12 the performance is VASTLY better, the performance is at least 10 times higher.

If it works as it should. you will not see any performance difference between an £800 Intel CPU and a £100 AMD CPU, at least not for the first few years until devs figure-out what to do with all those extra Draw Calls
 
Last edited:
The problem with DX11 is "Draw Calls" its the way the CPU communicates with GPU and this is very important, as it stands DX11 can only communicate through a single CPU thread, for some years now this is not enough, there is so much communication going on between the CPU and GPU that this "single thread" gets choked-up, the result of that is the GPU must wait on the CPU thread to catch-up, in waiting what the GPU is doing is slowing down, the result of that is lower FPS.

This isn't true, DX11 is capable of multiple submissions through display lists that increases DC capabilities in a slanted fashion, but there is a sizable overhead for doing, DX12 addresses these issues

These features are listed here including various levels of multithreading support within DX11: https://msdn.microsoft.com/en-us/library/windows/desktop/ff476342(v=vs.85).aspx
 
...Is it because the entire platform its price is currently on par with the Skylake platform?...

This for me - Skylake has no real advantages so even if the extra two cores don't help you've not lost out, if they do then you've won. (Also x99 has other gains like if you go multi-GPU it's got a bunch more lanes even on the 5820k, quad channel memory)

Yes, the gains are minimal and overall I'd say Skylake i5 is a better option for most people, but for those who want to go i7 it's easy to recommend the x99 platform right now (as with all these things, if prices change then which options are best should too)
 
once dice get their engine up to dx12 we have an idea what the new dx12 can do.
its likely you dont need any new cpu for a long time.
Thats the good move from AMD remove the gaming as a reason to buy Intel.
you just added a 80%+ customer group with Zen then.
 
Last edited:
This isn't true, DX11 is capable of multiple submissions through display lists that increases DC capabilities in a slanted fashion, but there is a sizable overhead for doing, DX12 addresses these issues

These features are listed here including various levels of multithreading support within DX11: https://msdn.microsoft.com/en-us/library/windows/desktop/ff476342(v=vs.85).aspx

Dx11 may be able to generate the calls on other threads. But everything still gets shoved through the same single core to the gpu in the end.

Although people mention DX12 being limited to 6 threads. I don't believe it or mantle are. What i think is happening is that 6 threads is capable of saturating the logic controller on current GPU's. that or a limit is being hit with PCI-E. But the pci-e one would be visible if multiple cards hit the same hard limit when they reach a certain number of calls.
 
Last edited:
Dx11 may be able to generate the calls on other threads. But everything still gets shoved through the same single core to the gpu in the end.

Although people mention DX12 being limited to 6 threads. I don't believe it or mantle are. What i think is happening is that 6 threads is capable of saturating the logic controller on current GPU's. that or a limit is being hit with PCI-E. But the pci-e one would be visible if multiple cards hit the same hard limit when they reach a certain number of calls.

Exactly, and i do believe this is what i said but never mind :) he's also right in what he's saying and it 'can' improve performance, right up-until the Call thread get's saturated.....


The GPU logic controller limit is an interesting insight, my 290 scores about 5 to ~10% higher than my GTX 970 on the same system in the FutureMark API test, that could have something to do with it.
 
This reminds me of 2007 when the 2.4GHz Q6600 came down to the same price as the 3Ghz dual core. Going for the "slower" (although easily overclocked) quad core got a machine far more futureproof. If I was buying today I would go for the 5820k in a heartbeat
 
This reminds me of 2007 when the 2.4GHz Q6600 came down to the same price as the 3Ghz dual core. Going for the "slower" (although easily overclocked) quad core got a machine far more futureproof. If I was buying today I would go for the 5820k in a heartbeat

Especially the G0 steppings. Or "GO" as many here refer to them. :D
 
Back
Top Bottom