Dolphin, the GameCube and Wii emulator - Forums

Full Version: Dolphin i7 mobile problem
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6
Quote:Well HT does change it as there wouldn't be 8 threads or non-physical threads without it? And it would appear that the load gets spread over 4 of the 8 threads at about 50% CPU somehow if lock threads to cores is not on, if it is on it uses 2 threads at max CPU. Either HT is the problem, there is something weird with the CPU otherwise, or there is a problem with Dolphin, because with Dual Core on it should be able to use more than a cap of 25% CPU. IIRC PCSX2 had the same issue, but didn't have speed issues so it didn't really matter, I really think HT is the problem here.

Why is that wrong? Using every other thread is the correct behavior since every pair of logical threads belong to the same physical thread.
(12-11-2010, 02:52 PM)NaturalViolence Wrote: [ -> ]
Quote:Well HT does change it as there wouldn't be 8 threads or non-physical threads without it? And it would appear that the load gets spread over 4 of the 8 threads at about 50% CPU somehow if lock threads to cores is not on, if it is on it uses 2 threads at max CPU. Either HT is the problem, there is something weird with the CPU otherwise, or there is a problem with Dolphin, because with Dual Core on it should be able to use more than a cap of 25% CPU. IIRC PCSX2 had the same issue, but didn't have speed issues so it didn't really matter, I really think HT is the problem here.

Why is that wrong? Using every other thread is the correct behavior since every pair of logical threads belong to the same physical thread.

Huh? The fact that it only uses 50% of those threads for some reason? And that no matter what the settings, it will not use more than 25% CPU, indicative of one physical core?

It sounds like HT DOES slow things down, unless 25% CPU is normal/acceptable?

I really don't see how this is so complicated to understand as I am explaining it. Dual Core + 25% MAX CPU usage = Something's not right. I am not saying the problem lies with Dolphin. But perhaps the devs will be so cool and innovative as to find a solution. Or perhaps it's not possible, or they have better things to do, whatever, that's not my call. It's still a worthy issue to note at least, it comes up.

I have noticed yesterday this problem doesn't exist with 32-bit Dolphin 2.0, but it's much slower overall anyway so it's not much of a help, so either 64-bit is the problem for some reason, or there IS a solution. I haven't tried latest SVN 32-bit. I've messed with enough versions.
Quote:It sounds like HT DOES slow things down, unless 25% CPU is normal/acceptable?

It should be. Please open task manager while playing a game in dolphin, go to the performance window and take a screenshot. I am still not sure whether you are saying it uses all 8 threads at 25% each or 4 threads at 50% (every other thread), both would give you 25% total usage.
(12-12-2010, 06:36 AM)NaturalViolence Wrote: [ -> ]
Quote:It sounds like HT DOES slow things down, unless 25% CPU is normal/acceptable?

It should be. Please open task manager while playing a game in dolphin, go to the performance window and take a screenshot. I am still not sure whether you are saying it uses all 8 threads at 25% each or 4 threads at 50% (every other thread), both would give you 25% total usage.

25% CPU is normal despite using Dual Core? Again, that sounds like HT is causing it not to use two physical cores, unless there is a reason other than HT.

Yes, 4 threads at 50% [== 25% total CPU] (at least that's what it looks like, they spike up and down and other threads are slightly in use for other stuff so it's messy.) Locking Threads to Cores gives 2/8 at 100%. I am sorry if I am not clear in my explanations, but I think this should clarify it.
Is it every other thread that's being used? If so then that is completely normal.

Think of it like this. With a cpu that has 4 physical threads and only 1 logical thread per physical thread like mine all 4 cores should be running at 50% without lock threads to cores and two cores should be running at 100% with lock threads to cores on. Your cpu has 2 logical cores per physical core. However dolphin is only using 1 logical core per physical cores since that is far more efficient. Therefore since you have 8 logical threads total the cpu load is read as 25%. Does that make sense to you?
(12-12-2010, 08:42 AM)NaturalViolence Wrote: [ -> ]Is it every other thread that's being used? If so then that is completely normal.

Think of it like this. With a cpu that has 4 physical threads and only 1 logical thread per physical thread like mine all 4 cores should be running at 50% without lock threads to cores and two cores should be running at 100% with lock threads to cores on. Your cpu has 2 logical cores per physical core. However dolphin is only using 1 logical core per physical cores since that is far more efficient. Therefore since you have 8 logical threads total the cpu load is read as 25%. Does that make sense to you?

Not really... not trying to be a pain in the ass.

My cpu sounds like yours. It has 4 physical threads and 1 logical thread per physical thread = 8 threads.
(Only Dolphin says there are "16 cores", or 2 logical cores per physical core if it means threads.. Windows, cpu-z, and something else I can't recall says I have 8 threads.)

How could all 4 [physical] cores be running at 50% if only 2 physical cores are used by Dolphin?

If this is becoming a pain in the ass, well, don't worry about it. But if HT is what causes Dolphin to only use 25% max CPU instead of using two actual physical cores [which would put it over 25%], the HT is a speed-down with Dolphin. Again, unless there is another explanation that doesn't involve logical cores (as without HT there wouldn't be any(?))
Sigh.....

I need two things from you before I can continue.

1. The screenshot that I mentioned earlier

2. The exact model of cpu you have

Quote:My cpu sounds like yours. It has 4 physical threads and 1 logical thread per physical thread = 8 threads.

That's 4 threads, not 8. My cpu has 4 threads. 4 physical threads and 1 logical thread per physical thread means I have 4 logical threads since 4 x 1 = 4. I'll make this easier for you. Physical threads are how many cores you actually have. Logical threads are how many cores the os thinks you have (it's actually a lot more complex than this but to try and get you to understand I'm giving you a simpler explanation). So with my cpu I have 4 cores (physical threads). And my os thinks I have 4 cores since I have 1 logical thread per physical thread. HT gives each physical thread 2 logical cores. So it tricks the os into thinking a 4 core cpu is an 8 core cpu. Does THAT make sense to you?

Dolphin also has a bug where if you have 8 logical threads it will think you have 16. But it doesn't actually affect anything so don't worry about it.

Quote:How could all 4 [physical] cores be running at 50% if only 2 physical cores are used by Dolphin?

Because the software jumps from 1 core to another and task manager only gives you a readout every 1-2 seconds.

Quote:If this is becoming a pain in the ass, well, don't worry about it. But if HT is what causes Dolphin to only use 25% max CPU instead of using two actual physical cores [which would put it over 25%], the HT is a speed-down with Dolphin. Again, unless there is another explanation that doesn't involve logical cores (as without HT there wouldn't be any(?))

I can't tell you whether this is a problem or completely normal until you give me what I need. Which I listed above. And without ht you still have logical threads you just only have 1 per physical thread instead of 2. Also you're not being a pain in the ass. In fact this is good training for me considering my dream is to one day teach an introduction to computer science class at my university. I guarantee you by the end of this thread you will understand multi-threading.
OK, what's confusing is that it appears all threads (that are used directly by the OS) are "logical" threads. So what exactly is a "physical thread"?

I have an i7-720QM (1.6ghz/2.8 turbo)

The HP BIOS really sucks. I am not positive it is properly stepping up in speed, either.

Screenshot is attached.

Also as I mentioned, Dolphin 2.0 32-bit WILL use more than 25% total cpu... yet it's slower. That screenshot is attached too. (The first one is the 6441 64-bit, the one with 3 cores near 100% is the 2.0 32-bit)
Quote:OK, what's confusing is that it appears all threads (that are used directly by the OS) are "logical" threads. So what exactly is a "physical thread"?

The actual hardware. The physical cores themselves. Anytime you see the word logical think software, anytime you see the word physical think hardware. If you pull out your hard drive and put it in your hand you are holding a physical disk drive. But when you open my computer and look at C: that is a logical disk drive. You get it?

The first screenshot is the correct behavior, with load being divided perfectly between the 4 physical cores. While The second screenshot (from 2.0) is incorrect since it is using logical cores that belong to the same physical core. 25% should be the usage since 4 of the 8 logical cores are being used at 50% each. However all 4 physical cores are actually being used since each physical core has two logical cores and one logical core from each physical core is being used.
(12-12-2010, 03:46 PM)NaturalViolence Wrote: [ -> ]
Quote:OK, what's confusing is that it appears all threads (that are used directly by the OS) are "logical" threads. So what exactly is a "physical thread"?

The actual hardware. The physical cores themselves. Anytime you see the word logical think software, anytime you see the word physical think hardware. If you pull out your hard drive and put it in your hand you are holding a physical disk drive. But when you open my computer and look at C: that is a logical disk drive. You get it?

The first screenshot is the correct behavior, with load being divided perfectly between the 4 physical cores. While The second screenshot (from 2.0) is incorrect since it is using logical cores that belong to the same physical core. 25% should be the usage since 4 of the 8 logical cores are being used at 50% each. However all 4 physical cores are actually being used since each physical core has two logical cores and one logical core from each physical core is being used.

(12-12-2010, 03:46 PM)NaturalViolence Wrote: [ -> ]
Quote:OK, what's confusing is that it appears all threads (that are used directly by the OS) are "logical" threads. So what exactly is a "physical thread"?

The actual hardware. The physical cores themselves. Anytime you see the word logical think software, anytime you see the word physical think hardware. If you pull out your hard drive and put it in your hand you are holding a physical disk drive. But when you open my computer and look at C: that is a logical disk drive. You get it?

The first screenshot is the correct behavior, with load being divided perfectly between the 4 physical cores. While The second screenshot (from 2.0) is incorrect since it is using logical cores that belong to the same physical core. 25% should be the usage since 4 of the 8 logical cores are being used at 50% each. However all 4 physical cores are actually being used since each physical core has two logical cores and one logical core from each physical core is being used.

Is it even proper to call it a physical "thread"? Seems like there are just physical cores and logical threads. That's the confusing point. Anyways..

How do you know which logical threads belong to which physical cores?

4 physical cores? This would mean Dolphin is using more than 2 cores? I thought this was *impossible*? A heck of a lot of people sure think it is. Is the OS/CPU doing it, taking load from 2 logical threads and spreading it out to 4, and that's why it's only 50% on those 4? This is merely intellectual, but if it does that, wouldn't it break the perfect synchronization that the emulation requires? Guess not if it happens at that level.

Anyways, I still don't know why Dolphin will only use 25% max CPU.. with Dual Core on, if things were working as they ideally should and it was able to get max performance out of more than one physical core, that shouldn't be the case. If I only had one logical thread per physical core (no HT) like your CPU, and it did the same behavior (50% on 4 logical threads), I would get more like 50% max CPU, making HT the problem. Or would this not happen and it'd still use 25%, somehow. You tell me..

Interesting that 32-bit Dolphin (2.0?) on 64-bit Win7 on an i7-720qm is "broken" (sort of). It still says I am using more than 25% CPU though, weird? Guess the reporting isn't all that accurate with HT, since 100% of 2/8 threads that belong to the same physical core != 25% CPU. Is it the reporting perhaps that's the problem here?
Pages: 1 2 3 4 5 6