Jump to content
Sign in to follow this  
AviatorMoser

A Frame-Time Analysis of P3D v3 -- Effects of CPU Affinity, Frame Lock, and HT

Recommended Posts

Well, you got four cores and each of those pretends to be two. Each pair of logical processors are running on one core. Now say you got 8 equal threads and HT disabled, for argument's sake the jobscheduler puts two on each core. The CPU runs each thread a little and switches to the other and runs that for a little while and switches back the first and so on. Each core appears to run two threads simultaneously.

 

Now turn on HT and say the jobscheduler puts one on each logical processor, that's still two to each core, same as our HT disabled. Only difference is that there's less switching time consumed by the two threads as each is switched on that core, still just one core but that's what HT does, improve the switch time.

 

Extend that thinking to P3D, which counts the number of processors (HT disabled sees 4, HT enabled sees 8), and makes a job on each processor. So with HT disabled it makes four jobs, one per core, but with HT enabled it makes eight jobs, two per core.

 

AM=85=01,01,01,01 unmasks only one logical processor per core, so the sim sees four processors, one per core, and runs just like it does with HT disabled. HT disabled no AM is equivalent to HT enabled AM=85 (or any mask that unmasks one of each core e.g. 170).

 

Even after booting up Windows can be running in excess of 200 threads so whatever we do there will be stuff running on all those processors. Most of them are dormant during the running of the sim. But when any run on the same core it makes sense to have HT enabled.

 

The sim threads may want to gain maximum throughput. So if the sim starts two threads on the first core processors zero and one, then it's defeated the object of splitting it out over the cores, masks with alternate ones (enabled) prevent that.

 

We can intensify the use of cores by allowing P3D to make two jobs per core with HT enabled. However, we don't allow the first and second jobs on the same core, we mask one of the processors of the first core.

 

The first job requires maximum core throughput so keep other processes including the sim's own subprocesses and addon exe's threads off of it too. An AM=253=11,11,11,01 allows the first sim job to run on core zero on the right most 01. Then there are six more jobs two on each of cores 1, 2 and 3. This intensifies scenery loading at a small cost to ultimate fps rate and stability if we allow more than four jobs. Since v3.2 this performance with more than four jobs is better.

 

The main thing with 85 or 253 is that they will more or less appear to run the same, but they have *vastly differing characteristics* as the sim loading rises. Paired processes per core maximum capable throughput is only half when both are asking for more than half the capacity of the core. Hence the better performance on 8 core no AM HT disabled CPUs.

 

The stability of the sim (fps) in running is often improved simply by having a bunch of settings that flat-line the sim performance to a more consistent framerate, but we can do that irrespective of how any kind of AM works the sim. Unfortunately this effect is often thought to be a sign of increased performance.

Thanks alot for your thorough explaination, Steve :) AM 85 it is!


Andreas Stangenes

http://www.youtube.com/user/krsans78
Add me on gamertag: Bullhorns78

Share this post


Link to post

Hi SteveW and others,

 

First I need to say thank you for all about this very helpful topic !

 

I was reading all posts this last week and I was able to reduce some stutters in my sim to improve smooth, running P3D v.3.3.5, thanks to your posts SteveW, but I am still having some little stutters but nothing like I had before maybe because UT2 use. (I confess that I love those traffic details)

 

SteveW, let me know if you could suggest any fine tune with AM , HT and/or P3D settings, taking a look below...

 

- Hardware

i7 980X - 3.33 MHZ - 6 Cores

Thermaltake CPU watercooled

Gskill DDR3 1600 Mhz - 6 GB Ram

EVGA GTX680 FTW 2GB

MB Asus Rampage 3 Gene

3 x 32" LED TV (6004 x 1080 x 32 - bezel adjust ON) NVidia Surround

HD intel SSD for OS - Win7 Ultimate 64bits

HD intel SSD for P3D

 

HT-OFF

AM=62

 

- Softwares

ASN - set to Core 0

UT2 - no Core set

Prosim737 - no Core set

EZDOK Camera - no Core set

REX Texture Direct - no Core set

 

- P3D settings

FXAA - off

MSAA - 2 samples

Texture Filtering - Anisotropic 16x

Texture Resolution - High 2048x2048

Hardware Tessellation - on

Vsync - off

Target frame rate - 30

 

