jmig

FPS and CPU/GPU loading in PD3 V4.1

Recommended Posts

Mods, I am not sure where to post this, so feel free to move it if need be. I am posting here because it is a PD3 issue, and I don’t think it is strictly a CPU or GPU problem, and they have different forums in the Hardware section.

We all know that PD3 slows down when in congested areas. I have always assumed that the computer is getting maxed out. Only so many bits of information can be pushed through any given computer. So, I ran some performance tracking programs (CPU-Z, GPU-Z, and CPUID HWMonitor) while flying the Iris PC-21 over the Los Angeles area. I am running ORBZ, NASoCal along with Vector and Global NALC. As predicted the FPS dropped to 10 and below. Normally, my system keeps the frames between 20 & 30.

My question(s) are why are the frames so low in the screen shot when (if I am reading the apps correctly) the computer isn’t really being stressed? If I understand correctly, CPU Core 0 is maxed out (it often reads 100%). However, the rest of the cores are only about one half utilized. The GPU (a GTX 970) is basically idling with a load of less than 25%.

Am I understand this correctly? If so, why the low frame rate here? And, what can I do to improve the frames? You can see most of the hardware specifics in the scree shot. The RAM is 16Gb of whatever speed and type that was current three years ago.

i-pg9DMhb-XL.jpg

Share this post


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

You can see CPU #0 at 98% and CPU #1 at 17%? well that 17% on LP1 is taken from the 98% on LP0. That's because #0 and #1 are the same core, two logical processors are the same core. The 98% is of that which remains after the 17% is had. So you can start by addressing that with an AM that turns off one of the first LPs 11,11,11,11,11,10 each pair shows two ones '11, the first core, the rightmost pair, show '10'. This is a binary representation of on LPs (1) and off LPs (0). 4094=111111111110.

We can see typically 17% on the second LP. This is arranged so that the second process that appears does not take up too much of the core. Using the Affinity Mask 4094 would give your main process (98%) the full 100% of the core. This is the process that more or less governs the peak fps available and can use all it can get.

Looking at the other LPs, they are not so badly affected by sharing those other 5 cores they all do what they can. Load a different scenario from a saved file and watch which ones max out then.

  • Upvote 1

Share this post


Link to post

Next you can look at what else is running alongside the sim, the exe apps, whether it starts before the sim or when after the sim is fully started can make a big difference.

A simple way to make room for the exe apps like for example a weather add-on, is to make a free core available.

Going back to the binary representation for your 6 core 12 LP, we could move the sim off of core 0 completely with 11,11,11,11,10,00 - on the far right two zeros '00' on core 0, then one pair in we have the '10' pair. 4088=111111111000 - three LPs missed on the right so that's both LPs of core zero, and one LP of core one. Now we get the sim starting process on LP 3, LP 2 is ignored, all of core zero is ignored as well.

In short a good starting point for the 6 core +HT (12LPs) is to use AM=4088 and leave the rest up to the system: 

C:\Users\Steve\AppData\Roaming\Lockheed Martin\Prepar3D v4\Prepar3D.cfg

[JOBSCHEDULER]
AffinityMask=4088

  • Upvote 2

Share this post


Link to post

VSync or Locked?

With VSync enabled in P3D Display Settings and Unlimited set on the slider, the sim will try to output frames at or near the refresh rate of the monitor, say 60Hz causes the sim to try to make frames at 60fps. A bit like a frame rate limit, so that with low settings you may see that main CPU 98% come down a bit.

Also we can use Locked fps on the Slider to manage the rate of frames.

Reduce the display features until that 98% is more like 88% and you have overhead CPU capacity to consume when the scene increases in complexity.

 

  • Upvote 1

Share this post


Link to post

Experts around here will make sure the addon exe apps use only particular LPs and search for the best use of LPs sharing cores or not.

They might also test their setups with Unlimited set on the slider but with VSync disabled so that the sim runs up to max and can be ascertained the available performance limits.

But after making tests they might then enable the VSync or set a locked fps on the slider when actually running the sim.

  • Upvote 2

Share this post


Link to post

So what's verdict here? Tweak or buy even more expensive hardware?  The OP HW is no slouch, but yet again the only truth is that there will be always a combination that will choke the sim.  The plane (Iris PC-21) is not a resource hog either (I suppose?).  Try flying the PMDG NGX here :anonymose:I am following this kind of thread with high interest, as I am still on the fence about P3D v4.  It seems like the conclusion is to get rid of stuffs.

Share this post


Link to post

Get the best hardware affordable and make the best setup from it. We can at least try keeping unnecessary work off of certain cores demanding full use by the sim with the way addons run on the system, and with the AM when HT is enabled. But also remember that with P3Dv4 turning up those settings can crush the sim more easily than with v3. Best thing is to back off the settings until the CPU can maintain the throughput. All the while an LP is rammed up at 100% that's actually the sim slowing down as there's no available overhead.

  • Upvote 1

Share this post


Link to post
1 hour ago, jmig said:

My question(s) are why are the frames so low in the screen shot when (if I am reading the apps correctly) the computer isn’t really being stressed? If I understand correctly, CPU Core 0 is maxed out (it often reads 100%). However, the rest of the cores are only about one half utilized. The GPU (a GTX 970) is basically idling with a load of less than 25%.

 

CPU core 0 maxed out means that your CPU IS being stressed.

P3D can only move so and so much work onto the next core, and the remainder of the cores are dedicated to scenery loading work.

As Steve said, keep the first physical core that P3D uses protected from other work, and stop P3D from using more than one LP on this core.

Share this post


Link to post

Good info here.

Would anyone recommend using Process Lasso to manage the core loading or is Affinity Mask enough? (One problem using Affinity Mask however is that GSX will stutter like crazy)

Share this post


Link to post

P3D with AM 

Addons either assigned to other cores by PL or by batchfile...

 

regards, Gerard

Share this post


Link to post

The reason your GPU usage is low is because you Are not demanding that much from the GPU but more from the CPU, Add a bunch of AA and settings that are GPU specific and you will see GPU usage go up.  Also limiting frames will make the GPU usage lower as well.

  • Upvote 1

Share this post


Link to post

@GSalden

Thank you for your help!

I moved addons to cores 6 & 7 and for AS for P3D I gave it cores 4-7. I then checked to see what processes were running and moved all non-Windows related processes to 2-7. First test I did was loading up PMDG's 747 on runway 11 of Drzweicki Designs KEWR v2. This runway has you facing Lower Manhattan (in my case DDesigns NYCX v2). Loaded in with 40 FPS on a 34 inch ultra wide screen!!! I stopped right there! Didn't do any AM tweak.

 

DId a circuit using left hand traffic out of EWR. Averaged 37 FPS take off from 4R and landing 4L. Vram averaged 26%, CPU averaged 56% use. There were one or two stutters but with the high frame rate, they were completely bearable. Interestingly enough with the same settings in a smaller window, frames shot up to over 60... 60+ FPS in the NYC area!? I'll take it!

 

I'm going to enjoy flying the next few hours!

 

For reference I have a i6700 CPU @4.6. I have an ASUS STRIX ROG1080 video card and 16GB RAM. I'll share any other setting if requested but don't want to bog down the thread.

Share this post


Link to post
3 hours ago, GSalden said:

P3D with AM 

Addons either assigned to other cores by PL or by batchfile...

 

regards, Gerard

Hi Gerard. 

I some times do this manually after sim is starting up. I use HT off at the moment. 

Chaseplane is not happy leaving core 0 off. Stutter like hell. 

ASP4 is on a network PC but simconnetion should be moved for it? Do you know how via a batch? 

How do i move GSX and maybe Fslab Spotlights away from core 0?

Can you help? Guess fraps and Nvidia Inspektor can be moved to. 

Thanks Michael Moe 

Share this post


Link to post
12 hours ago, jmig said:

why the low frame rate here? And, what can I do to improve the frames?

There sometimes seems to be an obsession here with frame rates. High frame rates may be important in most games but are not so much so in flight sims. What you're aiming for is smooth graphics - the frame rates are almost irrelevant. It doesn't matter whether it's 20 or 60 FPS, if it's smooth you don't need to worry. I would say that if you're managing to get smooth graphics at 40+ FPS, you're probably doing so at the expense of better settings. Turn things up until it stops being smooth and ignore the FPS!

  • Upvote 1

Share this post


Link to post
13 hours ago, SteveW said:

Next you can look at what else is running alongside the sim, the exe apps, whether it starts before the sim or when after the sim is fully started can make a big difference.

A simple way to make room for the exe apps like for example a weather add-on, is to make a free core available.

Going back to the binary representation for your 6 core 12 LP, we could move the sim off of core 0 completely with 11,11,11,11,10,00 - on the far right two zeros '00' on core 0, then one pair in we have the '10' pair. 4088=111111111000 - three LPs missed on the right so that's both LPs of core zero, and one LP of core one. Now we get the sim starting process on LP 3, LP 2 is ignored, all of core zero is ignored as well.

In short a good starting point for the 6 core +HT (12LPs) is to use AM=4088 and leave the rest up to the system: 

C:\Users\Steve\AppData\Roaming\Lockheed Martin\Prepar3D v4\Prepar3D.cfg

[JOBSCHEDULER]
AffinityMask=4088

Thank you Steve and the others who commented on my post. I will try your suggestion to use an AM of 4088, although I really don't understand how to get side running applications to run on a certain core. I don't even understand why Cores 0 & 1 or listed on the right hand side of your binary annotation. I am a hardware guy. I can build computers. I can design, build and wire up simulator cockpits,  But ask me to program and my brain goes catatonic.

I am not unhappy with my system. As I stated earlier, it usually runs in the 25-30 fps range. This is fine for me. As vortex681 stated, a fluid and smooth system is what I want. Not being unhappy doesn't mean I am happy, however,  I am human and humans are seldom satisfied. I am considering building a new computer. It will probably be either an Intel 8700 or an AMD 1900x Threadripper series CPU. I have also been wondering if purchasing a 1080 Ti GPU would help me get good frame rates with higher eye dressing settings? Thus the test I did yesterday.

I will post a screen shot of my settings. I think you will find that they are mostly about 60-70% of max. I run with minimum AI. If I understand the ZGPU readings and comments here, it seems the GTX 970 is more than adequate for the current settings. I do, however, run several outside apps.

This computer is running a cockpit that consists of one HD (1920 X 1080) projector, A 27" HD (1920 X 1440) touch screen monitor and two smaller monitors. One is an ELO 10" touchscreen and the other is a VGA monitor in an Opencockpits FMC. I use two GTX 970 cards to run this system. The monitor and and projector are connected to different cards. The two smaller monitors are also connected to different cards. So, each GPU has one HD output and a smaller lesser resolution monitor that will run external programs. At the time of the above test, only the projector was running PD3 graphics.

The external apps are an app to run the force feel side stick, Flight 1's GTN 750/650, IR Track, Go-Flight, and SIOC to run the FMC. I don't think any of them with the possible exception and the Flight 1 GTNs are CPU intensive? I also have REX Textures HD and Soft Clouds. Hover, it is my understand that these programs just change the textures in PD3 and do not actually run during sim operation.  I am OCing the processor using an ASRock application. I have tried to OC the processor using normal means but it will never boot. Using the app after booting allows be to go from 3.5GHz to 4.2 GHz. Anything more that 4.2 GHz will cause the computer to crash.

Share this post


Link to post

Steve, just out of interest for us 4-core CPU users a bit behind the rest of the pack, what is your recommended AM setting. I cannot see it anywhere in my P3D.cfg. Where is added?

Share this post


Link to post
21 minutes ago, vc10man said:

Steve, just out of interest for us 4-core CPU users a bit behind the rest of the pack, what is your recommended AM setting. I cannot see it anywhere in my P3D.cfg. Where is added?

you have to manually add it:

[JOBSCHEDULER]
AffinityMask=xxxx

FWIW, I don't use one - determined that on MY system, I get better performance without AM or HT enabled.

Each system is different - some use it and some don't - as long as they are happy. 

Vic

Share this post


Link to post

I followed Steve's advice and applied AffinityMask=4088. To my binary/AM uneducated eyes, I didn't see much if any difference. If anyone is interested, I have attached a screen capture of the same flight in the same area using the AM setting of 4088. I still never saw the GPU get maxed out. Unless someone can explain why I would be better on with a 1080 or 1080 Ti, I guess I will look into building a new computer and keep the GTX 970.

If anyone has other gems of information on this subject, I would like to hear them. As I said above, when it comes to maximizing a computer performance, I am pretty much lost.

Thanks again to everyone who offered advice.

 

i-J45dPTG-XL.jpg

 

i-2Pbp47X-XL.jpg

Share this post


Link to post
6 minutes ago, vgbaron said:

you have to manually add it:

[JOBSCHEDULER]
AffinityMask=xxxx

FWIW, I don't use one - determined that on MY system, I get better performance without AM or HT enabled.

Each system is different - some use it and some don't - as long as they are happy. 

Vic

Thanks for that Vic. Neither do I use HT.

Share this post


Link to post

Please note my system specs in my sig.  With my system specs I get excellent performance in P3DV4 and Xplane11 both.  In Xplane11 everything is maxed, in P3D I have autogen disabled and AI set at 25pct.  Texture size is set at 2048x2048  with only a slight impact on aircraft textures.  Everything else is maxed except for AA, limited to 8X.  If I unlock my fps the vary between about 55-70.  But since I use MSE and my own Colorado photoreal scenery, I limit fps to 33fps (don't ask why I chose that number, just seemed cool LOL).  This allows the scenery to render without blurries or stutters.  My photoreal scenery covers California, Nevada, Utah, New Mexico, Arizona and Colorado, the four corners states.

When I purchased my system I was a bit hesitant since my gpu only has 3GB VRAM.  But the salesperson at Fry's Electronics was insistent that the system was tuned for flight simulation.  Based on my performance with my old 2.33 GHZ system and FSX, which could maintain a locked 30fps, I decided to take the leap on the new system several weeks ago.

I run a very lean system, no services or background apps other than what is absolutely necessary.  Fraps for instance is a resource hog.  Even the Windows update service is disabled, as I would get update notifications at random times during my flights.

I have applied no Nvidia tweaks.  When I installed P3D it chose very conservative settings, so first thing I did was start ramping up detail.  I applied one graphics change at a time, evaluated performance, and repeated.  The only impact I had was when I tried to max AI.  Don't understand why AI has always been such a hog in FSX/P3D, in Xplane my airports and skies are crowded with AI and there is no performance impact.

Troubleshooting spotty performance is always hard.  I always recommend starting P3D with one of the default aircraft, it helps initialize the gauge system.  However my P3D default is the Carenado Cessna 337.

John

 

Share this post


Link to post

As a first step, turn all traffic settings to zero on the Options-Traffic page. Any changes?

Second, lock frames to 30 and use 0.1 as FFTF. Any changes?

Share this post


Link to post
18 hours ago, vc10man said:

Steve, just out of interest for us 4-core CPU users a bit behind the rest of the pack, what is your recommended AM setting. I cannot see it anywhere in my P3D.cfg. Where is added?

Thing about four cores is that you need them all for P3D v4 so use the AM to disable just the first LP with HT enabled or with HT disabled do not use an AM and the sim uses all four cores. Instead use a batch file (or an app) to start addon exe apps away from the first core.

 

The 4088 example for the  6 core+HT is just an example to keep things simple for the explanations. The main thing with P3D is to keep those addon exe apps off of the sim cores, we can't do that with 4 cores, they must be shared, so keep them from the first..

Share this post


Link to post
13 minutes ago, SteveW said:

Thing about four cores is that you need them all for P3D v4 so use the AM to disable just the first LP with HT enabled or with HT disabled do not use an AM and the sim uses all four cores. Instead use a batch file (or an app) to start addon exe apps away from the first core.

 

The 4088 example for the  6 core+HT is just an example to keep things simple for the explanations. The main thing with P3D is to keep those addon exe apps off of the sim cores, we can't do that with 4 cores, they must be shared, so keep them from the first..

Thanks for that, on a Sunday, Steve. Now, you are talking science to a noob. Batch file to start addon exe apps away from the first core? Now you have truly lost me. I understand the 4-core, HT on/off, AM on/off thing, but the batch thing.................well and truly lost.

Share this post


Link to post

Have a look into starting exe apps with a batch file here: http://www.codelegend.com/forums/viewtopic.php?f=2&t=632

There's several methods shown how to do batches there. If we make sure the first sim process (that runs the screen updates) is not interrupted then our sim can continue smoothly.

 

Regarding guys testing - remember that setting Unlimited on the slider with VSync=Off (P3D Display Settings) allows us to see maximum frames. Otherwise we would set VSync or Locked to limit the frames and so looking for changes to fps is a waste of time.

 

  • Upvote 1

Share this post


Link to post

Thanks a million for that, Steve. Much appreciated.

  • Upvote 1

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