(06-21-2012, 01:57 PM)skid Wrote: [ -> ] (06-21-2012, 01:25 PM)NaturalViolence Wrote: [ -> ]What your referring to is skids idea of putting the HLE dsp emulator on its own thread (essentially adding an HLE on thread option).
I was thinking everything other than the CPU on a thread. So that is not just the DSP HLE, but the controllers, memory cards, Wii SD slot etc, all in one thread.
Good luck having precise interrupts timing with that though.
(06-21-2012, 01:57 PM)skid Wrote: [ -> ] (06-21-2012, 01:25 PM)NaturalViolence Wrote: [ -> ]To my knowledge no emulator in history has ever produced any speedup from multithreading the emulation of a single processor.
I'm not even sure if it is possible to multi-thread the emulation of a single processor - not counting the threading of the JIT compiler vs the execution.
I don't know what would be the point, there are so much data dependencies between JIT compiled instructions... at most you may be able to execute two groups of 3-4 instructions at the same time in a basic block, with a lot of synchronization that would kill performance.
you can multithread certain IO aspects of a processor, and gain from that, but fully multithreading the entire processor would display negative gains
Assuming you can get interrupts timing precise enough on several threads. As far as I know there is no good solution to that problem at the moment.
This was the most recent thread I saw on this topic, so I'm going to bump this one.
I think I have a pretty clear understanding of why the 2+1 main threads of Dolphin cannot be broken up any further. What I n00bishly don't understand, then, is why on a quad-core 2500K, I still see each of the four cores are pretty heavily loaded during emulation, and I also see that there are 20 threads running for the Dolphin executable... Well I mostly understand the latter fact -- I assume there are a lot of less processor-intensive worker threads for things such as controller I/O -- but is all of that enough to put a 50%+ load on a 3.6+GHz core? And does that mean that there may still be a performance advantage to having more cores, even though there are only up to three "main" threads on Dolphin?
Thanks in advance for the info.
(07-05-2012, 08:41 AM)RocketGuy3 Wrote: [ -> ]I also see that there are 20 threads running for the Dolphin executable...
lol then something is wrong XD
20 threads are nothing. and is common for many apps
(07-05-2012, 09:06 AM)Squall Leonhart Wrote: [ -> ]20 threads are nothing. and is common for many apps
Woops, I was thinking of processes XD
(07-05-2012, 08:41 AM)RocketGuy3 Wrote: [ -> ]This was the most recent thread I saw on this topic, so I'm going to bump this one.
I think I have a pretty clear understanding of why the 2+1 main threads of Dolphin cannot be broken up any further. What I n00bishly don't understand, then, is why on a quad-core 2500K, I still see each of the four cores are pretty heavily loaded during emulation, and I also see that there are 20 threads running for the Dolphin executable... Well I mostly understand the latter fact -- I assume there are a lot of less processor-intensive worker threads for things such as controller I/O -- but is all of that enough to put a 50%+ load on a 3.6+GHz core? And does that mean that there may still be a performance advantage to having more cores, even though there are only up to three "main" threads on Dolphin?
Thanks in advance for the info.
That's because dolphin indeed uses more then just 3 cores,it has more then 3 threads and its left to windows to decide on which cpu core they will run.
It's just that these threads don't affect speed,thats why dolphin is not consider "true" quad core application
Quote:This was the most recent thread I saw on this topic, so I'm going to bump this one.
I think I have a pretty clear understanding of why the 2+1 main threads of Dolphin cannot be broken up any further. What I n00bishly don't understand, then, is why on a quad-core 2500K, I still see each of the four cores are pretty heavily loaded during emulation, and I also see that there are 20 threads running for the Dolphin executable... Well I mostly understand the latter fact -- I assume there are a lot of less processor-intensive worker threads for things such as controller I/O -- but is all of that enough to put a 50%+ load on a 3.6+GHz core? And does that mean that there may still be a performance advantage to having more cores, even though there are only up to three "main" threads on Dolphin?
Thanks in advance for the info.
1. Yes dolphin has 20+ threads
2. Most of those threads don't need very much processing power, almost all of the processing power that dolphin uses is used by two main threads
3. Yes the remaining threads add up to a decent amount of processing power, although 50% of one core on a 2500K sounds a bit high
4. Yes there is a performance advantage to having a quad core cpu over a dual core cpu because of this. But it is small, 5-10% in most titles
5. Thank you for not making a new thread
Quote:That's because dolphin indeed uses more then just 3 cores,it has more then 3 threads and its left to windows to decide on which cpu core they will run.
It's just that these threads don't affect speed,thats why dolphin is not consider "true" quad core application
They do affect performance. It's just not a huge difference.