CPU Bottleneck and Hyper Threading

DND

Stay Safe, Healthy and be Kind - Stop Hate
Last year I upgraded from a GTX 970 to a GTX 1070ti to go along with the i5 6600k, 16gb DDR4-2133 on a Z170 motherboard with triple 1080p @144Hz 27" monitors. All looks good but wondering if there is something I can do to utilize the full ability of the monitors.
I went to PC Builds to see if a bottleneck was obvious and got the following results. Although the recommendation was to upgrade to an AMD Ryzen it would require more of an upgrade than I care to do as I like to maintain the same MB if possible.

1603582425274.png


The MB is capable of supporting an i7 6700k which is within my budget, and this gets the number within an acceptable range (8.16%) and overclocking the CPU to 120% gets it down to 4.89%. This assuming I can OC the i7 to a similar level as the i5.

My concern is hyper threading and what I have been reading as to whether it's a benefit or a hinderance to gaming.

Have you upgraded from a non-hyper threading CPU to a hyper threading CPU?

If you have a HT CPU do you have to disable hyper threading to achieve stable performance?

My goal is to have the highest settings for graphics as possible as it seems like when I run R3E max settings (less blur and shadows) with frame rates well above 75 fps is no problem but rFactor2 at considerably less.

Thanks for any input.
 
  • Deleted member 197115

I have been doing some testing with HT on and off in the past in AC.
I do not think it makes practical difference in sims if you already have 6+ cores.
You can push OC higher as number of concurrent threads CPU can run will be halved that is it will be less stressed/heated during multi threaded testing but that's probably it.
Heavy multi-threaded apps can benefit from having HT on.
I think there was a thread a while back with some CPU tests, including HT on and off.
 
Last edited by a moderator:
  • Like
Reactions: DND
I have z170 and had 6600k and put in a 7700k justy needed a bios update ;) Have a look at 7700k as at least its faster again than 6700k even if its only 10 odd %
I dont have anything clinical about HT v NHT but i certainly noticed better performance going from 4c4t to 4c 8t and i believe it came from the 6600k being fully utilized anytime Windows decided to do something while i was gaming .
If i go to that bottleneck site i get this
Screenshot (588).png
 
  • Like
Reactions: DND
  • Deleted member 197115

That thread that I mentioned.
 
  • Like
Reactions: DND
Hyperthreading is a non-issue. Only look at the number of threads available, and on single-threaded performance of the CPU. Otherwise it doesn't really matter whether a core (thread) is physical or virtual. People will sometimes tell you there are huge gains to be had by turning off hyperthreading, but it's not really true when you look at the numbers. At best there are some marginal gains in very specific situations that are not worth the hassle.

Currently the sweet spot regarding gaming performance and number of cores (physical or virtual) is around 6. That is pretty much enough to run pretty much any current game well and even be able to run some background tasks fine. 8 is obviously better for the background stuff, but 6 is mostly fine. That's more or less what even the newest sims like ACC or AMS2 need to run optimally - most of the other sims need even less (because they're very single-threaded anyway, and use like 2-3 CPU threads overall).

If you have the option to upgrade to i7 6700k, then that's the path I would take myself. Getting Ryzen 5 2600 doesn't make much sense, as you'd have to replace MB, CPU and RAM, and all that to get a CPU that performs worse in games than the i7 6700k (because it has lower single-threaded performance). Even when considering a Ryzen 3600 instead, which is closer in performance to the i7, I would still kinda hesitate to recommend it.

Also, I would be willing to bet that with 3x1080p running on 1070Ti, you're actually GPU limited in most sims. That bottleneck calculator (besides being kinda suspect in general) seems to only consider single monitor situations, where the GPU has a much higher chance to be CPU limited (when running with vsync off and without any framerate limiters).
 
@Case_ from what I am understanding is that number of threads from 4 to 8 (i5 6600k vs i7 6700k) and the increased clock speed would be an improvement but still may leave me short when its compared to the GPU?
 
@David DeGreef Yes, more threads than 4 and a higher CPU clock would certainly be an improvement.

As for the GPU limitations - that's something only you can answer, really, since it depends a lot on what games are we talking about, the graphics detail setting and plenty of other stuff. I'm just guessing. Look at your GPU utilization in various situations, that will tell you more.
 
  • Like
Reactions: DND
I also run a 7700K on a Z170 board.
Beware though: those bottlenecking calculations above seem to assume that a 7700K is about twice as quick as a 6600K - this is only ~true for code that is very multithready. This is not the case for AC, for example, where anything more than 3 or 4 cores are all but wasted, but I can't speak for R3E or rF2 which are your sims of choice.
In my experience, HT isn't that much worse than real cores for most mixes of code, but there are a few corner cases where code will actually speed up if you turn it off.
As @Case_ says though, a Ryzen 5 2600 is not going to be an improvement for gaming, and I would also agree that on most games (nearly all?) the 6600K is not actually going to be much of a bottleneck for your GPU so I'd say that web site has given you some pretty lousy advice.
 
  • Like
Reactions: DND
On my setup at least (no triple screen, no VR - in case that's relevant somehow), Raceroom uses a single main thread plus two other "side" threads (that roughly equal to one CPU thread), plus a few "breadcrumb threads" as I like to call them. In other words, 3 cores (if there was such a CPU) should be plenty for Raceroom and you are unlikely to see any real improvement with more cores (CPU threads).

RF2 is even more single-threaded than Raceroom, again using one main thread and two "side" threads that don't even equal to another full CPU thread, and a few "breadcrumbs". You would probably be able to run rF2 on dual core CPU just fine, and you'd likely not see much improvement with more cores (CPU threads).
 
Last edited:
I could run AC in VR with my 6700k@4,4GHz even with deactivated HT, so i somewhat agree with Case_ that sims tend to not utilize that many cores.

The only times i ran into performance issues where when running with 23 ai drivers. And that issue was solved with faster memory (3200cl14 coming from 2400) as this can push the cpu limit significantly.

Honestly, i would not invest any more money into a z170 platform and if i really had to, i would definitely replace that slow 2133 memory with something faster. I also agree on not replacing it with a ryzen 2600, better wait for the 5600.
 
Last edited:
  • Like
Reactions: DND
So last night I ran the Task Manager/Performance while running R3E and then with rF2. Each showed the CPU and GPU at 100% usage and the memory at 30% while obtaining 144 fps and 70 fps for these two sims. If each the CPU and GPU are at 100% does that not reason there indeed is NOT a bottleneck or am I missing something else.
 
@David DeGreef If you have both CPU and GPU at 100%, it would mean your CPU and GPU are very well matched...and *both* are bottlenecking your performance ;) Though I'm not sure how much Task Manager can be trusted in this regard, I really would rather use something like the MSI Afterburner/RTSS, which is a bit of an industry standard.

I am kinda surprised you get both at 100%, and in both sims too.

@Kiryu Well I'm glad you at least *somewhat* agree with objectively measurable facts :D (No offense, I guess I understand what you're trying to say, I just found it funny the way you phrased it.)
 
Thanks @Case_ for the suggestion. Although it was a small sample size (5 mins) with 30 cars at Road America on rF2 I was getting around 65 fps. My layman's analysis tells me that GPU and CPU still have room as each are about 50% and the RAM is roughly 30%.
I'm confused as to why the fps aren't higher and if I increase the graphics settings they certainly take a significant hit. Why wouldn't the CPU/GPU operate at a higher % when there seems to be room for improved visual?

1603742217269.png

1603742373489.png

1603742548684.png
 
I'm confused as to why the fps aren't higher and if I increase the graphics settings they certainly take a significant hit. Why wouldn't the CPU/GPU operate at a higher % when there seems to be room for improved visual?
Welcome to the wonderful world of multicore/multithreaded CPUs ;) It's a bit confusing. Thing is, with multicore/multithreaded CPUs, what you see as your CPU usage, be it for the CPU as a whole or even for individual cores/threads, doesn't really tell you much about what is going on and if you are hitting your CPU limit.

When it comes to overall CPU usage, you have to take into account the number of cores/threads you have available. On your quad core, even if one of the cores is fully utilized and bottlenecking your performance, you will only hit around 25% CPU usage, because that core/thread can't get more - it's using all of its share of the CPU. With more cores/threads, this number gets even lower - on my 12 thread CPU, it's only 8.3% (for hopefully obvious reasons). The only way to see 100% CPU utilization is for all four threads/cores (in your current case) to be fully utilized. Which doesn't happen often - it might for you, because you only have 4 cores/threads available on your CPU, but as you get more, it's more and more rare to ever see that happen, because an app has to be able to use so many cores, and most common apps and games don't.

And it sadly gets even more complicated, because even looking at individual core utilization doesn't really tell you much. You might expect that if one CPU thread is bottlenecked, you would see that core pegged at 100% utilization, so you'd know there's a bottleneck there. Sadly, for various reasons (including the fact that there are generally hundreds of application threads at any moment in time competing for your CPU), it's not very common for an application thread to actually stay locked to a specific CPU core/thread. More often than not, the OS is very quickly juggling the application threads around on your CPU, so instead of running for (say) 1 second on core 1 at 100%, it actually runs 0.25 s on core 1, 0.25 s on core 2, then maybe 0.25s on core 4 and then back for 0.25 s on core 1 (this is just an example, in reality it would be miliseconds). And because the monitoring tools can't follow this quickly, it also tends to get averaged out, so instead of quick blips of 100% utilization on all four cores, you might see that one second represented perhaps something like 50% on core 1, 25% on core 2 and 25% on core 4. So even though the app threads are completely bottlenecked and run at 100% utilization for a brief moment before jumping to another CPU thread, you don't get to see that in the monitoring tool, because it happens too quickly.

Like I said, it's all a bit confusing and counterintuitive.

But anyway, from what you've shown here, it would be logical to assume your GPU is indeed bottlenecked by your CPU, because it seems like its utilization is certainly not anywhere close to 100% (you seem to be more around 50%, also the temperatures are fairly low, which shows the GPU isn't really working that hard), and unlike CPUs, with GPU utilization what you see is more or less what is actually happening. And this usually happens when the CPU just can't feed the GPU enough data to keep it at high enough utilization. But bear in mind this could also happen for other reasons, including if you perhaps had some framerate limiter active, or had vsync active and the framerate reached your refresh rate (but you mention 65 fps, so that is probably not the case here). So the logical conclusion here would probably be that the game is indeed CPU bottlenecked and just can't run any faster on your CPU.

The only thing that might suggest otherwise is that you say the framerate took a hit when you set the detail higher, as that might suggest GPU near its limit as well, but at the same time, it really depends on what detail are we talking about, because some settings can just tax your GPU, while other settings can be more taxing on your CPU, so if that is already overstressed, then obviously forcing it to work more won't help things.

So...yeah. Sorry for a long post.
 
Last edited:
Thanks again for all the information. I will continue figuring out what settings in rF2 work best and make heads or tails from the different Anti-Aliasing, Post Processing, etc.. as perhaps it's just a Goldilocks scenario.
 
I can't really give you tips for rF2 on your setup, as it might still be specific to a degree, but as far as my own experience goes, here are some:

Post effects - don't really need them above Medium, and even Low only makes a difference in replay for the most part (not completely, but it's where you'll notice it most). Higher settings can be a performance hog.

FSAA - I don't really see a difference in performance or look regardless of setting. Maybe there is some, I don't know. There's pretty much no current information on what those settings even mean - there's info on what these meant in DX9, but that's been useless for years now.

Circuit/player/opponent detail - this can have some effect on performance. I generally use full for circuit and high for the rest. Bear in mind that for some reason, opponent detail also determines player detail in multiplayer. So if you set it lower, you might have an ugly(uglier) cockpit in your car. That also ties to the next one...

Texture detail - this is something you might want to pay attention to, and Afterburner can help here if you monitor the VRAM usage in OSD while driving. I'm not sure what the requirements for triple screen are and how it all works, but for High, my 6GB VRAM card barely does it (struggles on some combos, in fact). For full, you'd probably need at least 8GB, if not more. Again, not sure how much triple screen needs. Also, following up from above, note that you can manually tweak the config files so you can adjust texture detail for player and opponent cars independently on the respective detail settings. But I'd really suggest taking the time to set texture detail just right, because when you run out of VRAM, it can on certain systems lead to a big performance drop and/or various issues (stutter and such).

Texture filter - I really don't think anything other than 16x Anisotropic should be used in any game in 2020, thought I've heard claims that for some reason, lowering this might have a positive impact on rF2's performance and/or visuals. I've never seen that myself, but that doesn't mean it can't be true on some systems.

Special effects - never really noticed a difference, but I'm running High.

Shadows and Shadow blur - never noticed much of a performance difference, just visual, but I'm running High and Optimal. I've upped this to max for some screenshots.

Rain drops - if you're only racing in dry weather, you can turn this off completely and get a nice performance boost (yes, even when it's not raining).

Road reflection and Environment reflection - they look pretty bad regardless IMO. But they can certainly have an impact on performance. I run High. Ultra looks better, but can be a performance hog at times.

Visible vehicles - Likely a big one for performance and probably even for CPU. It's good to find some balance here to see enough cars to be able to drive safely, but not too many for performance reasons. I settled on 20. (This setting is also one of the most important ones in Raceroom, BTW, it can affect performance in a big way there.)


Also, one final thing - always bear in mind that in rF2, performance can vary wildly between one combo and another, and often even in various parts of the track. I usually use the newest official stuff for performance testing, so for example Nordschleife or Le Mans with a fair amount of official GT3 and LMP AI cars, as those combos can be quite demanding, but even then, you can encounter community mod cars and tracks that are simply not optimized well, despite not using the latest technologies rF2 offers, and your performance may drop noticeably. And also - rF2 is a bit of an odd game that doesn't really follow "conventions", so to speak, and does a lot of things differently than has been considered "standard" for years, so the settings can often affect the performance differently than one would expect based on experience with similar settings in most other games.
 
Last edited:
My layman's analysis tells me that GPU and CPU still have room as each are about 50% and the RAM is roughly 30%.

Hi David,
On why there seems to be a limit on performance in RF2 have you checked framerate cap? "max framerate" in the player.json file? Since I lifted mine to 200 (my monitors max refresh rate) with vsync off it easily pegs one CPU thread at 100% and then dropping the graphics settings to the point where the GPU is close to limiting on the first lap to achieve the most acceptable framerate possible.

Having used high refresh triples with RF2 for a couple of years now, it definitely needs the fastest single core performing CPU and paired with fast RAM you can get your hands on, especially if you want to run at 144hz on triples.

Using triples does not seem to act the same as using a single higher resolution monitor in terms of CPU bottlenecks. A triple setup with same combined pixel count is way more likely to CPU bottleneck than a 4k monitor. It will GPU bottleneck in a similar way to 4k but CPU bottleneck much harder. (I tested this with my triple ultrawide 1080p setup against a 4k 60hz monitor both using the same internal game 200hz cap). I could push the graphics much harder on the 4k monitor and achieve higher framerates especially on the first lap.

Not an expert but I think its something about 3x the refresh rate multiplied in draw calls maybe? or because the expanded wider view has much more geometry than you would see on a single monitor, plus the 3x multiview rendered calculations? I really don't know why exactly but CPU bottlenecking is definitely the major factor. I'm hoping to get a AMD 5600x or 5800x soon to reduce this bottleneck further. Once you go 144hz the smoothness is addictive.
 
  • Like
Reactions: DND
Awesome information everyone, much appreciated.:D

Applying the max framerate in the json file to 200, setting vsync off as suggested by @Trebormoore84 and mirroring the settings of @Case_ I instantly approached and exceeded 80 fps topping out near 100 fps with the Stock Car/Road America combo I ran prior.

Then I tried a S397 combo, also with 30 cars (visible), of GT3 at Sebring for 8 laps and saw similar fps of 80 consistently topping out near 100 fps.
The GPU usage increased to 75 -80% with a few spikes at capacity, with max CPU core use of 63%, while overall CPU usage hovered right around 45%. RAM jumped up as well from using 5gb to 9.8gb.

I plan on playing with the settings for details, while leaving off any AA to see how it affects things but for now I think worrying about bottleneck may be less of an issue and just work on understanding rF2 a little more.



1603807157081.png
 

Latest News

What's needed for simracing in 2024?

  • More games, period

  • Better graphics/visuals

  • Advanced physics and handling

  • More cars and tracks

  • AI improvements

  • AI engineering

  • Cross-platform play

  • New game Modes

  • Other, post your idea


Results are only viewable after voting.
Back
Top