Interesting BF 4 CPU usage [GameGPU.Ru]

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

PPB

Golden Member
Jul 5, 2013
1,118
168
106
A i7-930 beating a 2500k? Well if true I actually like that because my i7-870 should faster than that 930 and has HT too. A game that profits a lot from HT?

Might be true but I'm doubtful also because of the huge difference between 2600k and 4770k which as already was pointed out could only be explained by AVX2 usage really and not IPC.

You would be impressed the gains from Haswell on software that can fully utilize it's potential, regardless of instruction sets.

IB->HW saw a +20% perf increase in renderers like Vray, whereas most software doesnt even see more than 5-10% gains (heck a 4670k performs like a 3770k on that particular test). This renderer doesnt even use AVX out of the box. (VRayEmbree helper needed)

This only shows that everyone would be benefited of better software, and Intel fans shouldnt dismiss so easily efforts like this, because even Intel is suffering from crappy coded software right now. What is perceived like minimal gains from going SB->IB->HW could be a lot higher if the software would be there to use all their potential.
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
You would be impressed the gains from Haswell on software that can fully utilize it's potential, regardless of instruction sets.

IB->HW saw a +20% perf increase in renderers like Vray, whereas most software doesnt even see more than 5-10% gains (heck a 4670k performs like a 3770k on that particular test). This renderer doesnt even use AVX out of the box. (VRayEmbree helper needed)

This only shows that everyone would be benefited of better software, and Intel fans shouldnt dismiss so easily efforts like this, because even Intel is suffering from crappy coded software right now. What is perceived like minimal gains from going SB->IB->HW could be a lot higher if the software would be there to use all their potential.

The fact that the software even uses 4770k hyperthreading cores as real cores shows how terribly optimized the game is for Intel CPUs.

Hyperthreading is just putting two threads on the same resource pile (core).

However this makes sense since the entire Frostbite 3 engine is optimized for jaguar cores.

It is a console game running on DirectX 11 after all.
 
Last edited:

PPB

Golden Member
Jul 5, 2013
1,118
168
106
I wouldnt blame the developer on that one. Hyperthreading is a feature that is hard to optimize to. Really well threaded software like rendering is seeing less and less gains from HT as the Intel uarch becomes more and more efficient. That isn't also on the software developer, it's just that HT was designed in the first place to extract performance out of crappy code.

What would be interesting in BF4 is to see benches with HT on and off in i7's, and check if there is an impact in performance and how the bigger L3 stands against i5's.
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
I wouldnt blame the developer on that one. Hyperthreading is a feature that is hard to optimize to. Really well threaded software like rendering is seeing less and less gains from HT as the Intel uarch becomes more and more efficient. That isn't also on the software developer, it's just that HT was designed in the first place to extract performance out of crappy code.

What would be interesting in BF4 is to see benches with HT on and off in i7's, and check if there is an impact in performance and how the bigger L3 stands against i5's.

Read my post again.

If the software was optimized for Intel, in a well threaded program (one that actually uses 5+ balanced load threads) the Hyperthreads would give negligible performance.

The fact that the Hyperthreads are giving such a significant significant performance boost means that the game is absolutely horribly optimized for Intel processors.
 

Carfax83

Diamond Member
Nov 1, 2010
6,841
1,536
136
I can't believe GameGPU is still using Windows 7 for testing, knowing that BF4 runs best on Windows 8 :rolleyes:
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
I can't believe GameGPU is still using Windows 7 for testing, knowing that BF4 runs best on Windows 8 :rolleyes:

Be happy they even have a 4770k now, lol.

We're used to their charts as having only the 2600k as a representative for the current desktop chips.
 

Carfax83

Diamond Member
Nov 1, 2010
6,841
1,536
136
Be happy they even have a 4770k now, lol.

We're used to their charts as having only the 2600k as a representative for the current desktop chips.

