Jump to content
Sign in to follow this  
SledDriver

P3D multicore usage anomoly

Recommended Posts

43 minutes ago, Sethos1988 said:

Have you tried simply setting up a custom resolution, where you choose 30Hz instead of 60?

How would I do that?


Bert

Share this post


Link to post
26 minutes ago, SteveW said:

So we see the famous 100% core with unlimited no VSync, and we see it limited in VSync to something less than 100% if we chose reasonable settings.

Emphasis mine... because those last few words are critical.  If a simmer wishes to truly lighten the load on the system then the best method is to use "reasonable settings" with P3Dv4 (or any app, really! :biggrin: ).

Greg

Share this post


Link to post
2 minutes ago, Bert Pieke said:

How would I do that?

Looking through your profile and saw you mention the Nvidia Control Panel, so I'll assume you have access to that.

In the control panel, under "Change Resolution", underneath the list of resolutions, you have "Customise...". Click that and then "Create Custom Resolution". Then at the top, you can simply change the resolution to 30Hz from 60 and click "Test". If the screen goes black, it means the resolution is not supported, it happens. Just press Escape or wait until the picture appears again. You can try other refresh rates like 29, 31 etc.

eaqtx40.jpg

It's not guaranteed to work but it's worth a shot. Then you will obviously have to change between 60Hz and 30Hz each time you decide to fly.


Asus TUF X670E-PLUS | 7800X3D | G.Skill 32GB DDR @ CL30 6000MHz | RTX 4090 Founders Edition (Undervolted) | WD SNX 850X 2TB + 4TB + 4TB

Share this post


Link to post
11 hours ago, itsjase said:

I've also made a super simple .bat file which does the core disabling/reenabling automatically if people are interested.

Yes please.

Share this post


Link to post
3 hours ago, Bert Pieke said:

If I had a 30 Hz monitor, I would try it, but mine only runs at 60 Hz..

Me too. Tried this last night with a custom nVidia Control Panel refresh setting, but the monitor didn't want to know

Share this post


Link to post
41 minutes ago, SledDriver said:

Me too. Tried this last night with a custom nVidia Control Panel refresh setting, but the monitor didn't want to know

Same here..


Bert

Share this post


Link to post
6 hours ago, SteveW said:

So we see the famous 100% core with unlimited no VSync, and we see it limited in VSync to something less than 100% if we chose reasonable settings.

@SteveW can you clarify...

From the above statement, if we are seeing the '100% core' actually running at 100% as is so typical with FSX and P3D, are you suggesting that this indicates the system is already technically overloaded, and that we should back off the settings until we see that major core running at less that 100%, in order to guarantee good performance in the sim?

Also, can you clarify, just because that core shows up as 100% in TaskMan, does it necessarily indicate that the core is fully loaded - I often see that core running at 100% in the sim, but the core temperature indicates the core is nowhere near full load when compared with other softwares I run.

Lastly, Surely it must be time to recode some of the fundamental code of the sim to allow it to run properly across multi core systems? I find it hard to believe that in this day and age it is still the correct method to be hammering one core while all the reset are having it easy. Can we expect to see significant improvements in the area? We are all spending mucho hard-earned to facilitate running our wonderful sims, and to see the CPU not able to maximise its potential seems like such a waste. Please tell me this is all legacy dross from FSX days and will be dealt with in due time?

  • Like 2

Share this post


Link to post
6 hours ago, Bert Pieke said:

How would I do that?

I tried this and for me, my monitor would not sync other than 60Hz at HD resolution.

Share this post


Link to post
9 minutes ago, SledDriver said:

....if we are seeing the '100% core' actually running at 100% as is so typical with FSX and P3D, are you suggesting that this indicates the system is already technically overloaded, and that we should back off the settings until we see that major core running at less that 100%, in order to guarantee good performance in the sim?

I'm not SteveW but I'll answer anyway:  YES!   Either CPU and/or GPU.  When I said I have liquid smooth perfect video until the CPU starts getting close to 100% utilization this is what I'm referring to.  I don't believe 100% CPU utilization and perfectly smooth video, completely free from subtle micro stutters.  And as you must know when the GPU gets close to 100% utilization you'll suffer hits on the CPU as well and ultra smooth performance starts deteriorating.   If I suddenly loss perfect smoothness I'll look at the GPU initially then the CPU, though what the GPU offers in sliders for eye candy is fairly modest for the performance hit.

  • Like 1

Noel

System:  7800x3D, Thermal Grizzly Kryonaut, Noctua NH-U12A, MSI Pro 650-P WiFi, G.SKILL Ripjaws S5 Series 32GB (2 x 16GB) 288-Pin PC RAM DDR5 6000, WD NVMe 2Tb x 1, Sabrent NVMe 2Tb x 1, RTX 4090 FE, Corsair RM1000W PSU, Win11 Home, LG Ultra Curved Gsync Ultimate 3440x1440, Phanteks Enthoo Pro Case, TCA Boeing Edition Yoke & TQ, Cessna Trim Wheel, RTSS Framerate Limiter w/ Edge Sync for near zero Frame Time Variance achieving ultra-fluid animation at lower frame rates.

Aircraft used in A Pilot's Life V2:  PMDG 738, Aerosoft CRJ700, FBW A320nx, WT 787X

 

Share this post


Link to post
3 hours ago, Noel said:

I'm not SteveW but I'll answer anyway:  YES!   Either CPU and/or GPU.  When I said I have liquid smooth perfect video until the CPU starts getting close to 100% utilization this is what I'm referring to.  I don't believe 100% CPU utilization and perfectly smooth video, completely free from subtle micro stutters.  And as you must know when the GPU gets close to 100% utilization you'll suffer hits on the CPU as well and ultra smooth performance starts deteriorating.   If I suddenly loss perfect smoothness I'll look at the GPU initially then the CPU, though what the GPU offers in sliders for eye candy is fairly modest for the performance hit.

I'm rapidly becoming very confused.

Thought I would test out all the advice and theories above for myself tn the never-ending search for smooth nirvana. So I started by trying to reduce the load on the GPU and CPU so they never go to 100%.

Unloading the GPU was easy - just turn down many of he graphics settings - in fact at this moment I have everything on the Options/Traffic/Display/World/Lighting/Weather pages turned off or minimum, yes them all, except for Display rez which I've kept at 1920x1200x32 and with Vsync On, unlimited fps.

I have RTSS holding the frame rate at 60 to match my monitor rez.

So now my GPU is only working at 12% load.

However, the dumb CPU is still registering 100% utilisation on core1 (affinity mask puts P3D on this core).

I simply don't get it. I have NO scenery loaded, no autogen, lowest quality ground textures/mesh etc etc, a low tech Piper Cub with 5 dials on the dash, and I'm not moving, and core1 is STILL locked at 100% load.

Someone needs to explain to me how this is good code.

At first I thought it was my fancy VertX DA-62 loading the CPU, but no change with the Piper Cub. I take off and fly a circuit in the piper cub over this barren low rez texture terrain with no buildings/autogen/traffic etc etc and only a simple slab for a runway, and still the CPU is at 100% on the P3D core.

Am I doing something wrong here? Please tell me how to stop my CPU core being at 100% in even the simplest possible scenario.

Oh and all background weather apps, RTSS etc are all locked to Core0. P3D on Core1. HT off for now.

And turning Vsync off/on in sim makes no diff to the Core utilisation.

Nor does running at 30fps instead of 60.

What's also very strange is that Core1 which is apparently at 100% utilisation is only registering 51degC, and the other 5 cores which are doing virtually nothing are at 40degC. When I really make this machine work hard the core temps go to more like 70degC.

So this 100% load on core1 seems to be quite phoney. I just find it hard to believe that core is actually working at 100% capacity.

(All CPU/GPU loads measured by both HWinfo64 and Task Manager)

...later... Nothing would convince my CPU core1 to drop from 100% utilisation. In this situation, my overall CPU utilisation was reported as 23%[HWinfo64] 38%[TaskMan].

