Dolphin, the GameCube and Wii emulator - Forums

Full Version: Why would hyperthreading hurt dolphin performance?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
I ask that more as "Hyperthreading won't hurt dolphin performance, who's been spreading the lies?" =p

All of the "logical" cores are locked to your physical cores, there aren't two "logical" and two "physical" there's four logical determined by two physical.

If you don't lock to thread your game will simply hop between the cores and use all of your cache as it normally would. Disabling hyperthreading in the bios will

a) give a tiny minuscule speedup because you won't be hopping
b) give a tiny miniscule slow down because your OS and background apps will be in two threads.

Can someone tell me what I'm missing?
Hyperthreading only hurts performance if lock threads to cores is enabled. This is because dolphin will be locked to using one physical core and one virtual core. Disabling lock threads to cores fixes that and allows Dolphin to run correctly on hyperthreaded processors.
No. There's no such thing as a physical and virtual core. All of the cores are the same... the threads are all identical and you won't get better performance from one thread over the other.

The physical cores are the actual device. The "logical" refers to the actual threads. It's not that you've got "two physical and two logical" you have "two physical and four logical" and the logical ones are all identical because it's just your cache being split twice.

Disabling "lock to threads" is a given, since the Lcache is split amongst the threads.
Quote:and the logical ones are all identical because it's just your cache being split twice.

You clearly don't know what logical threads are. Although logical threads are identical they have nothing to do with "splitting the cache". Nehalem based cpus use a dynamic cache allocation system not a static cache allocation system. Utilizing multiple logical threads on a single physical thread simply allows a physical thread to process instructions from a different logical thread when a halt command is issued, instead of sitting idle.

Quote:No. There's no such thing as a physical and virtual core. All of the cores are the same... the threads are all identical and you won't get better performance from one thread over the other.

How on earth did you infer that he was saying that from his post?

All he said was that if you use lock thread to cores dolphin will only use the first two logical threads and therefore only one physical thread will be used, which will result in a massive slowdown. And this is completely true. So does that answer your question or am I misunderstanding you?

Also even if you turn off lock threads to cores it is still possible for dolphin to use two logical threads that belong to the same physical thread by accident while it is "hoping". But since it won't happen a lot I doubt the difference would be significant. Also I notice that although most people using HT are affected by this issue not all are. Many people report no difference in performance with HT on or off or with lock threads to cores on or off. That I cannot explain. In theory if you have lock threads to cores off it shouldn't make a difference, but that isn't ALWAYS true.
Yes, that's what I was saying even if my wording was a bit off.
Has "lock threads to cores" sped up the emulator for anyone? I think that option is a good candidate for removal.
In normal circumstances no. However if you are running fraps or other screen recording software it is a must have since you can turn it on and set the affinity for each of them to prevent them from using the same physical threads. This results in a pretty substantial speedup.
thats why windows provides affinity configuration. and performance when frapsing is generally no different when spread across all cores than when each process is locked to its own number of cores

Neoh4x0r

(10-16-2010, 05:47 AM)hungry man Wrote: [ -> ]I ask that more as "Hyperthreading won't hurt dolphin performance, who's been spreading the lies?" =p

All of the "logical" cores are locked to your physical cores, there aren't two "logical" and two "physical" there's four logical determined by two physical.

If you don't lock to thread your game will simply hop between the cores and use all of your cache as it normally would. Disabling hyperthreading in the bios will

a) give a tiny minuscule speedup because you won't be hopping
b) give a tiny miniscule slow down because your OS and background apps will be in two threads.

Can someone tell me what I'm missing?

I had mentioned something to Major on the wiki about this: http://wiki.dolphin-emu.org/index.php?ti...talk:MaJoR

My problem was that DSP LLE in Twilight Princess was causeing audio skipping and everything that I had read said to overclock the system from 3.4GHz to 4.0+Ghz.

I have an Intel Core i7-2600 (as can be seen in the wiki discussion link above) that cannot be manually overlocked (stays somewhere between 3.4GHz and 3.6Ghz).

Disabling HT in the bios, improved performain for me (with Twilight Princess) I was running at 30fps, with no audio skipping using DSP LLE --- hyrule field still slowsdown slightly (but I don't have that annoyting audio skip)
-------

My main issue is that Windows 7 x64 task manager was showing that I had 8 cores (I know this is a quad-core) ... but I donot know if that was causing dolphin to think that there are 8 physical cores with 2 logical threads per core.

I know this might not work for everyone ... but I was asking Major about adding it to the performance guide so that people, who had similiar problems, would have another course of action (when nothing else is working for them).

EDIT: It just hit me ... this thread is from 2010, so it seems I was not the first one to suggest that enabling/disabling HT could affect dolphin performance significally (when combined with DSP LLE) -- I only suggested this to Major a few days ago on 24 September 2012.
I knew it hyperthreading would mess with LLE atleast !
That's why I always recommend to people to disable it when they have lle problems,sound skipping etc..even though I haven't tested this personally ( I dont have ht cpu )
Pages: 1 2