Yeah. I suppose I should be happy. This review confirms I made the right decision going with Sandy Bridge E instead of Haswell, since Haswell's superior IPC can't overcome SB-E's extra cores. And this engine will be the foundation of many games to come.

When Haswell-E launches next year, I'll be able to have my cake and eat it too though :awe:
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
Yeah. I suppose I should be happy. This review confirms I made the right decision going with Sandy Bridge E instead of Haswell, since Haswell's superior IPC can't overcome SB-E's extra cores. And this engine will be the foundation of many games to come.

When Haswell-E launches next year, I'll be able to have my cake and eat it too though :awe:

But at what USD(amount) will your cake cost :p (in total)
 

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
Read my post again.

If the software was optimized for Intel, in a well threaded program (one that actually uses 5+ balanced load threads) the Hyperthreads would give negligible performance.

The fact that the Hyperthreads are giving such a significant significant performance boost means that the game is absolutely horribly optimized for Intel processors.

Wait what. This isn't like back in the days of Pentium 4 where HT doesn't have real benefits. It's pretty hard to completely load the execution units of CPU cores like Haswell with a single thread 100% the time when running something as dynamic as gameplay.

Besides, we're seeing BF4 using 6 full cores to the max and 2 more lightly. That's pretty much a best case scenario for a HT-capable CPU.
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
Wait what. This isn't like back in the days of Pentium 4 where HT doesn't have real benefits.

Besides, we're seeing BF4 using 6 full cores to the max and 2 more lightly. That's pretty much a best case scenario for a HT-capable CPU.

Learn how Hyperthreading works please. Thanks :D.

The reason Java scales 100% with Hyperthreading certainly ain't because Java is super optimized, lulz.
 
Last edited:

BallaTheFeared

Diamond Member
Nov 15, 2010
8,115
0
71
With those results, haven't we seen something like this before where they cherrypick a certain part of the game only that makes AMD look good, but for most of the game, it isn't an accurate reflection?

If this is from release than most likely it is from single player.

bf4_cpu_gpu_t.png
 
Last edited:

bunnyfubbles

Lifer
Sep 3, 2001
12,248
3
0
Or you could say the game is properly optimized for AMD for once. Unlike those other games using archaic engines targeting specific uarchitectures (non-AMD).

no, its more likely those games aren't targeting any specific architecture and are just lazily optimized and thus require brute force (ie high clockrate/IPC, which favors Intel not specifically but coincidentally) and that DICE has always been on the forefront of multithread optimization - ie the AMD CPUs do well in BF3 and even BC2 - this really isn't a surprise.
 

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
Learn how Hyperthreading works please. Thanks :D.
How about you explain yourself instead? Simultaneous Multi-Threading was created to more efficiently use CPU resources precisely because it's hard to completely saturate a core with a single thread (plus it's relatively easy to implement if you already had some other advanced CPU features that you'd want regardless).

So can you explain why this technology, researched in the 70's and implemented everywhere is actually an useless technology "if the code is optimized" according to you only?

I mean, IBM's POWER6 had 2-thread SMT, bumped up to 4-threads for POWER7 and the upcoming POWER8 will have 8-threads per core! Clearly IBM thinks it does something.



The reason Java scales 100% with Hyperthreading certainly ain't because Java is super optimized, lulz.
And Java doesn't scale 100% with HT. Hell, it even depends on what kind of software you've written using Java. Actually, the more I think about that statement, the less it makes sense.

Do you think that CPUs should be 1GHz and made super wide to have massive IPC? And that it's feasible but the only reason it's not done is some conspiracy by Intel?
 
Last edited:

beginner99

Diamond Member
Jun 2, 2009
5,320
1,767
136
You would be impressed the gains from Haswell on software that can fully utilize it's potential, regardless of instruction sets.

IB->HW saw a +20% perf increase in renderers like Vray, whereas most software doesnt even see more than 5-10% gains (heck a 4670k performs like a 3770k on that particular test). This renderer doesnt even use AVX out of the box. (VRayEmbree helper needed)

