Jump to content

CPU Utilization... Again.


Recommended Posts

What is the deciding factor by DCS that determines which core of your CPU it wants to beat the crap out of and why?.. For me, by default, DCS always wants to use core 15 as the primary core.. However, i am not a fan of this, so i always switch affinity around to spread the load among the other cores.. At times,with the default affinity, the primary core can become extremely saturated... and it seems with each update, it gets more and more saturated.. So... why are we not spreading the load by default?.. to give each core plenty of headroom..

 

 

 

Bad Utilization

Default(BAD)Utilization2.thumb.JPG.967526874d71fed95560670198c20d0b.JPG

 

 

Good Utilization

goodUtilization2.thumb.JPG.3b083262b97aa1fbf2cfa9358ec3f6e9.JPG

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

Why is your GPU usage sooo low ?

 

 

It should be full-tilt 99% from A-Z

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Asus 1080ti EK-waterblock - 4x Samsung 980Pro 1TB - 1x Samsung 870 Evo 1TB - 1x SanDisc 120GB SSD - Heatkiller IV - MoRa3-360LT@9x120mm Noctua F12 - Corsair AXi-1200 - TiR5-Pro - Warthog Hotas - Saitek Combat Pedals - Asus PG278Q 27" QHD Gsync 144Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Link to comment
Share on other sites

DCS primarily uses two cores, one for the physics, one for the audio. It does this for many reasons which have been covered before about latency in physics calculations, etc. Can it be overhauled to use more? Yes. Would that be time consuming and difficult? Yes. Would it yield huge boost in performance? No. Maybe a little, but not much.

 

Source : ED saying they've considered making the switch but it's not worth the resources vs gain. They say they can get more bang for their buck through other avenues.

 

As for it using one core over another... it doesn't make any difference whether it uses #1 or #12, or whether it rapidly cycles through them, or variations of the same. The one getting hammered is the one the primary physics engine is running on.

Де вороги, знайдуться козаки їх перемогти.

5800x3d * 3090 * 64gb * Reverb G2

Link to comment
Share on other sites

Why is your GPU usage sooo low ?

 

 

It should be full-tilt 99% from A-Z

 

 

well... i prefer to only use what is needed.. my screen is 4k 60hz... so vsync limits the production of any unnecessary frames locking FPS at an absolute 60fps... not chasing frames that dont benefit me leaves all the headroom in the world for the GPU to handle whatever the game throws at it... Additionally, i am not using any MSAA at the moment... without it the game looks great in 4k with a few jaggies here and there and GPU averages around 63% load.. with MSAAx2 in 4k, there are almost no jaggies.. and GPU averages around 75-80%... but the reason i run it this way is because it leaves all the hardware headroom for the sim to run smoothly as it should... maxing out load on the gpu only means that it has no room to handle the next big instance of explosions, smoke, and damage models, ect.. that the sim wants to throw at it.. and when it does, the GPU is gonna stutter... so i basically try to mitigate that and run the system as efficiently as possible and never come close to 99% load...

 

 

 

 

Also..., very relevant, I am running Kegetys VR performance shaders mod.... even though im not using VR.... it is outstanding.. about 15% drop in GPU load with this mod... definitely check it out if you haven't already!!..

 

 

https://forums.eagle.ru/showthread.php?t=215373


Edited by DflippinK

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

DCS primarily uses two cores, one for the physics, one for the audio. It does this for many reasons which have been covered before about latency in physics calculations, etc. Can it be overhauled to use more? Yes. Would that be time consuming and difficult? Yes. Would it yield huge boost in performance? No. Maybe a little, but not much.

 

Source : ED saying they've considered making the switch but it's not worth the resources vs gain. They say they can get more bang for their buck through other avenues.

 

As for it using one core over another... it doesn't make any difference whether it uses #1 or #12, or whether it rapidly cycles through them, or variations of the same. The one getting hammered is the one the primary physics engine is running on.

 

 

yeah... i understand that... and, i know its been thoroughly covered... been through all the posts.... wouldn't really expect there to be a performance gain,... unless users who's primary cores are reaching their threshold now had 50% more headroom to avoid stutters and lags.. it is possible in its current form to make this happen via switching affinity around or using process lasso to force affinity in a particular manner... i have done both and seen the results... and it works great!!... actually quite pleasing seeing the load spread out and having more than enough headroom for whatever the game throws at any cores direction...

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

DCS primarily uses two cores, one for the physics, one for the audio. It does this for many reasons which have been covered before about latency in physics calculations, etc. Can it be overhauled to use more? Yes. Would that be time consuming and difficult? Yes. Would it yield huge boost in performance? No. Maybe a little, but not much.

 

Source : ED saying they've considered making the switch but it's not worth the resources vs gain. They say they can get more bang for their buck through other avenues.

 

As for it using one core over another... it doesn't make any difference whether it uses #1 or #12, or whether it rapidly cycles through them, or variations of the same. The one getting hammered is the one the primary physics engine is running on.

 

 

That is not correct. It was shown that one can see performance improvement

if the mission is not run on a single host but as client-server. Somebody close

to ED told that they are looking into it - trying to run the mission as client-server,

but on one host.

Link to comment
Share on other sites

That is not correct. It was shown that one can see performance improvement

if the mission is not run on a single host but as client-server. Somebody close

to ED told that they are looking into it - trying to run the mission as client-server,

but on one host.

sounds interesting Floyd... any link to the thread?

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

thanks for lookin that up Floyd.. that is some good info... and it would suggest that ED does not even need to rework the core engine as it could likely be scripted to assign current particular tasks to a certain core...

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

Dflippink, regarding your concerns about cpu usage, I think there is nothing wrong.

 

If you look the recommended hardware for DCS you'll see ED is pointing to i5 at 3+ ghz. That should means that i7's hyperthreading is not usefull.

 

In fact when you run your i7 with hyperthreading on, DCS is actually using mostly the last logical core.

But if you disable hyperthreading (basically turning i7 into i5...), than the load is nicely spreaded over all cores. Here my exemple of cpu/gpu monitoring of DCS VR PD2.0 and hyperthreading disabled :

[ATTACH]190773[/ATTACH]

 

To me, performance wise, there is no difference in VR, but there can be a difference if the last logical core's load become a limitating factor (if load is maximizing this log.core when HT is enabled). If it's the case than you can have better perf turning HT off.

You have Ryzen, it should be exactly the same thing but with other terms than hyperthreading...


Edited by toutenglisse
Link to comment
Share on other sites

As others have said, DCS only uses 2 cores. You can play with affinity in Windows or process lasso all you want, that will never change unless ED does a major code overhaul. How those 2 threads are assigned is the only thing we or Windows have control over. As for why it consistently gets dumped on the last cpu thread, that's just a fluke of how Windows assigns threads. It has nothing to do with DCS or even what cpu you have.

System specs: i5-10600k (4.9 GHz), RX 6950XT, 32GB DDR4 3200, NVMe SSD, Reverb G2, WinWing Super Libra/Taurus, CH Pro Pedals.

Link to comment
Share on other sites

As others have said, DCS only uses 2 cores. You can play with affinity in Windows or process lasso all you want, that will never change unless ED does a major code overhaul. How those 2 threads are assigned is the only thing we or Windows have control over. As for why it consistently gets dumped on the last cpu thread, that's just a fluke of how Windows assigns threads. It has nothing to do with DCS or even what cpu you have.

 

 

well.... i would tend to disagree with that based on various experimentation and results... I have had DCS fully saturating one primary core and barely saturating the second (commonly default affinity)... and i have had DCS primarily utilize 6 cores drastically dropping the saturation of what would be the primary core effectively distributing the load... the result... no flatline on any core in heavily populated missions as can sometimes happen when the system runs DCS in its default affinity.. basically, it just does work on more cores... extremely well... but you have to tell it to at this point.

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

All I can say is that whenever I check using say Afteburner, my CPU core usage appears to be well spread over the 4 available cores.

System: 9700, 64GB DDR4, 2070S, NVME2, Rift S, Jetseat, Thrustmaster F18 grip, VPC T50 stick base and throttle, CH Throttle, MFG crosswinds, custom button box, Logitech G502 and Marble mouse.

Server: i5 2500@3.9Ghz, 1080, 24GB DDR3, SSD.

Link to comment
Share on other sites

Dflippink, regarding your concerns about cpu usage, I think there is nothing wrong.

 

If you look the recommended hardware for DCS you'll see ED is pointing to i5 at 3+ ghz. That should means that i7's hyperthreading is not usefull.

 

In fact when you run your i7 with hyperthreading on, DCS is actually using mostly the last logical core.

But if you disable hyperthreading (basically turning i7 into i5...), than the load is nicely spreaded over all cores. Here my exemple of cpu/gpu monitoring of DCS VR PD2.0 and hyperthreading disabled :

[ATTACH]190773[/ATTACH]

 

To me, performance wise, there is no difference in VR, but there can be a difference if the last logical core's load become a limitating factor (if load is maximizing this log.core when HT is enabled). If it's the case than you can have better perf turning HT off.

You have Ryzen, it should be exactly the same thing but with other terms than hyperthreading...

 

 

totally agree... im not posting this as a question really.. just to bring attention to things that are likely inhibiting peoples performance in hope that we can get some better results and smoother flights.. personally, i have no problems running the sim... except i like it when it more effectively utilizes the hardware that i have... which it does!!!... just have to tell it to... but for those who are running into massive lags when their primary core gets oversaturated or flatlined, the consideration of default affinity and core utilization might want a little tweaking..:thumbup:

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

All I can say is that whenever I check using say Afteburner, my CPU core usage appears to be well spread over the 4 available cores.

 

 

nice!!

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

Mr_sukebe is mistaken though. What he's seeing is thread hopping. With some settings, the 100% usage thread will rapidly hop cpu threads. This gives the illusion of higher overall cpu usage. Next time you see that, take a look at overall cpu usage. What you'll see is total cpu usage equal to that of between 1 and 2 fully utilized cpu threads even though adding up individual cpu threads would suggest double or triple that.

System specs: i5-10600k (4.9 GHz), RX 6950XT, 32GB DDR4 3200, NVMe SSD, Reverb G2, WinWing Super Libra/Taurus, CH Pro Pedals.

Link to comment
Share on other sites

Mr_sukebe is mistaken though. What he's seeing is thread hopping. With some settings, the 100% usage thread will rapidly hop cpu threads. This gives the illusion of higher overall cpu usage. Next time you see that, take a look at overall cpu usage. What you'll see is total cpu usage equal to that of between 1 and 2 fully utilized cpu threads even though adding up individual cpu threads would suggest double or triple that.

 

 

ok.. but what gets mitigated is primary core saturation... you want to not oversaturate the primary core... and this effectively achieves that.

Ryzen R7 1800x|EVGA FTW3 1080Ti|32gb Corsair Dominator Platinum@2666mhz|Samsung 750 EVO|LG 4k 50" Main Display|ASUS PB278Q Reference Display|

Link to comment
Share on other sites

Mr_sukebe is mistaken though. What he's seeing is thread hopping. With some settings, the 100% usage thread will rapidly hop cpu threads. This gives the illusion of higher overall cpu usage. Next time you see that, take a look at overall cpu usage. What you'll see is total cpu usage equal to that of between 1 and 2 fully utilized cpu threads even though adding up individual cpu threads would suggest double or triple that.

 

I’ll buy that as a viable explanation.

In game, my CPU usage is regularly around 60-65%, or a total of around 250% of a single core. So if DCS is using 200% (2 full cores), the rest is being taken up by oculus, afterburner etc.

That also explains why:

- my CPU and GPU are not being used flat out

- people using 8 core Ryzens are seeing circa 15% per core use

System: 9700, 64GB DDR4, 2070S, NVME2, Rift S, Jetseat, Thrustmaster F18 grip, VPC T50 stick base and throttle, CH Throttle, MFG crosswinds, custom button box, Logitech G502 and Marble mouse.

Server: i5 2500@3.9Ghz, 1080, 24GB DDR3, SSD.

Link to comment
Share on other sites

BeastyBaiter, here is a cpu monitoring screenshot of DCS 2.5 (first OB version) using my 1080p screen :

 

[ATTACH]190797[/ATTACH]

 

Hyperthreading is disabled, and you can see the 4 cores mainly maxed out (all cores at 100% during sometimes more than 40 seconds).

so DCS is not just 1 and a half cores-equivalent threads jumping around accross cores.

 

(This monitoring was with no fps-capp, maxed-out settings, and 40 ground units in CAS mission in caucasus, gpu was also mainly maxed-out and fps around 100 - It's specific case/setting where nothing is bottlenecking and all gpu and cpu ressources are used, Idon't use that I use VR where cpu usage is low because gpu is the sys.limit, but it shows usage can be an overall max usage).

Link to comment
Share on other sites

It's very simple, more cores = better, more MHz = better.

 

 

With PL I can see 6 of my cores at hard work in many situations.

 

 

W/o PL it looks a bit different in TM, still most/all cores are taxed just to a lesser extend.

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Asus 1080ti EK-waterblock - 4x Samsung 980Pro 1TB - 1x Samsung 870 Evo 1TB - 1x SanDisc 120GB SSD - Heatkiller IV - MoRa3-360LT@9x120mm Noctua F12 - Corsair AXi-1200 - TiR5-Pro - Warthog Hotas - Saitek Combat Pedals - Asus PG278Q 27" QHD Gsync 144Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Link to comment
Share on other sites

BeastyBaiter, here is a cpu monitoring screenshot of DCS 2.5 (first OB version) using my 1080p screen :

 

[ATTACH]190797[/ATTACH]

 

Hyperthreading is disabled, and you can see the 4 cores mainly maxed out (all cores at 100% during sometimes more than 40 seconds).

so DCS is not just 1 and a half cores-equivalent threads jumping around accross cores.

 

(This monitoring was with no fps-capp, maxed-out settings, and 40 ground units in CAS mission in caucasus, gpu was also mainly maxed-out and fps around 100 - It's specific case/setting where nothing is bottlenecking and all gpu and cpu ressources are used, Idon't use that I use VR where cpu usage is low because gpu is the sys.limit, but it shows usage can be an overall max usage).

 

That's a picture showing the thread hopping I was talking about. Open up task manager, ignore individual core usage and watch the overall CPU utilization. I don't expect DCS to take proper advantage of more than 2 cores until the switch to Vulkan is made. The biggest cpu killer is the graphics engine and DX11 doesn't really do multi-threading. There are some ways to mitigate that limitation but it tends to require a lot of work for only modest improvements.

System specs: i5-10600k (4.9 GHz), RX 6950XT, 32GB DDR4 3200, NVMe SSD, Reverb G2, WinWing Super Libra/Taurus, CH Pro Pedals.

Link to comment
Share on other sites

I think there's a number of misleading terms being thrown about.

 

 

DCS as an application doesn't utilize two "cores" per se, but rather two execution threads. As to how many cores are assigned to to run those two threads, that is a function of the operating system.

 

 

The OS scheduler is responsible for ensuring those two threads can run as quickly as possible, and that can result in the thread hopping cores constantly, as someone in this discussion pointed out. Remember that not every execution cycle is necessarly devoted to performing a function that results in updates to the state of the simulation. It takes clock cycles to clear registers, load data into cache, load instructions, etc. If a given operation, which may consist of 10-30 steps (this is a sample figure pulled out of the air), and the core is "cleaning up", then the OS can send an operation to another core provided requirements are met. But it doesn't mean there's an implicit parallelism where there wasn't one.

 

 

When we talk about making DCS multi-threaded, we the players are usually referring to the core physics engine, and from my admittedly outside perspective, I can see where that would be an enormously difficult lift with little potential payout. So much of the simulation is dependent operations occurring in order that I'd be skeptical as to how much of the work can be made parallel. Trying to merge parallel threads to reassemble order would likely impart so much latency, both in pauses needed and for the additional overhead needed for the orchestrater to reassemble the stream that whatever performance gains there were would likely be erased. It becomes an issue of diminishing gains, and I've seen this with other applications. This is one area of computing where raw, single-threaded performance wins out.

 

 

 

For aspects like sound, some graphics, and clients, where there aren't such time-bound dependencies, splitting these functions off can be easier, and that's exactly what I imagine DCS is doing when they've said they're removing graphics from the upcoming dedicated server. It removes a big source of CPU usage at minimal labor cost.

 

 

If you want to see another case of a similar issue in gaming, consider digging through EVE Online's old DevBlogs...they've been battling a similar issue for years, stripping as much as possible from the simulation thread so it gets as much CPU time as possible.

 

 

A challenge, to be sure.

Kozality

Vargar 1-2

107th JAS

http://throughtheinferno.com/

Link to comment
Share on other sites

That's a picture showing the thread hopping I was talking about. Open up task manager, ignore individual core usage and watch the overall CPU utilization. I don't expect DCS to take proper advantage of more than 2 cores until the switch to Vulkan is made. The biggest cpu killer is the graphics engine and DX11 doesn't really do multi-threading. There are some ways to mitigate that limitation but it tends to require a lot of work for only modest improvements.

 

Man, I don't know if you don't understand me, or if I don't understand you, or both ? .... But when I have all my 4 cores at 100% usage in DCS during 40 seconds, the cpu overall usage in TM or afterburner is also 100% during the same time.

I can't believe it could be different for you.

 

Of course this DCS monitoring was with settings that stress more the cpu (weather, Batumi city, lots of units, etc...) and less the gpu (1080p "low res" for a 1080Ti) so DCS can have a good balance between cpu and gpu.

And fps weren't limited so 100% usage achievable. But, with max effectiveness or not, DCS was fully using my cpu. (and gpu)

 

Kosality, I do agree with you for the parts that I can understand :)

Link to comment
Share on other sites

....But DCS is evolving... and that 100% usage was right with DCS 2.5 OB first release, but not now in 2.5.2. (at least on my version with Kegetys' mod)

 

I 've just made a similar test with balanced settings and 1080p screen with no cap, and DCS shows a "low usage" behavior, like in 1.5 and early 2.0.

Both cpu and gpu show low usage while fps are not capped (and fluctuating, but not maximizing gpu or cpu cores).

 

So in a sense you were right BeastyBaiter : actually with DCS I can't push cpu beyond around 40% usage (about 2 cores :) ).

But I think it's a momentary problem because it already happened before, and DCS 2.5.0 was OK

 

[ATTACH]190845[/ATTACH]

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...