Sign in to follow this  
Cruachan

8 Core CPU Performance Data (FPS Delta) - Prepar3D v3.1

Recommended Posts

Hi,

 

There has been much discussion about Prepar3D and how it runs optimally on 4 Cores with Hyperthreading ON. I have an 8 Core CPU and this has not been my experience. Hitherto, my assertions have been subjective in terms of observed fluidity of performance and smoothness of on-screen frame updating and not supported by actual data. Hopefully this is now about to change :smile:

 

Application: Prepar3D v3.1

Addon: My Traffic Pro 6.0a

Front End: Ideal Flight 10 Professional (Preview)

Utilities: Air Traffic Manager, Process Lasso Pro (Allows easy changes to CPU Affinity Mask)

Hardware: See signature below

Display Resolution: 2560x1440x32

Graphics Drivers: GeForce 361.91 WHQL

 

NVIDIA Inspector:

Antialiasing - Mode = Override any application setting

Antialiasing - Transparency Supersampling = 4 x Sparse Grid Supersampling

 

Prepar3D:

MSAA = 4 Samples

FXAA = Off

Texture filtering = Anisotropic 16x

Texture resolution = 2048x2048

VSync and Triple buffer = Off

Target frame rate = Unlimited

Tesselation factor = High (85)

Road Vehicles: 0

 

Methodology:

 

A test flight was created using the Beech Baron 58 positioned at KSEA facing towards downtown Seattle, Initial heading: 002 degrees, Altitude 2000ft above the threshold of Rwy 34R, Weather: Clear Skies, MSI preset to 180, Autopilot: ON, View: Outside facing a little above the nose of the aircraft looking back, Sim Paused.

 

This ensured that I was able to reproduce the flight exactly each time for every test. When unpaused the Baron would fly an arc to the right until it was facing due south. The time taken to assume heading 180 under autopilot control was approximately 60secs and the rest of the flight was straight and level maintaining a height of 2000ft. The duration of each flight/test was exactly 2 minutes.

 

Ideal Flight 10 Pro allowed me to create the required data set which could then be displayed as a bar graph in Excel. It also allowed me to restrict the flight time to 2 minutes and, in addition, I could ensure that no unwanted weather injection occurred. Prepar3D can be run from IF10 Pro to the P3D Scenario Startup Screen thus enabling the loading of my prepared test flight.

 

Once the test flight was fully loaded I would spin around the aircraft a couple of times (using the keypad) to ensure all required scenery textures were fully loaded. Air Traffic Manager was started and time given to optimize - Target aircraft count: 30

 

The sim was then unpaused and the flight would proceed until paused automatically by IF10 Pro after 2 minutes had elapsed.

 

RESULTS:

 

(1) 4 Cores, HT = On, (01,01,01,01,00,00,00,00), Unlimited frames
4CoreHTOnUnlimited.jpg

(2) 4 Cores, HT = Off, (1,1,1,1,0,0,0,0), Unlimited frames
4CoreHTOffUnlimited.jpg

(3) 8 Cores, HT = On, (01,01,01,01,01,01,01,01), Unlimited frames
8CoreHTOnUnlimited.jpg

(4) 8 Cores, HT = Off, (1,1,1,1,1,1,1,1), Unlimited frames
8CoreHTOffUnlimited.jpg

(5) 7 Cores, HT = Off, (01,01,01,01,01,01,01,00), Unlimited frames
7CoreHTOffUnlimited.jpg

 

Observed Frame Rates: 30-40 throughout test #5

 

 

Other combinations of core counts were tried along with/without using VSync and Triple Buffering and using NVIDIA Inspector to limit frames to 30 matched with the same setting in P3D, but none produced the fluidity of performance as achieved, quite evidently, with either 8 Cores, Hyperthreading=Off, Unlimited frames or 7 Cores, Hyperthreading=Off, Unlimited frames. Indeed the latter appears to be producing the best results both objectively and, yes, also subjectively :wink:

 

Mike

  • Upvote 1

Share this post


Link to post
Help AVSIM continue to serve you!
Please donate today!