hm.. yeah AFAIK one of the big improvements in HW was multi-threaded scaling. SO BF4 really seems to like cores be it real or virtual.

If this is from release than most likely it is from single player.

bf4_cpu_gpu_t.png

This graph shows nothing that AMD Drivers lead to a CPU bottleneck. Might this be due to the multi-threaded rendering? All in all this really makes the 780 look a lot more interesting than a 290x especially if you do not have an OCed HW.
 

Fjodor2001

Diamond Member
Feb 6, 2010
4,261
605
126
If you only plan on using Nvidia GPUs, yes.

Also if you only plan on running one game on your PC ever.

But likely this is the trend we'll see going forward, i.e. the high quality games being coded for parallelism to make use of the PS4 and XBONE hardware in the best possible way...
 

24601

Golden Member
Jun 10, 2007
1,683
40
86
How about you explain yourself instead? Simultaneous Multi-Threading was created to more efficiently use CPU resources precisely because it's hard to completely saturate a core with a single thread (plus it's relatively easy to implement if you already had some other advanced CPU features that you'd want regardless).

So can you explain why this technology, researched in the 70's and implemented everywhere is actually an useless technology "if the code is optimized" according to you only?

I mean, IBM's POWER6 had 2-thread SMT, bumped up to 4-threads for POWER7 and the upcoming POWER8 will have 8-threads per core! Clearly IBM thinks it does something.




And Java doesn't scale 100% with HT. Hell, it even depends on what kind of software you've written using Java. Actually, the more I think about that statement, the less it makes sense.

Do you think that CPUs should be 1GHz and made super wide to have massive IPC? And that it's feasible but the only reason it's not done is some conspiracy by Intel?

People buy big iron because it's easier to throw more hardware at any issue than it is to actually extract the performance that you already have.

That's what makes it so easy to charge a premium to play in the big boy leagues.

Investing in Hyperthreading means betting that programmers could care less about spending time optimizing for anything.

Also, keep arguing from ignorance, and then make me out to be the bad person :D

Seems like a common theme on these forums.
 
Last edited:

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
So basically rhetoric instead of an actual argument?

It's not like all use cases are nicely ordered data sets you can feed a CPU to brim with. It's not just a question of optimization.

I've provided the explanation that you can't use all the execution units in a single thread all the time. So with SMT, you can use a second thread to fill those units with a different workload.

Can you explain how optimization is supposed to magically make a single thread always fill a core to the brim?
 
Last edited:

24601

Golden Member
Jun 10, 2007
1,683
40
86
So basically rhetoric instead of an actual argument?

It's not like all use cases are nicely ordered data sets you can feed a CPU to brim with. It's not just a question of optimization.

I've provided the explanation that you can't use all the execution units in a single thread all the time. So with SMT, you can use a second thread to fill those units with a different workload.

Can you explain how optimization is supposed to magically make a single thread always fill a core to the brim?

I don't think optimization means what you think it means.

Also, the one that brought this off topic was most definitely you, not me.

I see it's blame shifting time. I'm out.
 

ChronoReverse

Platinum Member
Mar 4, 2004
2,562
31
91
So basically no information but handwaving the term "optimization" the entire time. You haven't even explained what your "Java has 100% scaling in HT" means because that's a nonsensical statement.


Meanwhile, I've tried to explain to you that CPU's can do a certain amount of work at a time but loads can't generally use all of it at once. What if you're asking your CPU to do 2 multiplies but the CPU can do 2 multiplies and 2 additions simultaneously? If your second thread happens to only need additions, then SMT just gained you a bonus!

If anything, HT requires MORE optimization to effectively use!


[edit]I may have screwed up the explanation by thinking about superscalar, someone with more knowledge correct me here. Still, there are cases where SMT helps like when one thread stalls for example. I recall from my classes years ago that superscalar CPUs generally have a certain rate of execution (something like 1.0 per cycle) but when using SMT, the combined rate ends up like 1.5 or something.
 
Last edited: