Jump to content
Sign in to follow this  
Emile

FSX hyper threading or not?

Recommended Posts

Hello,

I have HT ASus

My question run FSX with HT on or off?

 


Emile EBBR Z590 Aorus Elite, i9-11900K 3.5Ghz Nvidia RTX 3060, 16 GB Mem, SSD 1Tera + other HDDs, Dual Boot . Win11 Pro X64

Share this post


Link to post
Share on other sites

You will get many different opinions on this question as peoples experiences differ due to individual hardware and their own preferences, the only way to answer the question for yourself is to experiment.

 

My personal experience is that running with HT on but restricting FSX to the 4 physical cores gives a slight improvement in FSX performance with no effect on maximum overclock (4.8Ghz on 2700k) or on temperatures so I leave HT enabled in BIOS.

 

It is generally agreed that the more cores you use within FSX the lower your FPS but the smoother the textures and autogen will load. I use the AffinityMask setting within FSX.CFG to limit FSX to use only 3 physical cores as I find this gives me the best compromise between FPS and texture loading for my requirements.

 

As an aside I don't think that using BClock to overclock is generally reccomended as it can cause instabilities, any reason why you don't just run a 44 multiplier?

  • Upvote 1

Share this post


Link to post
Share on other sites

According to Phil Taylor - Hyperthreading should be off to avoid the risk of thread collisions.

 

