• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › General Discussion v
« Previous 1 ... 222 223 224 225 226 ... 367 Next »

Multi thread explanation?
View New Posts | View Today's Posts

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Multi thread explanation?
08-26-2011, 06:01 PM
#1
Exodeity
Unregistered
 
So I did some searching, and every question about having more than 2 threads for dolphin won't/can't work, but everytime they ask why, the answer is 'I can't remember'. Also, most of the threads are 2 years old.

Can someone give me an explanation on why/how it won't work? Or if you've made a breakthrough when it will work?

Thanks, useless having six cores and not being able to run 100% speed on some games =/
Reply
08-26-2011, 08:34 PM (This post was last modified: 08-26-2011, 08:38 PM by dannzen.)
#2
dannzen Offline
I liked to help people (but NO)
*******
Posts: 1,525
Threads: 5
Joined: Dec 2010
dolphin uses 1 gpuemulation thread 1 cpuemulation thread and 1 optional audio thread

nothing more...
the best single core performance gives the sandybridge cpu
because only the cpu thread from dolphin is capping your system
its the heaviest part to be emulated

(dolphin uses 2+1cores)
no tweaks no hacks no settings to change this
pure single thread performance is needed
because of that every 2core++ i-series intel cpu(with the same mhz) is beating the shit out of amd
EDIT by neobrain: that pic was kinda annoying..
EDIT by dannzen: don't fuck with my sig Dodgy
EDIT by neobrain: yet, I will keep doing it Tongue
EDIT by ???? : A WILD DACO APPEARS
EDIT by [SS]: Hey guys, what's going on here?
EDIT by dannzen: Gotta Catch 'em All!
EDIT by ???? : WILD DACO BROKE FREE FROM MASTER BALL
Find
Reply
08-26-2011, 09:10 PM
#3
SeeK Offline
Fullmetal Guitarist
**
Posts: 42
Threads: 1
Joined: Aug 2011
(08-26-2011, 08:34 PM)dannzen Wrote: dolphin uses 1 gpuemulation thread 1 cpuemulation thread and 1 optional audio thread

nothing more...
the best single core performance gives the sandybridge cpu
because only the cpu thread from dolphin is capping your system
its the heaviest part to be emulated

(dolphin uses 2+1cores)
no tweaks no hacks no settings to change this
pure single thread performance is needed
because of that every 2core++ i-series intel cpu(with the same mhz) is beating the shit out of amd
That's not answering his question.

I'd like some light on this matter as well. Not that I have any issues with it as such, I just like knowing more about the behind-the-scenes work of emulators like this. PCSX2 is dual-core only as well, the stated reason being that it simply wouldn't aid the emulation in any way to add more thread potential to the core outside of software rendering mode.
Intel i5 4670k @ 4.5GHz | ASUS R9-290 DC2 | 20GB Corsair PC3-12800 DDR3 RAM
Find
Reply
08-26-2011, 09:37 PM (This post was last modified: 08-26-2011, 09:42 PM by dannzen.)
#4
dannzen Offline
I liked to help people (but NO)
*******
Posts: 1,525
Threads: 5
Joined: Dec 2010
its a programming problem...
try to split up the calculation of 4*4 = 16 in 2 threads...
its possible... but in the end you are losing performance...

just feel free and rewrite dolphin
http://en.wikipedia.org/wiki/Thread_(computer_science)


just think about it a second
split up the calculation of the cpu thread in 4-8threads
at the end of this you have to syncronize this threads into one result

