(12-13-2010, 07:15 AM)NaturalViolence Wrote: [ -> ]Dolphin only has two threads, therefore it can either run on two threads at 100%, 4 threads at 50%, or 8 threads at 25%. Therefore total load on an 8 thread cpu is always going to be 25% if it's working properly no matter what you do.
You just equated each logical HT thread as being equal to a physical core. If what you said is true, emulation is slowed down by 1/2 by HT because I have twice as many threads. If HT was off, I would have 4 threads, and it can run at 50% CPU load instead of the 25% I am getting. You argue this again.
Dolphin CAN'T run on two threads (that are physically separate cores) at 100% each on this CPU. I made this point emphatically. That's the key point. You have eloquently described how this load is distributed, which while interesting, isn't really relevant, unless you are trying to prove that HT causes less CPU utilization.
Quote:By turning off dual core you now have one software thread jumping between 4 logical threads instead of two software threads jumping between 4 logical threads. So the load will be cut in half.
That wasn't the point. The point was that 100% load of ONE logical thread is about 1/8th CPU power, which as you make incredibly clear is correct since it is 1/8 threads. But there's FOUR cores. You are proving my point, if it was fully utilizing one core, it would be 1/4. But no, it seems that, on this CPU at least, each logical thread per core is equally divided among that core. And since Dolphin can only use 2 threads at once, it isn't fully utilizing two cores. If HT was off, I'd have 4 threads, and each thread would be 25% CPU. And Dolphin can use two threads, giving an eloquent argument how this would be ideally 50% CPU usage yourself:
Quote:I think the problem is you seem to be trying to connect "dual core" with the number of cores that can be used. Dual core means it can use two core at the same time, but it can still use any of the available cores. I have a quad core cpu with 4 physical threads and 4 logical threads. I can either turn lock threads to cores on which will keep the software threads (the software running on a thread) from changing to another thread. Therefore I will have 2 cores running at 100% for a total load of 50%. If I turn lock threads to cores off I will have 4 threads running at 50% each since the software will be jumping between all 4 cores even though it's only able to use two at the same time. So I will still have 50% load. Likewise if I turned off dual core I would have a 25% total load regardless of whether lock threads to cores is off or on. With it on I would have 1 thread running at 100%. With it off I would have 4 threads running at 25%, both would give me 25% load total. You get it? That one piece of software is jumping between all 4 threads.
Yes yes all of that is true. But, again, I DON'T have 25% load with Dual Core off or anywhere above 25% with it on. Why? Your argument would seem to be that it's because I have 8 threads. Again you are proving my point. If I had 4 threads (HT off), then the exact above would apply to my processor, and I WOULD have 25% load per thread, or 50% load with Dual Core on.
Unless...
Quote:If you had HT off your cpu load would double since you would have only 4 logical threads instead of 8. But the speed would not change. Dual threaded software will run at the same speed on a dual core or a quad core cpu even though the load on the dual core will be 100% while the load on the quad core will be 50%.
You just equated each logical HT thread as being equal to a physical core again. And HT as turning my quad core into an eight core!
Seriously, I am not saying I am definitely right here, but your arguments aren't making any sense. I may know nothing about HT, but I have an extremely firm grasp of logic. Perhaps this post will clear things up, but if it doesn't, I don't care to argue further. Thank you for trying to explain it to me. I know this is all extremely difficult to communicate, especially on a message board.