Note - hyperthreaded is not multi-core. Our current plan is to treat HT machines as single-core since we noticed extensive collisions between threads which caused stutters. [it won't let me put quote marks around this statement]

 

Ref:http://blogs.msdn.com/b/ptaylor/archive/2007/04/09/fsx-sp1-news-intel-quote.aspx

 

I think that you would need to try it on or off and look at the cpu temperatures and also see if stutters are present or not.

 

Regards

pH

Share this post


Link to post
Share on other sites

Hello,

"As an aside I don't think that using BClock to overclock is generally reccomended as it can cause instabilities, any reason why you don't just run a 44 multiplier?         

"

I use ASUS AI Suite II tool for the Overclocking . this tool seams to work but I do not know how to overclock beter ...


Emile EBBR Z590 Aorus Elite, i9-11900K 3.5Ghz Nvidia RTX 3060, 16 GB Mem, SSD 1Tera + other HDDs, Dual Boot . Win11 Pro X64

Share this post


Link to post
Share on other sites

According to Phil Taylor - Hyperthreading should be off to avoid the risk of thread collisions.

 

Note - hyperthreaded is not multi-core. Our current plan is to treat HT machines as single-core since we noticed extensive collisions between threads which caused stutters. [it won't let me put quote marks around this statement]

 

Ref:http://blogs.msdn.com/b/ptaylor/archive/2007/04/09/fsx-sp1-news-intel-quote.aspx

 

I think that you would need to try it on or off and look at the cpu temperatures and also see if stutters are present or not.

 

Regards

pH

Thanks for posting the link, it explains why I can see that generally the cores that aren't running the main FSX engine only seem to be called into action every 50 seconds or so for ~10 seconds.

 

In connection with the hyperthreading comment, the fact that the article is 8 years old and looking at the exact wording I would suspect that Phil is referring specifically to single core hyperthreaded CPUs (I don't think mainstream mutlicore HT CPUs were available until after the date of the article), so I'm not sure how applicable it is to modern day technology. It would be interesting to know how "Our current plan is to treat HT machines as single-core" was implimented, in terms of FSX potentially bypassing HT on single core CPU's. Either way it remains simple enough to effectively disable the HT cores within FSX using the AffinityMask, to my mind it seems pointless to disable it totally through BIOS unless it causes you issues.

Share this post


Link to post
Share on other sites

I do not know how to overclock beter ...

If you have aftermarket cooling you will be able to run your CPU faster if you manually overclock. Maybe make another thread or have a look at any of the overclocking guides available on the web i.e. - http://www.overclock.net/t/968053/official-the-sandy-stable-club-guides-voltages-temps-bios-templates-inc-spreadsheet/2240#post_14466483

Share this post


Link to post
Share on other sites

 

According to Phil Taylor - Hyperthreading should be off to avoid the risk of thread collisions.

Note - hyperthreaded is not multi-core. Our current plan is to treat HT machines as single-core since we noticed extensive collisions between threads which caused stutters.

This quote is one of the single most misinterpreted quote in FSX history when people try to say that FSX can't use Hyper treading. But you are getting it right. Thanks.

 

The one thing to add is: Hyperthreading should be off to avoid the risk of thread collisions on CPUs with more than 2 cores.

 

On Dual-core and Single-core with HyperThreading it's better to leave HT on. The default affinitymask in FSX will make sure we get very few thread collisions in these cases. Turning HT off in these cases will create even worse performance.

 

When we're taking Quad-cores (or more) we can avoid most of these thread collisions by turning HT off. By also tweaking the affinitymask setting manually and de-selecting one core we can avoid these thread collisions almost entierly at a small penalty in texture loading and load time.

 

FSX can still make good use of hyperthreading for better textureloading and load times. (That's what FSX is designed to use multi core for) But activating HT on a Quad-core allways exposes the risk of thread collissions . The risk of these can once again be reduced a lot by tweaking the affinitymask manually. The default affinitymask is not optimal here.

 

Hardly surprising that the FSX code works this way given that HyperThreaded quad-cores and above didn't exist when the latest update with SP2 was released.

Share this post


Link to post
Share on other sites

 

It would be interesting to know how "Our current plan is to treat HT machines as single-core" was implimented, in terms of FSX potentially bypassing HT on single core CPU's.

It's implemented in the way that FSX default affinitymask only assigns every other core when it detects a Hyperthreaded CPU. So you end up with the same number of texture&terrain loaders as you would on the same CPU with HT turned off.

 

So on a single core with HT it won't assign any texture&terrain loader and the default affinitymask=1. The same as on a pure single-core. The performance with HT on is however greatly improved as Windows will shedule some threads that arn't FSX mainthread to run on the HyperThreaded core.

If you were to treat it as a dual-core CPU by setting affinitymask=3 and in that way assign a texture&terrain loader on the HyperThreaded core you'll get a lot of stutters from thread collisions between the mainthread and the texture&terrain loader sharing the same physical core.

Share this post


Link to post
Share on other sites

When we're taking Quad-cores (or more) we can avoid most of these thread collisions by turning HT off. By also tweaking the affinitymask setting manually and de-selecting one core we can avoid these thread collisions almost entierly at a small penalty in texture loading and load time.

 

FSX can still make good use of hyperthreading for better textureloading and load times. (That's what FSX is designed to use multi core for) But activating HT on a Quad-core allways exposes the risk of thread collissions . The risk of these can once again be reduced a lot by tweaking the affinitymask manually. The default affinitymask is not optimal here.

I guess my main question to you would be how do these thread collisions manifest themselves on a quad core with HT enabled i.e. what do I need to look for to confirm that this problem is effecting me?

 

I'm not clear if you are saying that you need to disable HT through BIOS *and* use an AffinityMask (14) to eliminate these thread collisions or that you can leave HT enabled in BIOS and use an AffinityMask (84) to acheive the same thing.

 

The weird thing is that you can find a number of people who will argue that having HT enabled and utilised by FSX (eg AM=254) improves their FSX experience.

 

It's implemented in the way that FSX default affinitymask only assigns every other core when it detects a Hyperthreaded CPU. So you end up with the same number of texture&terrain loaders as you would on the same CPU with HT turned off.

 

So on a single core with HT it won't assign any texture&terrain loader and the default affinitymask=1. The same as on a pure single-core. The performance with HT on is however greatly improved as Windows will shedule some threads that arn't FSX mainthread to run on the HyperThreaded core.

If you were to treat it as a dual-core CPU by setting affinitymask=3 and in that way assign a texture&terrain loader on the HyperThreaded core you'll get a lot of stutters from thread collisions between the mainthread and the texture&terrain loader sharing the same physical core.

OK so effectively what you're saying is that by default FSX sets it's own AM to disable the virtual cores on single and dual core HT CPUs, but because Quad (and greater) core HT CPUs weren't around when the latest FSX service pack was released this function wasn't programmed and needs to be done manually !?! This would make sense.

 

/Edit:- Having re-read this I have answered (I think) my own qurestions.

 

1) Thread collisions manifest themselves as stutters within FSX.

2) FSX obviously doesn't need HT disabled in BIOS on single or dual core HT enabled CPUs, I guess because it automatically sets the relevent AM. In which case I guess it's safe to assume that you don't have to disable HT in BIOS on a quad (or greater) core CPU as long as you manually set the relevent AM.

Share this post


Link to post
Share on other sites

Interesting discussion.  I'll add that most of what I know of the affinity mask variable is thanks to SAAB340's excellent analysis posted elsewhere here on avsim.

 

I get the best performance using AffinityMask=244.  With that AM setting the cores of a quad core processor run like so (00101111).  Setting FSX's main thread to run on core 1 with no Hyperthreading on that core seems to be the key.  The texture loading threads run on the remaining two cores with Hyperthreading on which seems to result in the best performance.

 

I tried many other options and found, just as you state SAAB340, having a Hyperthreaded core associated with FSX's main thread caused periodic stutters and an unsteady frame rate.  One example of an affinity mask that caused stuttering from thread collisions is AM=252(00111111).

 

So to answer the OP's question, yes HyperThreading on, but with the caveat of using an AffinityMask set to allow a "hybrid" of both HT off for the core with the main thread, along with HT on for the texture loading threads.

  • Upvote 1

Simon

Share this post


Link to post
Share on other sites

 

I guess my main question to you would be how do these thread collisions manifest themselves on a quad core with HT enabled i.e. what do I need to look for to confirm that this problem is effecting me?/

 

Edit:- Having re-read this I have answered (I think) my own qurestions.

1) Thread collisions manifest themselves as stutters within FSX.

 

PieEater, what I observed when setting an AM that caused thread collisions was an unsteady frame rate that would drop from 30 down to around 18 quite regularly.  This issue was eliminated by not allowing Hyperthreading on the core assigned to FSX's main thread via the AM I talk about in my previous post.


Simon

Share this post


Link to post
Share on other sites

Zap

I would be interested to see your results when using AM set in FSX and using cmd.exe (or via the Task Manager) to set the Affinity ie external to FSX.

 

I use an app called Process Lasso (and I could be being deceived the Emperor's new clothes and all that) but FSX runs smoother (HT on or off) than any AM setting in FSX.

 

The other major point with HT on (plus an overclock) would be to see if the temperatures rose significantly. I acknowledge that MC and HT have come a long way since SP1 especially in SB/IB rigs. I did ask Phil if his opinion of HT has changed post SP2 - but did not receive a response. However there was not a major code change between SP1 and SP2 that could affect HT results.

 

We also need to remember that thread collisions may well occur randomly ie they may not be constant or occur during every type of simulation experience. As I said above try it with HT on or off and monitor the results. Don't forget with many tweaks we expect to see what we expect to see.

I am indebted to thr comments in this discussion.

pH

Share this post


Link to post
Share on other sites

Interesting discussion.  I'll add that most of what I know of the affinity mask variable is thanks to SAAB340's excellent analysis posted elsewhere here on avsim.

 

I get the best performance using AffinityMask=244.  With that AM setting the cores of a quad core processor run like so (00101111).  Setting FSX's main thread to run on core 1 with no Hyperthreading on that core seems to be the key.  The texture loading threads run on the remaining two cores with Hyperthreading on which seems to result in the best performance.

 

I tried many other options and found, just as you state SAAB340, having a Hyperthreaded core associated with FSX's main thread caused periodic stutters and an unsteady frame rate.  One example of an affinity mask that caused stuttering from thread collisions is AM=252(00111111).

 

So to answer the OP's question, yes HyperThreading on, but with the caveat of using an AffinityMask set to allow a "hybrid" of both HT off for the core with the main thread, along with HT on for the texture loading threads.

Thanks so much for that, it makes the situation very clear and your AM of 244 makes a lot of sense so I'm going to give that a go for a while and see how it works out.

Share this post


Link to post
Share on other sites

The other major point with HT on (plus an overclock) would be to see if the temperatures rose significantly.

I have tested this myself on my overclocked system (2700k @ 4.8Ghz) by running a stock IBT set, once with Hyperthreading enabled and again with it disabled, one of the cores got 1c hotter when HT was enabled. I have mid range air cooling, nothing fancy.

 

I also tested my ability to overclock with HT disabled and was not able to acheive anything stable over what I can with HT enabled.

 

On my system I can definitively state that having HT enabled effects neither my temperatures nor my overclocking ability.

Share this post


Link to post
Share on other sites

I use an app called Process Lasso

I've come across this before but never tried it, is it worth giving it a go?

Share this post


Link to post
Share on other sites

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