Terrain

lod radius - Max

Tesselation Factor - Low

Mesh - 1m

Texture - 7cm

Land details - on

 

Scenery Objects

Scenery Complexity - Extremely Dense

Autogen Vegetation and building - None

Water

Water details - Medium

Bathymetry - off

Reflections - all off

 

Special effects

special effects detail and distance - Medium

 

Lighting

HDR - off

Dynamic reflections - Low

 

Shadows

All off

 

 

Thanks in advance !!!

Share this post


Link to post

Looks good.

 

I would try with HT On putting all addons on 2560 (LPs 9 and 11,) which gives two threads to addon exes, and P3D AM=85 (four cores) or AM=1365 (six cores shortens load time for slightly less fps stability). With HT On if the AM is not right with P3D you can increase heat a lot.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

but I am still having some little stutters but nothing like I had before maybe because UT2 use. (I confess that I love those traffic details)

And I thought it was only me with the micro stutters when running UT2. They were always visible, and I've been thinking of installing UT2 on my new 6700k TitanX system (again after many iterations).

Share this post


Link to post

Looks good.I would try with HT On putting all addons on 2560 (LPs 9 and 11,) which gives two threads to addon exes, and P3D AM=85 (four cores) or AM=1365 (six cores shortens load time for slightly less fps stability). With HT On if the AM is not right with P3D you can increase heat a lot.

Thanks SteveW !

 

I will test with HT On with both AM values as you suggested and I will be back posting my results !

 

I read on P3D forum sometime ago to use the value AM=4094 with HT On for my i7 980X, what is your idea about this value?

 

In my country the EVGA GTX 970 4GB is now with a good price, do you think that upgrading my GPU will improve something in sim?

 

Thanks again !

Share this post


Link to post

4094 produces too many threads and most of them competing for core throughput in pairs, won't improve matters. I would try to reach the 1070 or better still the 1080, these actually are increasing P3D performance, and also good with FSX DX10, FSX DX9 not so much.

 

Remember with P3D and FSX these are affected by addon exe apps running alongside, so with those AMs suggested try to keep those addon apps off of core zero.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

This discussion has been going for years, LM took all this values into consideration on a continuous experiment and improvement since 2012. No Affinity Mask does not mean the sim is not using an affinity mask, it only means it is using the predefined value set by LM using a logical reasoning to find the right value.

Since there are no tools to certify of the best settings the placebo effect is very likely to occur. And since people expect to see improvements with the changes they often don't notice small degradation in performance, this is even more true after many successive changes. LM has updated all the settings to modern computers.

There is no consensus on what are the best settings because all the results are based on subjective perception and that varies from person to person. I prefer to use the default settings implemented with the rationale to best distribute Windows tasks and P3D tasks.

The only consensus that exists is that a CPU running at least 4.4Mhz is the way to have a smooth simulator.

Share this post


Link to post

If you say so.

 

Just like to add to that; the way P3D runs is not a mystery and in reality tools do exist that can interrogate and quantify the system with these simulators.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

This discussion has been going for years, LM took all this values into consideration on a continuous experiment and improvement since 2012. No Affinity Mask does not mean the sim is not using an affinity mask, it only means it is using the predefined value set by LM using a logical reasoning to find the right value.

Since there are no tools to certify of the best settings the placebo effect is very likely to occur. And since people expect to see improvements with the changes they often don't notice small degradation in performance, this is even more true after many successive changes. LM has updated all the settings to modern computers.

There is no consensus on what are the best settings because all the results are based on subjective perception and that varies from person to person. I prefer to use the default settings implemented with the rationale to best distribute Windows tasks and P3D tasks.

The only consensus that exists is that a CPU running at least 4.4Mhz is the way to have a smooth simulator.

Are you also suggesting then, that offloading all the extra FS addons that compete (and usually win) with P3D (or FSX) to other cores, have no noticable affect on performance?

If so, I believe you are completely mistaken.

Share this post


Link to post

P3D is a professional application that deliberately provides the system designer with these options because they are required for proper system tuning. If No AM or AM=0 is used with HT enabled, the sim will more or less be running on two cores, one reason HT off No AM performs better because the sim would then use four cores rather than two.

 

