PDA

View Full Version : Hyperthreading off = stutters off.


Mad G
10-16-2011, 08:21 PM
S!

Simple like that. It worked for me. Finally a more fluid flight, but near clouds and deck flight, still thereĀ“s a hit, not so bad as before. Everything in High but Forrest Medium and vsync, shadows and grass on. Some mods too. Hope helps other people.

SP!

Ataros
10-16-2011, 08:28 PM
This works. Never played ArmA or CloD with HT on. You can disable it in bios btw.

Tvrdi
10-16-2011, 09:16 PM
always was.....HT OFF when gaming...

Kwiatek
10-16-2011, 09:26 PM
I dont have such function in my bios - Asus P5KC? I got Q6600@3.2 Ghz and these cpu dont use HT?

BTW i have a lot of stutters/freezes in CLOD - expecially over cities and when other planes is coming. I dont know how it was before patches beacuse dont try CLOD too much, now i got new ATI HD 6870 and even with quite good fps i got a lot stutters??

Ataros
10-16-2011, 09:31 PM
I dont have such function in my bios - Asus P5KC? I got Q6600@3.2 Ghz and these cpu dont use HT?

BTW i have a lot of stutters/freezes in CLOD - expecially over cities and when other planes is coming. I dont know how it was before patches beacuse dont try CLOD too much, now i got new ATI HD 6870 and even with quite good fps i got a lot stutters??

Try reducing texture quality to high from original, landscape shading to medium, SSAO off, and excluding both Steam/1C and Documents/1C directories from antivirus real-time shields. Check out link #8 in my sig just in case.

335th_GRAthos
10-16-2011, 09:58 PM
How does this work?

You switch off Hyperthreading at BIOS?

Will the system (Win7-64) boot normally after the change?
(I remember hearing of problems with WinXP and the first generation of PIV HT CPUs after such a change...)

~S~

katdogfizzow
10-16-2011, 10:57 PM
Always been off..but still a few hiccups on beta2 here v15866 , not very much; but there

Mad G
10-16-2011, 11:01 PM
How does this work?

You switch off Hyperthreading at BIOS?

Will the system (Win7-64) boot normally after the change?
(I remember hearing of problems with WinXP and the first generation of PIV HT CPUs after such a change...)

~S~

Yes, disable it in BIOS. Win 7 will boot normally.

LoBiSoMeM
10-17-2011, 12:35 PM
AMD here, always "off"! LOL!

LcSummers
10-17-2011, 03:46 PM
AMD here, always "off"! LOL!

Same, here!!!!:grin:

Kankkis
10-17-2011, 05:22 PM
I can confirm, disabling hyperthreading reduced LOT of stuttering.

III/JG53_Don
10-17-2011, 06:32 PM
Unfortunately I'm not able to disable HT in my XPS 15 Bios :-/

Would it make a difference if I just disable the HT cores for the launcher.exe of CoD? :confused:

Whiski
10-17-2011, 06:36 PM
If I turn off HT now, will I have to turn it back on once we get multi-core support?

Whiskey

LoBiSoMeM
10-17-2011, 06:44 PM
If I turn off HT now, will I have to turn it back on once we get multi-core support?

Whiskey

Multicore processing isn't the same as Intel HyperCrap! :grin:

You have an AMD CPU, you don't have HyperCrap!

yakaddict
10-17-2011, 08:44 PM
Multicore processing isn't the same as Intel HyperCrap! :grin:

You have an AMD CPU, you don't have HyperCrap!

Hypercrap? I smell a flame war in the kindling...

Space Communist
10-17-2011, 08:58 PM
Hmm, well my Core i5 never had any hyperthreading, which explains why the game has always run fine for me I guess!

LoBiSoMeM
10-17-2011, 09:47 PM
Hypercrap? I smell a flame war in the kindling...

No flame. We today have X4, X6, X8 CPUs, and this proprietary tech from Intel have issues regards performance with some apps. We AMD customers don't need to bother ;)

ZaltysZ
10-18-2011, 06:52 AM
I don't see any difference with HT on and HT off in CoD. In fact, none of my sims get stutters related to HT.

There is little utility here: http://technet.microsoft.com/en-us/sysinternals/cc835722.aspx , which will show cpu mapping if it is run with "-c" parameter.

Usual mapping for i7 9xx with HT is: A=[0,1], B=[2,3], C=[4,5], D=[6,7]. This means that virtual CPUs 0 and 1 are in fact a single hyperthreaded core and so on. This is most common mapping, but it is done by BIOS, so mainboard manufacturer still has ability to make a surprise. It is important to know the mapping surely if you are going to use HT with manually set affinity masks.

HT is pretty nice thing, but it requires certain conditions for noticeable performance gains, whose are usually achievable only by specially designed applications, however even non HT aware applications usually benefit from HT to some extent.

Most problems start when two logical cores, belonging to same physical core, are treated as fully separate physical cores. I.e., if two heavy threads are put on cores 6 and 7 (same physical core), then they will run very slow, if compared to situation when they are put on cores 4 and 6 (2 separate physical cores). This must be always be taken into account, when setting affinity masks, and setting manual affinity masks is a must sometimes (i.e. thread scheduler likes to condense everything on to single physical CPU, while thinking it is 2 CPUs).

Those who have stutters with HT on, have you tried running with HT and custom affinity mask? I.e. putting CoD on cores 2, 4, 6 (counting from 0).

335th_GRAthos
10-18-2011, 08:38 AM
Wow, thank you Zalty for this information.

Until now, we had Process Affinity =
=1 - core 0
=2 - core 1
=3 - core 0+1
=4 - core 2
=5 - core 0+2
=6 - core 1+2
=7 - core 0+1+2
=8 - core 3
=9 - core 0 + 3
=10 - core 1 + 3
=11 - core 0 + 2 + 3
=12 - core 2 + 3
=13 - core 0 + 2 + 3
=14 - core 1 + 2 + 3
=15 - core 0 + 1 + 2 + 3

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

~S~

Helrza
10-18-2011, 08:42 AM
Wow, thank you Zalty for this information.

Until now, we had Process Affinity =
=1 - core 0
=2 - core 1
=3 - core 0+1
=4 - core 2
=5 - core 0+2
=6 - core 1+2
=7 - core 0+1+2
=8 - core 3
=9 - core 0 + 3
=10 - core 1 + 3
=11 - core 0 + 2 + 3
=12 - core 2 + 3
=13 - core 0 + 2 + 3
=14 - core 1 + 2 + 3
=15 - core 0 + 1 + 2 + 3

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

~S~

By manually changing the process affinity mask threw the taskmanager.

ZaltysZ
10-18-2011, 09:27 AM
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
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
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
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
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
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:


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