Then I did my P3D core disable/re-enable tweak amd find that my overall CPU utilisation was reported as 7%[HWinfo64] 18%[TaskMan].

So that's an apparent drop of over 3x overall CPU utilisation [HWinfo64] or over 2x [TaskMan].

Can we really just ignore these facts? What was the extra CPU utilisation doing exactly when P3D.exe was running on one core?

If anything, and with the oft repeated information that P3D.exe is designed to run on one core, surely the utilisation ought to go UP when spreading it across cores due to the losses and inefficiencies of bouncing threads between cores. But in this test, the utilisation has gone DOWN not up, and finally I don't have my P3D.exe hogging one core at 100% apparently quite unnecessarily.

I'd be interested to hear what others have to say about this. All I know is that radical deconfiguration of my sim settings this evening to a very basic level failed to give me a P3D.exe core running at anything other than 100%. After my apparently frowned upon core tweak, I now have a PC with overall use at 7% spread over all allowed cores.

How can this be worse? I really expected to find that I could reduce the load on Core(P3d.exe) this evening and get even smoother performance. but four hours of tweaking and trying failed to deliver that, until I did my dodgy tweak.

So what is going on?

Edited by SledDriver
  • Like 2

Share this post


Link to post
3 hours ago, SledDriver said:

How can this be worse? I really expected to find that I could reduce the load on Core(P3d.exe) this evening and get even smoother performance. but four hours of tweaking and trying failed to deliver that, until I did my dodgy tweak.

So what is going on?

Weird as can be!  You can't turn down demand on the main core?  That is something I've never had happen.  

Edited by Noel

Noel

System:  7800x3D, Thermal Grizzly Kryonaut, Noctua NH-U12A, MSI Pro 650-P WiFi, G.SKILL Ripjaws S5 Series 32GB (2 x 16GB) 288-Pin PC RAM DDR5 6000, WD NVMe 2Tb x 1, Sabrent NVMe 2Tb x 1, RTX 4090 FE, Corsair RM1000W PSU, Win11 Home, LG Ultra Curved Gsync Ultimate 3440x1440, Phanteks Enthoo Pro Case, TCA Boeing Edition Yoke & TQ, Cessna Trim Wheel, RTSS Framerate Limiter w/ Edge Sync for near zero Frame Time Variance achieving ultra-fluid animation at lower frame rates.

Aircraft used in A Pilot's Life V2:  PMDG 738, Aerosoft CRJ700, FBW A320nx, WT 787X

 

Share this post


Link to post
57 minutes ago, Noel said:

Weird as can be!  You can't turn down demand on the main core?  That is something I've never had happen.  

I've heard the high usage of one core described as being the main controller core.

And for myself killing core zero and then re-enstating it does nothing other than push the main core thread onto a different core where it still happily uses as much of the Core's CPU % as it needs.

What I do is use Process Lassoo, being the nice handy tool it is you can push literally everything off core zero apart from P3D. That way there is no contention of core zero and P3D has it practically all to itself.

Usually I go a bit further and push everything to Cores 4~7 so that P3D can use 0~3 for it's own use and run P3D with a priority of Above Normal.

But then again I also overclock and like trying out little tweeks and such in an effort to gain smoothness without overloading the GPU/CPU.

The biggest difference was to go to a monitor with a 30 Hz capability because then I could VSync and achive a very smooth 30 fps, that was before I found out about RTSS though and I might have stuck with my old 60 Hz monitor had I known about RTSS and its capablity to perform a 1/2 vsync rate (e.g. (60 Hz / 2) = 30 fps or (30 hz / 2) = 15 fps).

In actuality although it's difficult to achive a high enough frame rate to vsync in P3D once a few addins have been installed but I do have games that are much harder on both GPU and CPU, e.g. Crysis 1, same deal great fps while stock, but the time immersion, Ai and HD packs are installed the max frame rate is ~24 fps, and SkyRim Special Edition, I have around 150 odd mods installed all of which chew on the CPU/GPU, however both of these are still highly playable and feel much smoother than P3D does anyway probably because P3D has a hard time maintaining a steady framerate.