wiimote+audio+gpu+ki+effects+physik...
mix them together and you are getting the best desyncing and crashing dolphin version every
if you now want to fix the desyncing problem...
more cpu power is needed to sync these threads and every gain is gone
EDIT by neobrain: that pic was kinda annoying..
EDIT by dannzen: don't fuck with my sig Dodgy
EDIT by neobrain: yet, I will keep doing it Tongue
EDIT by ???? : A WILD DACO APPEARS
EDIT by [SS]: Hey guys, what's going on here?
EDIT by dannzen: Gotta Catch 'em All!
EDIT by ???? : WILD DACO BROKE FREE FROM MASTER BALL
Find
Reply
08-27-2011, 01:19 AM (This post was last modified: 08-27-2011, 01:21 AM by Zee530.)
#5
Zee530 Offline
Above and Beyond
*******
Posts: 1,747
Threads: 12
Joined: Jan 2011
Have you ever played jump rope before? try relating it to this as a person being a thread, the number of calories burned the performance you get and each time you get your foot stuck on the rope results to a crash, so 1 person good, 2 people better, from 3 people things start getting complicatedTongue but i believe in future this problem can be solved, lets just say the right breakthrough in hardware is yet to be made
My teacher was the one who used this example, people say he's crazy but he's still a mad genius
......?????
Find
Reply
08-27-2011, 01:54 AM (This post was last modified: 08-27-2011, 08:48 AM by vortextk.)
#6
vortextk Offline
Member
***
Posts: 247
Threads: 5
Joined: Jul 2011
There is a thread for the processor and a thread for the graphical chip from the gamecube/wii. There is also an optional extra one for sound. This was how the hardware of the system worked. The same reason old games don't magically play using more cores you're not going to see dolphin probably ever doing it either because they are trying to make software to emulate the hardware, not engineer a brand new setup that can run these games. If you want to play games better, buy a better processor or overclock more. Those are the options you can do on your end. The more accurate the emulation they achieve, I imagine the speeds will continually even if slowly go down.

(08-26-2011, 06:01 PM)Exodeity Wrote: Also, most of the threads are 2 years old.

This is also BS as I've seen like three of these kinds of threads pop up in the last week.
Dolphin Videos
[Image: sigtransborder5.png]
Find
Reply
08-27-2011, 08:22 AM
#7
kernel64 Offline
Core Member
****
Posts: 435
Threads: 8
Joined: Mar 2009
(08-26-2011, 09:10 PM)SeeK Wrote: PCSX2 is dual-core only as well, the stated reason being that it simply wouldn't aid the emulation in any way to add more thread potential to the core outside of software rendering mode.

Actually Pcsx2 went multi-thread a few revisions ago, but that's because PS2 is built around many co-processors which benefit from multi-threading. So far Dolphin is using three cores and it's going to stay like that for a while. I don't like the word "impossible" but it's very unlikely that some day Dolphin use more than 3 cores, but hey! we can dream.


Rig

*Corei5 3570K *Nvidia 9800GT 1GB DDR3
*Motherboard Asus P8H77M-PRO *Win7 x64
*RAM 8GB DDR3(1600)
Find
Reply
08-27-2011, 10:12 AM (This post was last modified: 08-27-2011, 10:16 AM by NaturalViolence.)
#8
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
Quote:I don't like the word "impossible" but it's very unlikely that some day Dolphin use more than 3 cores, but hey! we can dream.

Well if you ask any of the devs they will either use the words "impossible", "stupid", or "unpractical". Further multithreading is possible but stupid because it would not provide any significant improvement in performance and it would take months of work by dedicated developers that want to spend their time on more important improvements, and who can blame them.

Dolphin already has about 2 dozen threads. Only 3 of which do a lot of work, the rest of them account for less than 0.1% of your cpu utilization because they don't need to do much work. Those three are the cpu thread (emulates the GC/Wii cpu), the video thread (acts as a frontend for gpu emulation), and the dsp thread (acts as a frontend for dsp emulation).

All three thread must be processed sequentially in order for real time emulation to work, they cannot be further split up. This is because many operations depend on the output of the previous operation to run.

In addition the cpu thread usually bottlenecks the other two, any significant speedup would need to come from further multithreading the cpu thread. Can you imagine trying to build a multithreaded recompiler that dynamicly reorders everything before execution while checking data dependencies and making sure nothing breaks emulation? That would be a nightmare and no sane developer has attempted this as it would no doubt be a multi-year project that would consume all of their time and only the absolute smartest computer scientists would even be capable of such a thing. Many developers have attempted further multithreading optimizations, many give up after they test their code and see no difference in performance or sometimes even a slowdown. Sometimes they commit it anyways, for example the OpenMP texture decoders are multithreaded but offer no noticeable increase in performance.

The developers have stated that if the GC/Wii architecture was split up into many different fixed function chips like the PS2 architecture further multithreading would be a lot easier/more practical.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
« Next Oldest | Next Newest »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode