Jump to content
Sign in to follow this  
jmig

FPS and CPU/GPU loading in PD3 V4.1

Recommended Posts

5 minutes ago, SteveW said:

Of course it would - as far as P3D is concerned it still has all cores. And that's irrespective of how many are assigned in PL - if you give it two it sees just two side by side and accordingly the AM you can put in the config is restricted to such. but why would you give it all cores in Process Lasso, or indeed run another process where it's not needed? Instead forget PL for P3D just use Prepar3D.cfg.

I meant to say that there's no conflict or "fight" betbween AM setting and PL which is important for me. PL is good for distributing add-ons among cores - it's easier than to write the bat file. Besides, they claim they somehow elevate a needed *.exe above other processes, and it's not about the process priority only, or they claim so.

Thanks.

Edited by Dirk98

Share this post


Link to post

Didn't even want to dig Affinity for a long time.

But now I feel enlightened in the sense I have an idea about the terms used to describe a handful of beans scattered on your table :biggrin:

Thanks!!

Igor.

Share this post


Link to post
4 hours ago, Dirk98 said:

I think this particular part answers my question 100% about 10 over 01 :laugh:.

 

On my next pc build based around a 10-Core i9 7900X I don't think I'll benefit by enabling HT at all.

I'll rather go for AM=1022 leaving the first Core entirely for Windows and push GHz even higher a bit without HT enabled. But I'll also check AM=1023. I think 9 cores will be enough for P3D. And I'll distribute add-ons between the cores on the left side of  1 1 1 1 1 1 1 1 1 0, each giving 2 cores (or 1 would be enough?) with Proceess Lasso.

That sounded quite stupid in context, showing my miserable lack of understanding of what was so kindly explained here before, and I apologize for it.

I realize I'll need to test and see myself yet if a higher single core performance augmented by a slightly higher frequency (when HT is OFF) overcomes the benefit of moving the so called (iirc) "fiber thread" off the physical core where the main P3D process is running to the next LP (when HT is On). I know I'm not quite there yet, but I'm slowly getting the idea, or I think so at least. ))

Thanks!  

Edited by Dirk98

Share this post


Link to post
9 hours ago, Bert Pieke said:

Lastly, LM has moved work from the CPU to the GPU (video card), so the net of it is that you get better performance out of P3DV4 even on the same CPU, if you have a fast GPU (like a GTX1070+).

Hey Bert, How bout a AMD Radeon R9 390 8gb vram

Share this post


Link to post
10 hours ago, Dirk98 said:

I meant to say that there's no conflict or "fight" betbween AM setting and PL which is important for me. PL is good for distributing add-ons among cores - it's easier than to write the bat file. Besides, they claim they somehow elevate a needed *.exe above other processes, and it's not about the process priority only, or they claim so.

Thanks.

As demonstrated with Windows Game Mode, the app can't have "more" priority, we only give other processes less priority.

P3D is designed to know how to prioritise with it's resources and implement it's own AM split out and doesn't need mothering while it's at it.

As seen with Game Mode or setting P3D to a higher priority the sim slows down because it's waiting longer for its resources. This priority hyperbole is the same kind of leap of misunderstanding as thinking one LP of a core is different to the other LP of that core when it's the same core.

No need to add another process to the stack when a simple batch can start your panel.exe. You'd be better off to find an app that reports the true performance of the sim to find all this out.

 

  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
58 minutes ago, Airwolf05 said:

Hey Bert, How bout a AMD Radeon R9 390 8gb vram

Sorry, I have no idea... :blush:


Bert

Share this post


Link to post
1 hour ago, SteveW said:

No need to add another process to the stack when a simple batch can start your panel.exe. You'd be better off to find an app that reports the true performance of the sim to find all this out.

Incredible source of useful info for me in this thread. Even better, I'll make a batch file and see how P3D works without PL. I'll need to adjust SIMstarter to launch the batch instead of P3D though.

What is panel.exe btw? ))

Thanks!

 

 

Share this post


Link to post
15 hours ago, SteveW said:

With P3D there is a process that starts and it has the interface and the rendering of the scene. It is fed by other processes - we want that having total throughput of a core. So if we see this one LP very busy all the time we don't want another process on the same core on the other LP unless we just don't have many cores. With v4 they have split more out of that main process so it is leaner if we have enough LPs. The next process is very small so it sits on the next LP and it's utilising the performance of HT rather than both being on one non-HT core.

The jobscheduler will have statistics of activity and decide where to put a new process, it looks for a slacker core, a core doing less work at the time.

Generally the PC won't start stuff up while simming but we have other stuff running alongside - so we can shove all that on certain cores with apps or a batch file and put the sim on others.

If we specify no jobscheduler section in the config:

The sim has by definition an AM=0=the number of LPs you have rather than none - no LPs at all is useless - zero is used in reverse to indicate whatever count of LPs we have.

So if we have a four core we have an AM=0=15

if we enable HT we have AM=0=11,11,11,11=255

So you can see there's no such thing as NO AM. There's always an AM with an app like P3D because they have gone to the trouble of making it up from separate parts that will by the definitions of their starting calls be placed on the next LP from their previous counterpart as each part is started. These are not actual threads think more like jobs. In fact there's more than 57+ threads in a stock P3D run all start within that AM=0 (or whatever we give it. So in way when we have no AM and an app like P3D we get the first process on core zero because of the way the AM is asking for all LPs.