Mike, what is the four core HT on AM you used?


There is not enough information about those tests, since four core HT on can produce terrible results with the wrong AM. Can you show exactly what AM are you using for each graph please.



Results here shows 4 core HT on performing better than 5, four core HT ON at the top, 5 core HT On, 4 core HT off, finally at the bottom, 5 core HT off:

P3D4v5core.jpg


And that's with around only 3-5fps Delta.

Share this post


Link to post

Mike, what is the four core HT on AM you used?

 

Hi Steve,

 

21760=(01,01,01,01,00,00,00,00)

 

As I mentioned, I used ''Process Lasso'' to change the Affinity Mask prior to each test. Saved having to fiddle around with Prepar3D.cfg.

 

Edit: Note addition above each graph in original post.

 

Regards,

 

Mike

Share this post


Link to post

Ahh right, I wondered what the problem was. I'm afraid you must allow P3D to start from it's own AM unfortunately you cannot move it. Are you starting P3D with IF10 Pro? In the config.ini [FSSetup] set ExpandFSAffinity=False.

 

They way you are doing it, you are cramming 16 P3D jobs onto four LPs making four core HT enabled by far the worst performance.

 

Everything you are doing is brilliantly organised. Except you must put a [JOBSDCHEDULER] section and allow the sim to start up with that value, do not lasso it or change it in task manager.

Share this post


Link to post

You guys sound pretty smart. 

I just on AM in the cfg and I turn HT off on my 6700K and my sims runs perfect. 

Share this post


Link to post

You guys sound pretty smart. 

 

I just on AM in the cfg and I turn HT off on my 6700K and my sims runs perfect.

Yes, on a four core that's pretty much ideal for P3D (and FSX), however with HT off you do actually lose around 3-5% throughput overall which is hard to spot, but the PC is a bit sluggish. Don't waste the HT mode, turn it on and put an AM of 85 or 170.

 

 

I thought that if Process Lasso was used, one did not have to use AM in the CFG.

Depends how it's used. When the sim starts with no AM setting, it makes one job per Logical Processor. On Mikes 8 core that's 16 jobs. Next lasso that onto 4 LPs, and those 16 jobs get crammed onto those four LPs. How programs are going to react with affinity changes is not easily understood.

Share this post


Link to post

So Steve,

 

I know this was probably addressed in the other couple threads related to AM, but...

 

I have a 4970k, with HT turned on.  So I have 8 cores avail, and with process lasso, have P3D running on 1,3,5, and 7. 

 

I do not have AM in my CFG.  I also have no other programs running concurrently with P3D.  Will it hurt me otherwise to put the AM line in the CFG, and if I do, is there anything special in which I need to add to make it mimic what I have process lasso doing, or not?

Share this post


Link to post

We should put the AM in the Prepar3D.cfg. But that depends on how proc lasso works.

 

When an app starts with its own affinity setting it lays itself out in the available affinity space. So with no AM the sim will see 8 LPs and run itself up in a particular way to handle those 8 jobs, or threads. If a process takes control subsequently, and reduces the logical processor count, those 8 jobs simply all get shuffled onto those LPs unmasked in the AM. That's not too good for performance and not the way the sim intended to run itself.

 

You could start proc lasso with the affinity you want the sim to start with, (assuming you can start P3D with proc lasso) then when it's lasso'd, the LPs don't change, or perhaps no need to lasso it at that stage, would need some tests. Maybe check the documentation. Mike's using an app that is specifically written to start P3D with the best advantage and does not move the jobs.

Share this post


Link to post

In Mikes example, with 8 core HT off P3D runs up on 8 LPs and is not shuffled onto less LPs, so that would predictably perform the best. With HT On and 4 LPs unmasked, that's 16 jobs shuffled onto four LPs, predictably the worst performance. All the graphs show a very poor Delta and if Mike can make the graphs with the fps - delta, we should see better performance with HT On. If we're not seeing better performance with HT On, there's something wrong.

 

Will it hurt me otherwise to put the AM line in the CFG, and if I do, is there anything special in which I need to add to make it mimic what I have process lasso doing, or not?

The best thing to do is start P3D from it's desktop icon with it's own AM, then use proc lasso so exe addons are moved away from the first core P3D encounters through the mask. Make a mask with four LPs (ones) unmasked, one per core. So a four core HT enabled would look like 170=10,10,10,10 and 85=01,01,01,01

 

keep the exe addons off of LPs 0,1 with lasso.

 

 

 

Three Cores:

 

We may have an addon that has periodic high energy bursts of activity, and we may not want that happening on any core the sim uses. That's a problem on the four core CPUs since we really want to use four cores for the sim. We can start the sim on three LPs with the use of AM's with values of 14=1,1,1,0 for HT off, and 84=01,01,01,00 for HT On.

 

With HT ON we have more options. We can allow the sim to split into four jobs with 116=01,11,01,00 - this unloads work from the first job onto the core with the second job. The second job in a P3D (and FSX) 4 LP configuration does the least work when the sim is pulling data, so it's not too unfriendly sharing a core with the third job. Below the three core 116 four job configuration outperforming the 5 core five job:

 

4v5jobs.jpg

 

Three cores better than five, and stonking performance from each anyway with very small delta, but outclassed by the setup with four cores four LPs given to the sim initially.

Share this post


Link to post

Hi SteveW, I run an older i7-980x  (6 cores ,ht off)  (@4.16) what  am you suggest I try ?

Thanks

Share this post


Link to post

HT On, AM=340 or AM=1360. 340 lends a little more bandwidth to other tasks like networking, so try 1360 first.

 

If you are keeping HT Off, AM=30, or AM=60 respectively for the above reasons. HT On does more work so whatever you do you will see more heat. But with the appropriate AMs shown, that heat is minimalized.

 

Mike, what I would do is get straight to the nitty-gritty. I would like to see with your 8 core HT ON the following AM's tested, 21760, 1360, and then 1360 with the config.ini [FSSetup] set ExpandFSAffinity=True. Thanks for a brilliant post. I'm amazed you've worked out how to properly set up the test harness in such a short time, very impressive.

Share this post


Link to post

...and Mike, when the scenario starts, don't move the view, this will introduce randomisation in the comparisons. You also need to be sure the view is exactly the same direction for each test. Just un-pause the sim and let it go, even the time the banner finishes will alter the comparison. Simply let the plane fly to turn a waypoint, the view changing will be encompassed into the test more naturally, and the same for each test.

Share this post


Link to post

SteveW, oops I forgot to add I use fsx Se. Would the am be the same?

 

Thanks

Share this post


Link to post

Mike,

 

Another thing I noticed is you mention the weather, but not how it's generated. I think you should use the IF10 weather engine because it introduces no randoms, and utilises the full gamut of P3D weather, more than other weather engines. Weather in P3D uses a lot of resources, unless the weather is taken properly into consideration the sim has not been tested correctly.

Share this post


Link to post

HT On, AM=340 or AM=1360. 340 lends a little more bandwidth to other tasks like networking, so try 1360 first.

 

If you are keeping HT Off, AM=30, or AM=60 respectively for the above reasons. HT On does more work so whatever you do you will see more heat. But with the appropriate AMs shown, that heat is minimalized.

 

 

 

 

