Jump to content
Sign in to follow this  
jmig

FPS and CPU/GPU loading in PD3 V4.1

Recommended Posts

1 hour ago, AdvancedFollower said:

Personally I've stopped messing with AM, HT etc. and just let Prepar3D and Windows manage everything. I get the best performance that way.

In fact, I'm not even sure AM works the same in P3D 4.1. It seems even with AffinityMask=65533 (1111111111111101) I was seeing significant usage on the second logical core, even though it should have been blocked off. Doesn't impact performance though, always getting 20 - 30 FPS at a minimum even in built up areas using my "eye candy" settings.

Believe it or not, but Windows, being an Operating System and all, actually includes a task scheduler that dynamically allocates tasks to logical and physical CPU cores based on the workload. By limiting which threads can live on which logical cores, you're just giving Windows less to work with.

 

In reality the sim works perfectly within the AM we give it.

AMs don't block off cores or LPs to the system they dictate what the joscheduler can use for a specific app - as in P3D v4 (jobscheduler - that's the task manager process allocating tasks to logical processors you mentioned, we're talking about that all the time so we're up to speed there).

There's no Physical and Logic processors - only logical processors. With HT enabled we have two logical processors per core, with HT disabled we have only one LP per core. All those LPs are on the Physical Processor.

Using an affinity mask 65533 leaves one LP which you would need to study to be sure it's not filled with the sim process. However those other LPs left out of the AM and those LPs we kept in the AM will be running all the system processes. The P3D AM only excludes LPs to P3D main processes the resources it uses span across the CPU.

 

 

 


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

The reason we use AMs is to restrict the number of LPs we allow our programs to use so we in fact partition work across the CPU for better performance, we might use four for the sim and two for the addon exe apps. If we allow too many LPs for certain apps they use up memory bandwidth unnecessarily. After a certain number of LPs are allocated to P3D we get no more performance allocating more LPs after that, maybe worse.

  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post

By using AMs correctly we are talking about tying the system down to a rigid set-up that works reliably and at peak efficiency. Like we would our aircraft.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

Generally we don't need AMs as we got the task manager as our auto-pilot. Like with any auto-pilot we can leave all the stuff to happen by itself. But like with the AP sometimes we need to override it to be sure the exact correct thing happens. We do that with the AM for some apps that necessarily include a facility for it because it's going to need help with certain situations.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
On 16/01/2018 at 11:39 AM, Dirk98 said:

Please share your findings, it's really interesting. We may even find reasonable optimal/max number of LPs to give to Prepar3D.exe after which the efficiency achieved by distributing it across the cores/lps may start to drop in very general terms though.

Thanks.

PS: I'm currently on 6700K yet, my I9 7900K is still waiting for other PC components, I would try myself otherwise.

Hi Dirk,

Recently I revisited this subject. Funny that, all it takes is for P3D to throw a wobbly, like a pause here and there, and suddenly the urge to start testing again becomes irresistible..lol!

For some time now I have been happily running with an Affinity Mask of 21845 which effectively 'restricts' P3D to 8 LPs on my i7-5960X. This leaves 8 LPs for all the other stuff running concurrently.

Not wishing to disable Hyperthreading, as it seems perfectly fine with everything else, I played around by commenting out the AM (all 16 LPs available) entry added to Prepar3D.cfg and also while using different values of the AM to test the effect of allocating different numbers of LPs to P3D:

7 = 5461, 6 = 1365, 5 = 341 and 4 = 85

In the end, all this confirmed was that I was getting the best overall fluid performance with only occasional micro-stuttering while using 8 LPs:

8 = 21845

So, 8 LPs is confirmed as being the sweet spot while using an i-7 5960X in my rig (see sig.)

I don't use VSync or Triple buffering. Pegging at 30fps in-sim seems to produce best results for most flights (dawn, day, dusk or night) and Unlimited in more taxing areas like busy hubs.

Regards,

Mike

  • Upvote 2

Share this post


Link to post
1 hour ago, Cruachan said:

Pegging at 30fps in-sim seems to produce best results for most flights (dawn, day, dusk or night) and Unlimited in more taxing areas like busy hubs.

I have come to the same conclusion.. why this would be, I do not know  :huh:

  • Upvote 1

Bert

Share this post


Link to post
On 16.01.2018 at 8:09 PM, GSalden said:

Just finished my flight from Amsterdam Schiphol to Milan Linate. Heavy weather. Just after take of and after the last turn to approach I swa a short stutter.  

Today was with HT on and the addons spread over LP cores : 3+5 , 7+9 , 3+7 and  5+9.

 

Within 3 days I will fly the same flight again with AS set to historical weather of today 16:00 local time, so I will have the same conditions.  Then with HT off.

 

 

What was the AM that you used?

Share this post


Link to post
2 hours ago, Cruachan said:

In the end, all this confirmed was that I was getting the best overall fluid performance with only occasional micro-stuttering while using 8 LPs:

8 = 21845

So, 8 LPs is confirmed as being the sweet spot while using an i-7 5960X in my rig (see sig.)

I don't use VSync or Triple buffering. Pegging at 30fps in-sim seems to produce best results for most flights (dawn, day, dusk or night) and Unlimited in more taxing areas like busy hubs.

Regards,

Mike

Did you try 10LPs, 12LPs etc?

Edited by Dirk98

Share this post


Link to post
2 hours ago, Cruachan said:

So, 8 LPs is confirmed as being the sweet spot while using an i-7 5960X in my rig (see sig.)

Why using HT at all then on a 8-core CPU?? 

You may see a slight performance increase and better temps by turning HT off. Why don't you try it?

Thanks!

Share this post


Link to post
5 minutes ago, Dirk98 said:

Did you try 10LPs, 12LPs etc?

Fact is, even with Mike "only" using 8 LPs he is using 8 cores.

P3D spawns a monolithic job on each LP assigned and so we should think carefully about making it share those cores with other jobs.

The gain from HT enabled is that since inevitably there will be many threads per LP, that switching time between them is considerably reduced with HT enabled. But in a system running P3D it's going to be a more "relaxed" system we need (hour after hour of flying all day and night)  so we set up the overclock in the heat curve where there is overhead for the extra heat of the extra work done by the HT. We can turn off HT and reduce the temps then increase the overclock to gain more frequency. So it's a swings and roundabouts situation - more scenery and objects needs more concurrency and HT, whereas less objects and so on we can get more fps with HT off.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

...so simply throwing more LPs at it might not work out. Adding more LPs can work with background tasks of the sim but the extra jobs divides the memory performance down. Again we need to rationalise it especially on many-cored machines.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
2 minutes ago, Dirk98 said:

Did you try 10LPs, 12LPs etc?

Hi Dirk,

I have tried with 16 LPs, i.e. with no Affinity Mask and the results were unacceptable - too much stuttering. There really is no incentive for me to try for >8 LPs. I suspect there comes a point where there are just too many threads thrashing around with resulting diminution of fluidity. What I see now is pretty good in most situations so why rock the boat needlessly?

Also, lets not forget that all those sliders and check boxes allow us to tune performance to our liking. The creation of specific profiles that can be employed in more demanding situations, where frame rates take a hit, can prove to be invaluable.

Regards,

Mike

Share this post


Link to post

21845=01,01,01,01,01,01,01,01 = 8 full bore cores - what more could you want?

Well, as I said before, inevitably there will be many other threads of other stuff loaded up and they all take less time together on HT cores. So it should be better than:

255=11111111 = 8 full bore cores - what more could you want? HT maybe.

 

  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
34 minutes ago, Dirk98 said:

Why using HT at all then on a 8-core CPU?? 

You may see a slight performance increase and better temps by turning HT off. Why don't you try it?

Thanks!

Hi Dirk,

The fact is I have several other flight sims and a healthy diverse collection of games on the same machine and, with HT enabled, they all perform very well without any issues. Prepar3D is the only exception, which is why I need to employ an AM to optimise the number of LPs being used by the sim.

Temps have never been a problem. At idle all cpu cores sit around 26-30C (depending on ambient temperature) while under load the highest temp on any core is rarely above 60C. Also, you will note I have established a stable overclock of 4.7GHz.

Regards,

Mike

  • Upvote 1

Share this post


Link to post
54 minutes ago, Dirk98 said:

What was the AM that you used?

AM = 1365

01 01 01 01 01 01


13900 8 cores @ 5.5-5.8 GHz / 8 cores @ 4.3 GHz (hyperthreading on) - Asus ROG Strix Gaming D4 - GSkill Ripjaws 2x 16 Gb 4266 mhz @ 3200 mhz / cas 13 -  Inno3D RTX4090 X3 iCHILL 24 Gb - 1x SSD M2 2800/1800 2TB - 1x SSD M2 2800/1800 1Tb - Sata 600 SSD 500 Mb - Thermaltake Level 10 GT case - EKWB Extreme 240 liquid cooling set push/pull - 2x 55’ Sony 4K tv's as front view and right view.

13600  6 cores @ 5.1 GHz / 8 cores @ 4.0 GHz (hypterthreading on) - Asus ROG Strix Gaming D - GSkill Trident 4x Gb 3200 MHz cas 15 - Asus TUF RTX 4080 16 Gb  - 1x SSD M2 2800/1800 2TB - 2x  Sata 600 SSD 500 Mb - Corsair D4000 Airflow case - NXT Krajen Z63 AIO liquide cooling - 1x 65” Sony 4K tv as left view.

FOV : 190 degrees

My flightsim vids :  https://www.youtube.com/user/fswidesim/videos?shelf_id=0&sort=dd&view=0

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
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...