Therefore an AM is a requirement of running with HT enabled, so as to distribute the sim main first four jobs across four cores instead of two. Jobs above four would increase the scenery loading speed and reduce the time to load the scenario at the start, which can be timed with a stopwatch - now that's just one tool for assessing the performance of the sim. hehe


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

on i7 4790 with complex aircraft and airports with traffic and weather engine, I get the sim most fluid with HT on AM off. I see the first LP of core0 being used high and 2nd LP light usage which occasionally jumps to max with other LPs, what I find interesting is that it does not always mirror with high usage of LPs on other three cores and is late to when it does. I also see single LP use on rest three cores when activity is low. Haven't tried turning off HT but forcing 4 core with AM=85 and also with some other suggested AMs I tried did not notice much difference in FPS but lost some fluidity. I use FFTF=0.1. This is with p3d 3.3.5

Share this post


Link to post

on i7 4790 with complex aircraft and airports with traffic and weather engine, I get the sim most fluid with HT on AM off. I see the first LP of core0 being used high and 2nd LP light usage which occasionally jumps to max with other LPs, what I find interesting is that it does not always mirror with high usage of LPs on other three cores and is late to when it does. I also see singe LP use on rest three cores when activity is low. Haven't tried turning off HT but forcing 4 core with AM=85 and also with some other suggested AMs I tried did not notice much difference in FPS but lost some fluidity. I use FFTF=0.1. This is with p3d 3.3.5

 

If you check the P3D manual it says the main thread is at the leanest when the sim is split over four processors or more. So if there are four LPs available it will make four jobs. So in your configuration with no AM allows for that but places the second job on core zero with the first job. This obviously defeats the object of clearing the way for the main job on core zero to itself. The other two jobs fit on the second core, again it's possible you may want those having a core to themselves depending on the scenery and settings.

 

This enables the jobscheduler to have more chance to miss core zero and one with another process starting after the sim has started, but otherwise this is not a very good setup. Instead use the proper AM for HT enabled and start addon exes above core zero.


Steve Waite: Engineer at codelegend.com

Share this post


Link to post

Jobs above four would increase the scenery loading speed and reduce the time to load the scenario at the start, which can be timed with a stopwatch - now that's just one tool for assessing the performance of the sim. hehe

At this moment I have a 6 core processor ; 4 jobs for P3D and 2 jobs for addons.

Would an 8 core processor make scenery loading faster ?

I remember your tests where 4 jobs where smoother than 6 jobs.


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

Hi Gerard, Yes that's true. You can try swapping a little of that stability with more loading speed. Since P3D v3.2 it's been much smoother with more than four jobs. Six will shave a few percent off of loading the scenario time, but it won't get any smoother in the sim itself or improve fps.

 

 

No AM does not mean AM=0 the default value is probably 4081 (11 11 11 00 01) for 6 cores HT enabled and 241 (11 11 00 01) for 4 cores HT Enabled.

Please see Beau post in the link below:

http://www.prepar3d.com/forum/viewtopic.php?p=44352#p44352

May 26, 2014 ? You are rather late to the party.

 

 

You can test No AM and AM=0 in a few minutes, so I just don't understand guys posting guesses. No where does anyone suggest AM=0=4081. However some AM's suggested in that discussion should work quite well since they put the first job on a core to itself. Ganging up HT LPs to run two jobs per core is talked about all over the site, so don't see what you're driving at.

 

 

Gerrard, I remember you tried a selection of AMs recently utilising doubled up jobs but you settled on AM=340 in the end?

 

In answer to Gerrards Q. about more cores, then yes 8 cores or 10 cores would be better in that we need to double up jobs onto less cores, instead they can have the full bandwidth when they draw on it. When two LPs of the same core demand maximum bandwidth they get half each, although they do behave more efficiently with HT enabled rather than running both on the same LP on an HT disabled core. If we have scenery making small demands these jobs can be ganged up onto a HT core when we don't have enough cores to go around. But eventually they will get half each at some stage.

 

A the end of the day HT enabled or disabled no AM works perfectly OK, it's just not optimum. Seems odd that around these HT and AM discussions do we see less interest in optimisations, probably simply because it's hard to understand and difficult to see the results. We can run P3D on two cores works fine, but we need worry more about where those addons go as I keep saying. It is the effects of these other exes that go to produce the big changes in performance, not the AM.


Steve Waite: Engineer at codelegend.com

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