Official Fulqrum Publishing forum

Official Fulqrum Publishing forum (http://forum.fulqrumpublishing.com/index.php)
-   IL-2 Sturmovik: Cliffs of Dover (http://forum.fulqrumpublishing.com/forumdisplay.php?f=189)
-   -   Hyperthreading off = stutters off. (http://forum.fulqrumpublishing.com/showthread.php?t=27129)

ZaltysZ 10-18-2011 09:27 AM

Quote:

Originally Posted by 335th_GRAthos (Post 350724)
I am very bad with (binary maths) so, what number do we need in order to make the game use cores 0+2+4+6 ????

In affinity mask each bit represents one CPU: 1 value - use CPU, 0 value - don't. Bits are counted from right to left, so you need do the same with CPUs. In our case, that would be: 7, 6, 5, 4, 3, 2, 1, 0. Now replace wanted CPUs with 1s and unwanted with 0s. You will get: 0, 1, 0, 1, 0, 1, 0, 1 or simply 1010101. Convert that from binary to decimal (use Windows calculator) and get a mask of 85.

klem 10-18-2011 10:00 AM

Quote:

Originally Posted by ZaltysZ (Post 350752)
In affinity mask each bit represents one CPU: 1 value - use CPU, 0 value - don't. Bits are counted from right to left, so you need do the same with CPUs. In our case, that would be: 7, 6, 5, 4, 3, 2, 1, 0. Now replace wanted CPUs with 1s and unwanted with 0s. You will get: 0, 1, 0, 1, 0, 1, 0, 1 or simply 1010101. Convert that from binary to decimal (use Windows calculator) and get a mask of 85.

Is it better to assign CoD to the first threads of each core in this way or to turn off Hyperthreading in BIOS and assign it to all cores (=15).

And why?

ZaltysZ 10-18-2011 11:49 AM

Quote:

Originally Posted by klem (Post 350765)
Is it better to assign CoD to the first threads of each core in this way or to turn off Hyperthreading in BIOS and assign it to all cores (=15).

And why?

First or second logical core of physical core isn't important. It is important to not assign to both logical cores of the same physical core. You can achieve the same by disabling HT in BIOS (you will have single logical core per physical one), but then you may loose performance in other programs (i.e. HT is really helpful in encoding). I don't use PC just for gaming, so disabling HT isn't very attractive thing for me.

P.S.1: Windows 7 avoids putting threads on same physical core when others are free, unless thread is HT aware.
P.S.2: Some applications check CPU count and then decide how many threads it will spawn. Depending on counting method used, they may simply spawn too many threads for given mask (i.e. you have 4 cores, but give only 2 to application; application still sees that you have 4 cores total and spawns 4 threads, instead of optimal 2). If such applications does not have a way to be told about cpu count or thread count, HT might be problematic and probably should be disabled.

SEE 10-18-2011 02:50 PM

In the Nvidea control panel is the option of 'threaded optimisation' which can be 'auto', 'on' or 'off'. I did some reading using google and there are a wide range of opinions regards this parameter. I just tried the Black death track with it switched 'off'. (some say the 'auto' feature is bugged but may be that applies to earlier Drivers)

I didn't get any stutters or pauses (just a drop in fps as the bombs hit) but should this be 'on' and how does it relate to this discussion regards hyperthreading (especially for us whose BIOS doesn't allow the user to disable HT)?

klem 10-18-2011 04:07 PM

Quote:

Originally Posted by ZaltysZ (Post 350811)
First or second logical core of physical core isn't important. It is important to not assign to both logical cores of the same physical core. You can achieve the same by disabling HT in BIOS (you will have single logical core per physical one), but then you may loose performance in other programs (i.e. HT is really helpful in encoding). I don't use PC just for gaming, so disabling HT isn't very attractive thing for me.

P.S.1: Windows 7 avoids putting threads on same physical core when others are free, unless thread is HT aware.
P.S.2: Some applications check CPU count and then decide how many threads it will spawn. Depending on counting method used, they may simply spawn too many threads for given mask (i.e. you have 4 cores, but give only 2 to application; application still sees that you have 4 cores total and spawns 4 threads, instead of optimal 2). If such applications does not have a way to be told about cpu count or thread count, HT might be problematic and probably should be disabled.

ok I may try that. I don't have bad performance generally but I do get stutters on line.

335th_GRAthos 10-18-2011 04:29 PM

Quote:

Originally Posted by ZaltysZ (Post 350752)
In affinity mask each bit represents one CPU: 1 value - use CPU, 0 value - don't. Bits are counted from right to left, so you need do the same with CPUs. In our case, that would be: 7, 6, 5, 4, 3, 2, 1, 0. Now replace wanted CPUs with 1s and unwanted with 0s. You will get: 0, 1, 0, 1, 0, 1, 0, 1 or simply 1010101. Convert that from binary to decimal (use Windows calculator) and get a mask of 85.


[Standing Ovation]

Thanks!
(we started with numbers 1,2,3,4 some years ago; then moved to 15 six months ago; now 85! :o This is progress my friends! :D)


I have been flying yesterday with HT = off
I must say I did not have any stutters but, I also realised I never had any stutters before.
So, I wanted to turn HT=on again and test but I also wanted to control better the use of CoD on the cores (and identify how much CPU-time is used by other processes).

Interestingly enough, I had exactly the same concern as SEE (the NV threaded optimisation usage).

~S~

Kankkis 10-18-2011 05:17 PM

Tryed yesterday first time without ht, no bad stutter, today i played with ht, no bad stutter. So i first thinking disabling ht was the cure but no it was yesterday official patch that was reduced much my stutter.

CaptainDoggles 10-18-2011 05:28 PM

Quote:

Originally Posted by ZaltysZ (Post 350752)
In affinity mask each bit represents one CPU: 1 value - use CPU, 0 value - don't. Bits are counted from right to left, so you need do the same with CPUs. In our case, that would be: 7, 6, 5, 4, 3, 2, 1, 0. Now replace wanted CPUs with 1s and unwanted with 0s. You will get: 0, 1, 0, 1, 0, 1, 0, 1 or simply 1010101. Convert that from binary to decimal (use Windows calculator) and get a mask of 85.

For those who enjoy math, the conversion from binary (base 2) to decimal (base 10) works out like this:

Code:

1010101 = 1*2^0 + 0*2^1 + 1*2^2 + 0*2^3 + 1*2^4 + 0*2^5 + 1*2^6
        =  1  +  0  +  4  +  0  +  16  +  0  +  64
        = 85



All times are GMT. The time now is 07:08 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.