Is it right to generalize, that:

1) by enabling HT and using an appropriate AM we can control separation of the main P3D's process on a LP of a single physical core from the "fiber thread" that would run on the next available LP of another core if you made enough cores available to Prepar3D.exe (another 1 core or 2 or 3 etc? how many is enough min btw?) which is not to be the case if not using HT?

2) without HT we have no control over separation of the main P3D's process from the "fiber thread" over different cores available. (?) We can only surmise in this case that the more cores we make available to Prepar3D.exe the more chance that the fiber thread would run on a separate core from the one where the main thread is running. (?)  

An example: I have a 4-core CPU with HT disabled AM=15, so I wouldn't know if the fiber thread bunched up with the main process on Core 0 or was pushed to run on the next Core. However with more cores on a CPU (with HT off) there's better chance the fiber thread would run on a separate (from the main process's) core, but you can't have reasonable control over it when HT is disabled. (?)

Thanks,

Edited by Dirk98

Share this post


Link to post
2 hours ago, Dirk98 said:

Incredible source of useful info for me in this thread. Even better, I'll make a batch file and see how P3D works without PL. I'll need to adjust SIMstarter to launch the batch instead of P3D though.

What is panel.exe btw? ))

Thanks!

 

 

An example name - just an arbitrary exe of some sort that you might launch with exe.xml - whereby it would then just occupy the LPs made available to the sim. Instead start it from a .bat

Same goes with apps that start other apps, be sure they don't start apps inside their own affinity. ".bat" files are easy and you drag a shortcut to it and double click that instead of the desktop icon came with it - least resources and simple.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
1 hour ago, Dirk98 said:

Is it right to generalize, that:

1) by enabling HT and using an appropriate AM we can control separation of the main P3D's process on a LP of a single physical core from the "fiber thread" that would run on the next available LP of another core if you made enough cores available to Prepar3D.exe (another 1 core or 2 or 3 etc? how many is enough min btw?) which is not to be the case if not using HT?

2) without HT we have no control over separation of the main P3D's process from the "fiber thread" over different cores available. (?) We can only surmise in this case that the more cores we make available to Prepar3D.exe the more chance that the fiber thread would run on a separate core from the one where the main thread is running. (?)  

An example: I have a 4-core CPU with HT disabled AM=15, so I wouldn't know if the fiber thread bunched up with the main process on Core 0 or was pushed to run on the next Core. However with more cores on a CPU (with HT off) there's better chance the fiber thread would run on a separate (from the main process's) core, but you can't have reasonable control over it when HT is disabled. (?)

Thanks,

1 No. By enabling HT all apps think there's double the number of cores - they have no idea they are sharing a core.

2. No. P3D sees all LPs as it sees cores.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
3 minutes ago, SteveW said:

1 No. By enabling HT all apps think there's double the number of cores - they have no idea they are sharing a core.

By "apps" do you mean all add-on *.exe-s that are running?

Thanks.

Share this post


Link to post

Yes, not every exe app is the same but in general exe apps run on their own in the presented affinity of the desktop, whereas dll's are called and processed by the cycles of the sim. Similarly if we allow the exe.xml to start the exe app that app will simply fit inside the AM of the sim.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
15 hours ago, SteveW said:

With P3D there is a process that starts and it has the interface and the rendering of the scene. It is fed by other processes - we want that having total throughput of a core. So if we see this one LP very busy all the time we don't want another process on the same core on the other LP unless we just don't have many cores. With v4 they have split more out of that main process so it is leaner if we have enough LPs. The next process is very small so it sits on the next LP and it's utilising the performance of HT rather than both being on one non-HT core.

The jobscheduler will have statistics of activity and decide where to put a new process, it looks for a slacker core, a core doing less work at the time.

I thought by "another process", "next process", "new process" in context above you mainly meant a process from within Prepar3D.exe, did you not? 

Thanks.

Share this post


Link to post

No I mean another process like your panels or weather addon.

 

Think about this: If we run 100 threads on a core with HT disabled they are all time sliced on that core to all appear to run together.

If we enable HT and they continue to all run on "01" we get the exact same performance. If we choose 50 to put on each LP "11" they continue to be time sliced by the exact same core, they do not run two at once - still the same as one core. 10, 01, 11 all the same.

So what's the benefit of HT? It's got hardware that saves time between switching those threads in and out and so the distribution across both LPs, so "11" saves switching time so long as it's got stuff distributed to the other LP of the core.

 

Now let's imagine P3D on a dual core HT disabled: And for argument's sake P3D is still a single thread, it runs on "01".

Let's improve P3D so it makes two threads and moves the second one along one core it now runs on 11 ( with no AM).

Now let's enable HT - now P3D is running on "00,11" in fact it's going to perform worse now HT is enabled so we give it the AM= 01,01=5 and t now performs better than the HT disabled setup because there will actually be 200+ threads on the system when you run P3D.

Conclusion - AMs are a general requirement not a tweak.

 

 

 


Steve Waite: Engineer at codelegend.com

Share this post


Link to post
16 minutes ago, SteveW said:

Similarly if we allow the exe.xml to start the exe app that app will simply fit inside the AM of the sim.

This is an important part if I decide to run the batch file instead of using PL. Turns out then I'll have to remove the exe's, that I'd like to run outside the AM of the sim, from exe.xml, right?

Thanks.

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...