Dolphin, the GameCube and Wii emulator - Forums

Full Version: Slowdown With Low Resource Utilization
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

BatenKaitosFan

I'm having slowdown issues with just about every game I throw at the emulator. Mario Golf Toadstool Tour is minimal, Baten Kaitos is bad when there are more things on the screen like water effects, when random battles load/have speech and in the menu after random battles, WWE games run so slowly they're unplayable.

It would be one thing if I didn't have the computing power, but only one logical processor core (it's hyperthreaded, so really half of a core) is being used, over 10 GB RAM free and graphic card utilization never even hits 30%. Right now it's more a question of getting Dolphin to actually use all of the resources I have available.

Things I've tried from reading other threads:
-Setting the graphics card to give maximum performance to Dolphin, power consumption be damned
-Upgraded to beta version from 5.0, the slowdown was worse in 5.0

I'm not sure how to tell it to use the other 23 logical cores, make the graphics card work harder and use more RAM.
Is it maxing out one CPU core? If so, there's not much you can do. You can't make Dolphin use all of your CPU cores, and having extra GPU power and RAM doesn't help if the bottleneck is in the CPU.
You have 2 Xeon X5670 CPUs, the Westmere-EP architecture which are equivalent to first gen Core-i series chips. Dolphin is only going to run on 2 cores, so all those extra cores are not going to help, like JosJuice said.

Go to Windows Power options and make sure you're running at maximum performance (or whatever equivalent Windows Server has). Then, make sure you have the latest Quadro drivers installed, and in the Nvidia Control panel make sure that there is a profile for Dolphin to use maximum power.

Other than that, your hardware isn't the best for Dolphin, so you may just be running into a bottleneck
https://dolphin-emu.org/docs/faq/

Quote:Couldn't Dolphin use more of my CPU cores to go faster?
CPUs do not work that way.

Every core on a CPU runs in parallel. Two tasks can run very well in parallel if they don't need to communicate often or to run at the exact same speed. For example, compressing files can be run on separate cores because compressing one file and compressing another file are two completely independent tasks, which do not need to communicate.

In Dolphin, the only demanding tasks that can run well in parallel are the CPU, the GPU and the DSP. Breaking up any of these tasks into smaller tasks just to run it on more cores is very likely to make the program slower. That's why Dolphin only runs on 3 cores and won't use all of your 4 or 6 cores CPU.

BatenKaitosFan

(06-15-2018, 07:31 AM)KHg8m3r Wrote: [ -> ]You have 2 Xeon X5670 CPUs, the Westmere-EP architecture which are equivalent to first gen Core-i series chips. Dolphin is only going to run on 2 cores, so all those extra cores are not going to help, like JosJuice said.

Maybe I'm not explaining clearly. I have hyperthreading activated at the hardware level, so every physical core becomes two logical cores. Even with the enable dual core option selected Dolphin will still only use one logical core. If it's coded to use two cores it should either be using 2 or 4 of my logical cores, depending on how the hyperthreading gets handled by the hardware. I can see that it never even attempts to use a second logical core via CPU meter.

Inherent in this (or so I thought), does hyperthreading diminish performance in Dolphin?
So the quote from the FAQ I posted pretty much covers this, but even logical cores do not communicate directly with each other. Technically if very specifically coded you might get them to work a little faster by utilizing Cache, Branch prediction resources, Instruction fetch and decoding, Execution units which is what is shared by the 2 logical cores on a single physical core. This still would not be faster then a single fast thread because there would still be syncing issues and overhead.
Even with the dual core setting, Dolphin doesn't benefit from having so many cpu cores. I think there are only 3 relevant threads, the cpu, the gpu and the gpu driver thread.

Anyways, hyperthreading might be bad for Dolphin, depending on how your OS shedules load on the cpu cores. If 2 threads run on one core + hyperthreading, that's going to be much slower than running on 2 actual cores. On top of that you seem have 2 cpus. I bet Windows moves the threads from cpu to cpu, so the threads have to wait until data is transferred from one core to the other. The cpu is pretty old, so hyperthreading on it might work worse than it is on more modern cpus and the cpu interconnect is very likely to be worse than the Ryzen CCX Interconnect, that seems to be at least a small problem.

If i were you, i'd pin Dolphin to 4 or 6 physical cpu cores on one cpu. You can do this in the task manager via setting affinity. And maybe you want to even disable the 2nd cpu completely, so background stuff, like blocking storage I/O doesn't run into the latency of the cpu interconnect.
(06-15-2018, 10:20 AM)BatenKaitosFan Wrote: [ -> ]Maybe I'm not explaining clearly. I have hyperthreading activated at the hardware level, so every physical core becomes two logical cores. Even with the enable dual core option selected Dolphin will still only use one logical core. If it's coded to use two cores it should either be using 2 or 4 of my logical cores, depending on how the hyperthreading gets handled by the hardware. I can see that it never even attempts to use a second logical core via CPU meter.

That you're using dual core doesn't necessarily mean that Dolphin will be able to max out two logical cores. There should be some activity on both logical cores, though.