Jump to content

CPU Behavior


Recommended Posts

Hey All,

I recently started monitoring CPU performance "Just to See".   What I noticed is kind of weird for the unknowing and unaware.

 

This is my CPU:

Processor    Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz, 2904 Mhz, 8 Core(s), 16 Logical Processor(s)

 

These are two different screen shots I took with in a few seconds of each other.  I can't explain why VRAM changed by so much, this does not seem typical.  So, just take a look at CPU usage for now.

CPU 02 .gif

CPU 03 .gif

While playing DCS there seems to be only 3 processors (CPU's) that ever become significantly loaded.  These are the 13, 14 and 16 CPU's. 

CPU 16 is the most consistent and usually maintains around 30-45%, but can spike higher or lower.    CPU's 13 and 14 are like Peter and Paul.  When one goes up the other goes down and vice versa.  They swap usage on a very periodic basis.

The highest spikes by all the CPU's occur while the game is loading.

 

Another screen shot shows that CPU 15 is completely MIA.  Of course that make complete sense.  Not...

CPU 04 .gif

From what I do understand the Cores are hardware and the Logical Processors (CPU's) are software. 

I am only guessing that CPU 13 and 14 would be using the same core? 

What goes on with CPU 15 and 16?

 

This behavior only isolated to DCS or do many applications operate this way?

Caldera

 

Link to comment
Share on other sites

DCS is currently only loading two cores, sound on one, and "everything else".

Naturally most hardware is left waiting for the latter to do it's thing.

Windows' built in thread scheduler will switch the load around cores for a myriad of various reasons, temperature, speed and task priority etc.


A lot of software and games runs this way, but many games from the last decade or so has full utilisation for 8+ cores. 

ED is hard at work to implement multi-threading but this is a huge task and will take time.
In the mean time what you are seeing is perfectly normal.


Edited by Bob_Bushman

i7 8700k @ 4.7, 32GB 2900Mhz, 1080ti, CV1

Virpil MT-50\Delta, MFG Crosswind, Warthog Throttle, Virptil Mongoost-50 throttle.

Link to comment
Share on other sites

On 1/21/2022 at 6:16 PM, Caldera said:

Hey All,

I recently started monitoring CPU performance "Just to See".   What I noticed is kind of weird for the unknowing and unaware.

 

This is my CPU:

Processor    Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz, 2904 Mhz, 8 Core(s), 16 Logical Processor(s)

 

These are two different screen shots I took with in a few seconds of each other.  I can't explain why VRAM changed by so much, this does not seem typical.  So, just take a look at CPU usage for now.

CPU 02 .gif

CPU 03 .gif

While playing DCS there seems to be only 3 processors (CPU's) that ever become significantly loaded.  These are the 13, 14 and 16 CPU's. 

CPU 16 is the most consistent and usually maintains around 30-45%, but can spike higher or lower.    CPU's 13 and 14 are like Peter and Paul.  When one goes up the other goes down and vice versa.  They swap usage on a very periodic basis.

The highest spikes by all the CPU's occur while the game is loading.

 

Another screen shot shows that CPU 15 is completely MIA.  Of course that make complete sense.  Not...

CPU 04 .gif

From what I do understand the Cores are hardware and the Logical Processors (CPU's) are software. 

I am only guessing that CPU 13 and 14 would be using the same core? 

What goes on with CPU 15 and 16?

 

This behavior only isolated to DCS or do many applications operate this way?

Caldera

 

Your specs doesn't give the most useful informations:

64GB of RAM isn't what people need to know, the latency and nature of the chips (B.Die or not) is far more important for the simple reason that a standard RAM will always carry a bottleneck which causes the CPU to throtle down under load.

I emphasise under load because when working in average conditions a higher latency, non B.Die RAM will not show this issue, but your CPU controller has limits, number of ranks (4 maximum), frequency (3200 MHz, DDR4-2933 in the case of your I7-10700F), pass this and you lose your maximum frequency and buses speed under load.

Your CPU behavior is 100% depending on the nature of your RAM for those reasons, so the first thing I'd do if I were you is to check on those RAM specs, once you get this done, you will have a far better idea of what is going on with your CPU and buses.

 


Edited by Thinder

Win 11Pro. Corsair RM1000X PSU. ASUS TUF Gaming X570-PLUS [WI-FI], AMD Ryzen 7 5800X 3D, Sapphire Radeon RX 7900 XTX Nitro+ Vapor-X 24GB GDDR6. 32 GB G.SKILL TridentZ RGB Series (4 x 8GB) RAM Cl14 DDR4 3600. Thrustmaster HOTAS WARTHOG Thrustmaster. TWCS Throttle. PICO 4 256GB.

WARNING: Message from AMD: Windows Automatic Update may have replaced their driver by one of their own. Check your drivers.

M-2000C. Mirage F1. F/A-18C Hornet. F-15C. F-5E Tiger II. MiG-29 "Fulcrum".  Avatar: Escadron de Chasse 3/3 Ardennes. Fly like a Maineyak.

 

Link to comment
Share on other sites

Thinder,

Not sure I understood most of what you stated.  My apologies, I do not have the background.

I was not my intention to paint with such a fine brush that you might do.  I would use a much larger brush with big sweeping strokes.  I was my intention to illustrate a point of discussion from an altitude of 5000 AGL. 

Just, because I found it interesting.  With 8 cores, only 2 are used and the processors alternate usage  Where in the past I had read only one processor was used by DCS and it did not seem quite right to what I had observed myself.

Caldera

Link to comment
Share on other sites

It matters little if you don't comprehend the technical aspect, people still need this sort of infos because as I stated, the behaviour of your CPU and buses depends on your RAM, it would help us knowing precisely what is going on with your PC.

If you know the brand and type of RAM fitted to your machine, just show it in your stats, something like (for one stick) 32GB. DDR4-2933. Cl16. Crucial Ballistic

Here you have the size of one stick, the type/frequency, the latency and the brand, to us this will be enough fo figure much more than simply what it says by checking on the RAM specs.


Edited by Thinder

Win 11Pro. Corsair RM1000X PSU. ASUS TUF Gaming X570-PLUS [WI-FI], AMD Ryzen 7 5800X 3D, Sapphire Radeon RX 7900 XTX Nitro+ Vapor-X 24GB GDDR6. 32 GB G.SKILL TridentZ RGB Series (4 x 8GB) RAM Cl14 DDR4 3600. Thrustmaster HOTAS WARTHOG Thrustmaster. TWCS Throttle. PICO 4 256GB.

WARNING: Message from AMD: Windows Automatic Update may have replaced their driver by one of their own. Check your drivers.

M-2000C. Mirage F1. F/A-18C Hornet. F-15C. F-5E Tiger II. MiG-29 "Fulcrum".  Avatar: Escadron de Chasse 3/3 Ardennes. Fly like a Maineyak.

 

Link to comment
Share on other sites

17 hours ago, Caldera said:

Just, because I found it interesting.  With 8 cores, only 2 are used and the processors alternate usage  Where in the past I had read only one processor was used by DCS and it did not seem quite right to what I had observed myself.

This is quite normal. To put it simply, you CPU is performing multiple tasks (threads) every second and constantly switching between them. Even a task that is running all the time, like DCS main game loop is in fact loaded and unloaded from the CPU constantly. And when it returns, it may not land on the same core on which it was running before. 

With modern processors, this core juggling is also intentional. It allows to better distribute the heat across the cpu die and lets parts of the CPU to cool down. The cost of moving the thread to another core is lower, than suffering thermal throttling.

  • Like 1

Hardware: VPForce Rhino, FSSB R3 Ultra, Virpil T-50CM, Hotas Warthog, Winwing F15EX, Slaw Rudder, GVL224 Trio Throttle, Thrustmaster MFDs, Saitek Trim wheel, Trackir 5, Quest Pro

Link to comment
Share on other sites

5 hours ago, some1 said:

This is quite normal. To put it simply, you CPU is performing multiple tasks (threads) every second and constantly switching between them. Even a task that is running all the time, like DCS main game loop is in fact loaded and unloaded from the CPU constantly. And when it returns, it may not land on the same core on which it was running before. 

With modern processors, this core juggling is also intentional. It allows to better distribute the heat across the cpu die and lets parts of the CPU to cool down. The cost of moving the thread to another core is lower, than suffering thermal throttling.

That too. Everything reducing the efficiency of the CPU plays a role in DCS like any other aplication.

Players should make a choice from start; a gaming PC needs all background aps to be disabled in order to give priority to the gaming aspect of the PC use, then sort those bottlenecks so that the CPU doesn't throttle back, if good cooling and smart core juggling can reduce the risks of thermal throttling, RAM is the main cause of it.

I gained more than 6% at 4K simply swaping RAM from 16 Cl to 14Cl B.Die same frequency and capacity but this is just an example, bottlenecks can cause a lot more loss than 6%, especially because it is heavy on CPU and GPU use under load, this is where a well ballanced bounding between RAM, CPU and GPU can make a difference.


Edited by Thinder

Win 11Pro. Corsair RM1000X PSU. ASUS TUF Gaming X570-PLUS [WI-FI], AMD Ryzen 7 5800X 3D, Sapphire Radeon RX 7900 XTX Nitro+ Vapor-X 24GB GDDR6. 32 GB G.SKILL TridentZ RGB Series (4 x 8GB) RAM Cl14 DDR4 3600. Thrustmaster HOTAS WARTHOG Thrustmaster. TWCS Throttle. PICO 4 256GB.

WARNING: Message from AMD: Windows Automatic Update may have replaced their driver by one of their own. Check your drivers.

M-2000C. Mirage F1. F/A-18C Hornet. F-15C. F-5E Tiger II. MiG-29 "Fulcrum".  Avatar: Escadron de Chasse 3/3 Ardennes. Fly like a Maineyak.

 

Link to comment
Share on other sites

Thinder,

In my PC I have:

64GB (32GBx2)  DDR4 3200  CL16  Crucial Ballistic

Some1,

Thanks!

From above BB stated "DCS is currently only loading two cores, sound on one, and "everything else".  I am only wondering how true this is.  The sound should be a relatively low usage and should be almost constant.  For example, steady state flight would always be the same.  That is if I am correct.  This is not what I see.  I see both cores usage values change with the reaction to different missions configurations, maps and multiplayer etc...

I just have to wonder.

Caldera

Link to comment
Share on other sites

The behavior of my I10750 is very like yours. As seen here: CPU cores are mostly bored and the one that actually gets used, is not fully utilized => bottleneck is not CPU.

Note: I have Win 10 with hardware GPU Scheduling On. I suggest you post the Performance tab of your task manager.

image.png

Link to comment
Share on other sites

37 minutes ago, Caldera said:

From above BB stated "DCS is currently only loading two cores, sound on one, and "everything else".  I am only wondering how true this is.

The reality of software development is never that simple. DCS already has more than 100 threads created at the same time. But the real question is what is the path that takes the longest to execute and can it be further split into simultaneous jobs. Only ED knows the answer. 


Edited by some1

Hardware: VPForce Rhino, FSSB R3 Ultra, Virpil T-50CM, Hotas Warthog, Winwing F15EX, Slaw Rudder, GVL224 Trio Throttle, Thrustmaster MFDs, Saitek Trim wheel, Trackir 5, Quest Pro

Link to comment
Share on other sites

That really makes it somewhat impossible to give fast, precise & easy to digest answers for anything Taskmanager/CPU related.

Add in the scheduler dealing different architectures with different algorithm, HP- and HE-Cores, Boost Clocks and what not else... it is very complex.

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

@CalderaDCS has nothing to do with the scheduling, sure it can be more multi-threaded oriented. Normally this is controlled by OS. However have the option to set the processor affinity for the the thread, which in theory could lead to better performance, due to the fact that cache levels used by specific core (Level 1 and Level 2 in case of i7), would be better utilized, provided that cached pages do not get invalidated too often. In contrast, pinning the thread to a single core will cause it to heat more, which depending on usage of other cores may cause throttling, and thus performance penalty.

Since I did collect the metrics for a longer time, I noticed that the last core (12th in my screen shot 0,11) is the one where the majority work is done => likely ED did already pin the main thread there. Likely they assume that the last one will be least used by OS and other software.

Does anyone see the same behavior?

However if you have an up-to-date CPU likely it will be able to feed the GPU fast enough. The only people suffering from the single core usage would be those with slower CPU, and very fast GPU. In their case CPU would work very hard in order to feed the GPU. They would benefit from multi-core performance.

Link to comment
Share on other sites

CPU's nowadays have a table that lists the best core, lowest voltage for a given speed. The scheduler will always try to use that core.

Imho, trying to force a thread to a specific core might have worked on 8700k, 9900k etc.. but I fear with Ryzen's and 12thgen Intel we better leave ProcessLasso aside

for the said reasons, overheating, Caching, etc..  you gain 5% here and loose 20% over there as a result.

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

Oko,

On 1/25/2022 at 8:14 AM, okopanja said:

The behavior of my I10750 is very like yours. As seen here: CPU cores are mostly bored and the one that actually gets used, is not fully utilized => bottleneck is not CPU.

Note: I have Win 10 with hardware GPU Scheduling On. I suggest you post the Performance tab of your task manager.

CPU 06 .gif

This was taken using my FPS test mission.  Basically, an A-10C at tree top level with the TGP on.  It is near Senaki.  The FPS was rock steady.

I do seem to notice CPU bottle necking at times on my system especially near airports.  Creech is one such example and it is a CPU nightmare.  If I turn my cockpit view using TrackIR, moving from extreme side to side, I will always get a stutter right at the canopy frame.  I notice the FPS drop significantly for just a moment at that same instant.  I am almost positive that it is not the GPU as it would not be loaded over 75% when that occurs.  I see the CPU spiking to 95% or more until I get a ways from the air port.  Then everything just smooths out.

Caldera

 

 


Edited by Caldera
Link to comment
Share on other sites

3 hours ago, Caldera said:

Oko,

CPU 06 .gif

This was taken using my FPS test mission.  Basically, an A-10C at tree top level with the TGP on.  It is near Senaki.  The FPS was rock steady.

I do seem to notice CPU bottle necking at times on my system especially near airports.  Creech is one such example and it is a CPU nightmare.  If I turn my cockpit view using TrackIR, moving from extreme side to side, I will always get a stutter right at the canopy frame.  I notice the FPS drop significantly for just a moment at that same instant.  I am almost positive that it is not the GPU as it would not be loaded over 75% when that occurs.  I see the CPU spiking to 95% or more until I get a ways from the air port.  Then everything just smooths out.

Caldera

 

 

 

Your CPU should be faster than my mobile version. Yet, it looks like mine distributes the work across all cores with one being above average, while yours uses only 4 cores.

Can you check if yo have Hardware-accelerated GPU scheduling enabled?

(I will try to disable mine and see if it will still distribute the load)

image.png

1 hour ago, stormrider said:

Has anyone tried disabling Hyperthreading?

Why would I want to do this? (aside from maybe not benefiting from this on DCS)

Link to comment
Share on other sites

2 hours ago, okopanja said:

Your CPU should be faster than my mobile version. Yet, it looks like mine distributes the work across all cores with one being above average, while yours uses only 4 cores.

Can you check if yo have Hardware-accelerated GPU scheduling enabled?

(I will try to disable mine and see if it will still distribute the load)

image.png

Why would I want to do this? (aside from maybe not benefiting from this on DCS)

I work with IT and recently we tried different settings to improve the performance of a large scale HPC cluster. By turning HT off, it turns out, performance increased on specific applications.

Disable Hyper-Threading

Quote

Some MPI applications get better performance by disabling Hyper-Threading in the guest OS. Hyper-Threading—more generally known as simultaneous multi-threading (SMT)—allocates two virtual cores (vCPU) per physical core on the node. For many general computing tasks or tasks that require lots of I/O, Hyper-Threading can increase application throughput significantly. For compute-bound jobs in which both virtual cores are compute-bound, Hyper-Threading can hinder overall application performance and can add unpredictable variance to jobs. Turning off Hyper-Threading allows more predictable performance and can decrease job times.

https://cloud.google.com/architecture/best-practices-for-using-mpi-on-compute-engine


Edited by stormrider

Banned by cunts.

 

apache01.png

Link to comment
Share on other sites

10 minutes ago, stormrider said:

I work with IT and recently we tried different settings to improve the performance of a large scale HPC cluster. By turning HT off, it turns out, performance increased on specific applications.

Interesting.

How did you measure the performance?

Was it done over longer period of time?

Link to comment
Share on other sites

Just now, okopanja said:

Interesting.

How did you measure the performance?

Was it done over longer period of time?

We tried different algorithms and compared times. Jobs ranging from 5 minutes to several hours. The longer the job, the better the performance.

Banned by cunts.

 

apache01.png

Link to comment
Share on other sites

2 minutes ago, stormrider said:

We tried different algorithms and compared times. Jobs ranging from 5 minutes to several hours. The longer the job, the better the performance.

what kind of parallelism?

I am thinking about tacking DCS performance on process level. I might try what you suggested, but first I want to compare the GPU scheduling effect. (if it explains why my graphs defers from @Caldera

Link to comment
Share on other sites

1 hour ago, okopanja said:

what kind of parallelism?

I am thinking about tacking DCS performance on process level. I might try what you suggested, but first I want to compare the GPU scheduling effect. (if it explains why my graphs defers from @Caldera

SLURM+Ceph with Stata, OxMetrics, Matlab.

Banned by cunts.

 

apache01.png

Link to comment
Share on other sites

DCS does use more than 2 cores.  However, the task is split manually.  Nobody other than ED knows exactly how it's split but something like Core 1 on Avionics, Core 2 on AI etc.  So if the task that's assigned to Core 2 doesn't happen, it will look like that core is not doing anything.  This is not just DCS issue.  Assetto Corsa which people believe to be multithreaded does same thing.  Below is my cores during Assetto Corsa.  You can see that Core 6, 7, 9, and 11 are basically idle until a collision with an AI occurred which caused the small spike in the middle.

And two of the cores are my VR compositor so even Assetto Corsa is only using 3 cores majority of the time.

ASC_VR.jpg

It is a lot of work to distribute tasks efficiently this "traditional" way.  Also could cause bugs if not done correctly which is why many developers just cram critical tasks into one core.  And assign some non-critical task that can't cause any conflict on others.

This is why Vulkan is popular because it will handle the threading more efficiently and automatically through command pools.

Slide 1 (nvidia.com)


Edited by Taz1004
  • Like 4
Link to comment
Share on other sites

Oko

8 hours ago, Caldera said:

I could not notice any difference with Hardware-Acclerated GPU scheduling on.

One thing that I just did notice that has changed, it is that the stutter I was getting at Creech is gone. 

Taz,

5 hours ago, Taz1004 said:

DCS does use more than 2 cores. 

More than 2 cores or more than 2 logical processors? 

My system always seems to use only two cores / four processors.  With exception of a few ripples at load time, the rest are "bored".

Caldera


Edited by Caldera
Link to comment
Share on other sites

  • Recently Browsing   0 members

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