Ok done that.Task manager still shows all cores being used tho ?  (task manager->processes->fsx.exe  -> set affinity ? 

 

thanks 

Share this post


Link to post

not responding to the AM?

 

You have in the .cfg:

[JOBSCHEDULER]

AffinityMask=1360

 

only other thing I can think

Did you say FSX-SE? They had a beta version out that took over the AM a way back, then dropped it. They may have reintroduced something like it I've not tested se for a few weeks recently.

Share this post


Link to post

Yes. 

 

[JOBSCHEDULER]

AffinityMask=60

 

Yes fsx-SE . But 60 not 1360 ?

 

thx

Share this post


Link to post

Sorry mis-read you. It will show all cores active in the task manager Set Affinity menu item, whatever the AM setting. But that's OK. So you set AM=60, why not have HT enabled and set 1360?

 

And don't go into the task manager Set Affinity menu item and press OK as it can reorganise the layout.

 

Once it started you should be able to see your AM core activity with the core graphs.

 

FSX and FSX-SE show all LPs set (AM=0) when you view with the Task Manger Set Affinity menu item. P3D shows the current active LPs and is different to FSX.

Share this post


Link to post

Sorry mis-read you. It will show all cores active in the task manager Set Affinity menu item, whatever the AM setting. But that's OK. So you set AM=60, why not have HT enabled and set 1360?

 

 

 

 

am 60 did the trick just fine. i used to get stutters,not anymore.I actually i do get some but only during replay.Thanks so much.I will give ht and am=1360 a go

Share this post


Link to post

Depends how it's used. When the sim starts with no AM setting, it makes one job per Logical Processor. On Mikes 8 core that's 16 jobs. Next lasso that onto 4 LPs, and those 16 jobs get crammed onto those four LPs

 

Hi Steve,

 

Thanks for your encouragement. However, I feel I should clarify part of the procedure I followed prior to each test before acting on your further helpful suggestions.

 

Prepar3D is run first before setting each Affinity Mask. Once the .exe appears in Process Lasso, CPU core selection changes can then be made and these changes are remembered. No need to allow P3D to load beyond the Scenario Startup screen. P3D is then closed down and restarted from within IF10 Pro, with the modified AM, back to the Scenario Startup screen where the test flight can be loaded.

 

Also, my understanding is that Process Lasso, is loaded at boot as a background process and continues to run and work its magic without any further user intervention. It is capable of many things but, for most, a policy of user non-interference is likely to be preferred.

 

So, each time the sim is loaded to run the test flight it can be started with an Affinity Mask setting just as it would, presumably, by having an AM value added/changed pre-test in Prepar3D.cfg.

 

'Clear Skies' (effectively no weather with moving clouds) was forced by disabling any weather injection in IF10 Pro. This was done deliberately in order to prevent what might prove to be a significant variable from affecting the results making valid comparisons more difficult. The saved Test Flight included the 'Clear Skies' setting.

 

Is it possible that these points might affect your assessment of my results and their significance?

 

Regards,

Mike

Share this post


Link to post

Prepar3D is run first before setting each Affinity Mask. Once the .exe appears in Process Lasso, CPU core selection changes can then be made

No, Mike. Unfortunately changes cannot be made to P3D affinity after it has started, for the reasons I stated earlier. I'm certain you will get the same answer from the LM team.

 

I suggest you cut to the chase and get your setup in order. In your graphs, your best graph is far worse than my worst results. You have clearly demonstrated that a drastically poor setup can be beat with a less than drastically poor setup. But you cannot beat a good setup with those.

 

 

'Clear Skies' (effectively no weather with moving clouds) was forced by disabling any weather injection in IF10 Pro. This was done deliberately in order to prevent what might prove to be a significant variable from affecting the results making valid comparisons more difficult. The saved Test Flight included the 'Clear Skies' setting.

IF10 weather is random free. It's specifically designed to avoid that. Testing with a weather theme is a waste of time.

 

...And don't change any views or touch any controls when you test, just un-pause and let it fly.

Share this post


Link to post

Hi Steve,

 

Sorry to labour the point, but you may not have noted I have made a few edits which seems to have coincided with your last posting. Could I ask you to read para 2 again as I think we are speaking at cross purposes. The point I am trying to make is that for testing and data creation, each time P3D is started from within IF10 Pro it does so with a modified AM. This user-modified AM was recorded previously by Process Lasso and is applied subsequently to P3D each time the sim is run - just as if P3D was being started using a modified AM entry in Prepar3D.cfg.

 

Regards,

Mike

Share this post


Link to post

No Mike. Don't lasso it, at all.

 

Set an AM in P3D cfg and don't lasso it - at all. Lasso anything else, that's fine. Run the tests as described, obviously include full fat weather, but not from a randomiser Wx. Use IF10 Weather as it has no randoms, it's procedurally generated, will repeat the same cloud or ripple of thermal, same place same time. Collect the csv and show me a better result than I posted with my 6 core.

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