Just waiting on those Ryzen 3 3850X with 32 threads @ 5.1 GHz to come out then I'll begin planning a new build, hopefully NVidia prices will have come down by then as well.

Cheers

 

 

 

 


Ryzen 5800X clocked to 4.7 Ghz (SMT off), 32 GB ram, Samsung 1 x 1 TB NVMe 970, 2 x 1 TB SSD 850 Pro raided, Asus Tuf 3080Ti

P3D 4.5.14, Orbx Global, Vector and more, lotsa planes too.

Catch my vids on Oz Sim Pilot, catch my screen pics @ Screenshots and Prepar3D

Share this post


Link to post

So from what I've read, the P3D core usage being at 100% is intended as it is being used for look-ahead frames, that is calculating future frames ahead of time. And it seems that disabling and re-enabling the core somehow disables this look-ahead feature.

And I think while this feature might be useful in some scenarios, it can introduce some stutters in some specific cases.

Either way all you need to do is to make a new .bat file and paste the following code inside it based on how many cores your cpu has:

4 Cores:

PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=14"
PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=15"

 6 Cores:

PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=62"
PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=63"

8 Cores:

PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=254"
PowerShell "$Process = Get-Process Prepar3D; $Process.ProcessorAffinity=255"

 

Run this file as administrator after your P3D is up and running and you should see your CPU usage drop instantly.

If the 6 or 8 core ones don't work let me know as I don't have a 6 core or 8 core cpu to test them with.

Share this post


Link to post

P3D v3.4 must be a lot different than P3D v4.x for this issue, this 100% main core use no matter what the load.  I'm sorry I didn't realize we were talking about two different sims, so maybe that's the reason for the different behavior of the main thread vis a vis CPU utilization.   In 3.4 w/ unlimited/vsync/30Hz I lose perfect fluidity when the main thread starts hitting 100%, all very predicable and easy to deal with.  Perhaps using the Sled trick + HT on + unlimited/vsync/30Hz could solve the issue for perfect fluidity since the main thread never gets to 100%, or doesn't often get there.    

Sled:  go to your local BB and pick up a 30Hz screen and try this out.  You may have exactly what you'd hoped for!  You can always return it in 15D or something if it doesn't behave as hoped.

Someone w/ a 30Hz screen w/ P3D 4.x try this please!

 

 


Noel

System:  7800x3D, Thermal Grizzly Kryonaut, Noctua NH-U12A, MSI Pro 650-P WiFi, G.SKILL Ripjaws S5 Series 32GB (2 x 16GB) 288-Pin PC RAM DDR5 6000, WD NVMe 2Tb x 1, Sabrent NVMe 2Tb x 1, RTX 4090 FE, Corsair RM1000W PSU, Win11 Home, LG Ultra Curved Gsync Ultimate 3440x1440, Phanteks Enthoo Pro Case, TCA Boeing Edition Yoke & TQ, Cessna Trim Wheel, RTSS Framerate Limiter w/ Edge Sync for near zero Frame Time Variance achieving ultra-fluid animation at lower frame rates.

Aircraft used in A Pilot's Life V2:  PMDG 738, Aerosoft CRJ700, FBW A320nx, WT 787X

 

Share this post


Link to post

I think there is some confusion regarding RTSS.

Basically when using RTSS we often see 100% even when the core is not in full use no matter what you do.

But if you start the sim first then start RTSS sometimes you might get less than 100% showing even though you changed nothing

I looked programmatically at the performance counters in the system running RTSS and P3D. Depending on startup behaviour this setup seems to do different things. It appears to be a wait state doing nothing when there is reserves of throughput. It does nothing.

Set up with VSync=On+Unlimited, then afterwards, apply RTSS after you got all set up with an overhead that can handle the complex peaks in the sim flow.

When we have overhead the CPU and GPU have room, available power, to soak up the fluctuations requiring extra throughput. If there's no more power in hand then when that peak of complexity hits, the sim slows to meet it. Variation in the flow of the sim shows up as micro stutter or long frames. Inability to keep up on the whole gives stutter.

 


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...