Dolphin, the GameCube and Wii emulator - Forums

Full Version: High end hardware, not used at all by Dolphin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
I have a very high end PC. The CPU is still the stongest bit, however Dolphin won't use my H/W to its full potential.

Specs:

Intel Xeon E3 1240 (BCLK OC to 3.9GHz from 3.3 [actual BCLK from 100MHz to 108.1]) (on 240mm water)
nVidia GTX 1070 (OC to 2100MHz) (on 120mm water)
24GB Corsair Vengeance DDR3 2133MHz
ASUS Sabertooth z77 motherboard
240GB SSD
3TB Seagate Barracuda
2TB Seagate Barracuda
500GB Seagate Barracuda
Corsair CX600 PSU

CPU never goes above 10% and GPU is idle, according to GPU-Z. GPU clock doesn't go above 1506MHz.

Trying to play Baldur's Gate: Dark Alliance at a solid 60.

Running Windows 7 SP1, Dolphin 5.0

All settings default, slowdowns when game gets busy onscreen. Lowering CPU clock manually produces a higher framerate most of the time.

PCSX2 does this too.

Any insight?
First off, try a newer dev build - there's been a number of improvements since 5.0 that may help generally.

I suspect "10%" cpu may mean "a single core (of 8 threads) is at 100%". As much of the CPU workload for dolphin must run on a single core, this may be limiting the performance while "Not using all the CPU".

Also, on some games there's a significant overhead due to CPU/GPU synchronization and transferring data between the two (e.g. CPU EFB access). This doesn't map well to (modern) PC systems - and these bottlenecks are rarely represented well on many performance metrics. A Sandy Bridge core at 3.9 isn't really that "high end" anymore, but it should work with most games, I've never played Baldur's Gate: Dark Alliance, but it may be one such game that uses this (or something else that's "more difficult" to emulate)
(11-10-2017, 06:32 AM)JonnyH Wrote: [ -> ]First off, try a newer dev build - there's been a number of improvements since 5.0 that may help generally.

I suspect "10%" cpu may mean "a single core (of 8 threads) is at 100%". As much of the CPU workload for dolphin must run on a single core, this may be limiting the performance while "Not using all the CPU".

Also, on some games there's a significant overhead due to CPU/GPU synchronization and transferring data between the two (e.g. CPU EFB access). This doesn't map well to (modern) PC systems - and these bottlenecks are rarely represented well on many performance metrics. A Sandy Bridge core at 3.9 isn't really that "high end" anymore, but it should work with most games, I've never played Baldur's Gate: Dark Alliance, but it may be one such game that uses this (or something else that's "more difficult" to emulate)

No, all 8 threads are active. Using DirectX 11 backend. Each core is at around 2%, CPU barely reaches 45C when running Dolphin. GPU idles at 35C.

And my Sandy Bridge Xeon is basically an i7 3770, and 3.9GHz is plenty, I could max out Fallout 4 at stock 3.3 at 2K and only reach 35% CPU total. The overclock is not necessary but I need the boost for faster rendering and Blender exporting.

Do you think disabling hyperthreading will help?

I noticed you didn't mention my GTX 1070 not automatically going to 2100MHz to crunch numbers. So clearly that's not the issue. What settings can help reduce overhead?
(11-10-2017, 01:28 PM)EagerStallion Wrote: [ -> ]No, all 8 threads are active. Using DirectX 11 backend. Each core is at around 2%, CPU barely reaches 45C when running Dolphin. GPU idles at 35C.

And my Sandy Bridge Xeon is basically an i7 3770, and 3.9GHz is plenty, I could max out Fallout 4 at stock 3.3 at 2K and only reach 35% CPU total. The overclock is not necessary but I need the boost for faster rendering and Blender exporting.

Do you think disabling hyperthreading will help?

I noticed you didn't mention my GTX 1070 not automatically going to 2100MHz to crunch numbers. So clearly that's not the issue. What settings can help reduce overhead?

Then that means the scheduler is switching the single thread that's actually doing the real work between the cores, or it's waiting on something else. Dolphin doesn't (and likely cannot) take advantage of multiple cores, as it's emulating a single core cpu. Only ancillary things (graphics queue processing, audio DSP processing) can use threads.

And I can't get a solid 60fps on fallout4 on an OC'd 6700k Tongue
You're under the impression that Dolphin (or any older system emulator) is able to take advantage of a bunch of hard working threads.

That is false.
It's also likely that the 1070 will never be 100% utilized (without some crazy IR or something else) - my radeon 460 works fine for 3x IR Tongue Note, that increasing the resolution doesn't affect cpu usage one bit - literally the only thing it does different is tell the gpu to do more work. Not really any extra driver work, and certainly no more work from dolphin.

Generally, emulators tend to be much heavier on cpu that gpu resources.
(11-10-2017, 01:36 PM)JonnyH Wrote: [ -> ]Then that means the scheduler is switching the single thread that's actually doing the real work between the cores, or it's waiting on something else. Dolphin doesn't (and likely cannot) take advantage of multiple cores, as it's emulating a single core cpu. Only ancillary things (graphics queue processing, audio DSP processing) can use threads.

And I can't get a solid 60fps on fallout4 on an OC'd 6700k Tongue
Then clearly your GPU is the bottleneck. What do you have and what's it clocked at? Certain mods will prevent the GPU from upclocking - I had to disable Overgrowth and a mod that added more concrete workshop items. There are a few posts about it floating around the Net - that was my issue. My 1070 is on a push-pull 120mm CPU cooler strapped on with zip ties.

My Xeon also probably has higher IPC than your i7. What's your Passmark score? My Xeon gets 8900 in Passmark, 900 marks higher than the average score.
(11-10-2017, 01:43 PM)Helios Wrote: [ -> ]You're under the impression that Dolphin (or any older system emulator) is able to take advantage of a bunch of hard working threads.

That is false.
Sooooooo disabling HT will helo then? Clearly it's causing issues.

(11-10-2017, 01:47 PM)JonnyH Wrote: [ -> ]It's also likely that the 1070 will never be 100% utilized (without some crazy IR or something else) - my radeon 460 works fine for 3x IR Tongue Note, that increasing the resolution doesn't affect cpu usage one bit - literally the only thing it does different is tell the gpu to do more work. Not really any extra driver work, and certainly no more work from dolphin.

Generally, emulators tend to be much heavier on cpu that gpu resources.

I know that, but GPU-Z reports the GPU as idle. Like damn. And when the framerate drops, the GPU doesn't budge.

I mean I ran Twilight Princess at 4K and internal 4K on a GTX 460 SE and a Q9400. Locked at 30FPS, but still. Runs great on that older hardware.

Is there any official Dolphin benchmark yet? Custom cooked ROM similar to Superposition?
The scheduler in most operating systems switches threads between CPU cores faster than things like task manager update, so I can guarantee the reason you're seeing partial usage on many cores is simply that Dolphin's being moved to other cores too quickly to register. This is a tactic to avoid CPU overheating - if the most demanding thread stays on one core, heat builds up in that core, increasing the likelihood of thermal throttling and so worse performance.

When you say your CPU is basically an i7 3770, that's patently incorrect, as that's an Ivy Bridge chip, and yours is a Sandy Bridge one. It's closer to the i7 2600. I have no idea how you can think a Sandy Bridge chip has more IPC than JonnyH's 6700K. Even with Intel's relatively poor inter-generational improvements in the past few years, it's going to be leaps and bounds above your chip, especially when the unexpected +30% in Dolphin for post-Haswell chips is taken into account (basically an improvement that only seems to present itself in Dolphin for some reason).

Your GPU won't clock up if it's getting all the work asked of it done before the next frame is due at lower clocks. If your CPU is the bottleneck, then an under-utilised GPU is perfectly normal. Also, even if the GPU was being as utilised as possible by Dolphin, it may well not show up as 100% under load. When the heuristics for those types of metrics are made, they assume that the GPU will be used in the same way as a modern game, which isn't the case for Dolphin. For example, you're never going to see the parts of the GPU that are used per-vertex or per-polygon used a lot as Wii and GameCube games don't have many polygons. Another part of the GPU could be fully utilised while that part is at only a few percent utilisation, and so your GPU will be going as fast as it can while showing under 100% usage. Either way, if you want to force your GPU to a higher power state, you can do so by creating a profile for Dolphin in the Nvidia control panel, and setting 'prefer maximum performance'.

Turning off hyperthreading is very unlikely to help. The only time Hyperthreading is a disadvantage is when the OS puts two threads that compete for the same parts of a CPU core on the same CPU core, and modern OSes are good at not doing that when there are spare cores. I'd leave it on.

As no-one's mentioned it yet, I'm going to recommend switching from 5.0 to a more recent development build as there are gazillions of fixes and you're going to end up having a nicer time.

The reason why you were able to get better performance in older revisions is that Dolphin used to be faster when it was less accurate. Even in games that seemed to work, there'd be subtle visual issues or seemingly random crashes which are now gone, but as extra work is required to emulate whichever features were causing the issues, Dolphin is slower. It's now the case that Dolphin runs fine in the majority of games with relatively low-end modern hardware, but on CPUs that are six or seven years old (like yours) or even older, you can definitely tell that Dolphin isn't as fast as it once was.

In conclusion, you're almost certainly seeing a CPU bottleneck. If you want to make this obvious, use task manager to set the affinity of Dolphin subprocesses to specific cores, and you'll see one of them is maxed out.
(11-10-2017, 05:54 AM)EagerStallion Wrote: [ -> ]I have a very high end PC. The CPU is still the stongest bit, however Dolphin won't use my H/W to its full potential.

Specs:

Intel Xeon E3 1240 (BCLK OC to 3.9GHz from 3.3 [actual BCLK from 100MHz to 108.1]) (on 240mm water)
nVidia GTX 1070 (OC to 2100MHz) (on 120mm water)
24GB Corsair Vengeance DDR3 2133MHz
ASUS Sabertooth z77 motherboard
240GB SSD
3TB Seagate Barracuda
2TB Seagate Barracuda
500GB Seagate Barracuda
Corsair CX600 PSU

CPU never goes above 10% and GPU is idle, according to GPU-Z. GPU clock doesn't go above 1506MHz.

Trying to play Baldur's Gate: Dark Alliance at a solid 60.

Running Windows 7 SP1, Dolphin 5.0

All settings default, slowdowns when game gets busy onscreen. Lowering CPU clock manually produces a higher framerate most of the time.

PCSX2 does this too.

Any insight?

It seems as though your CPU is comparable to a low-end current gen CPU. I don't know why you're claiming your PC is high-end, sure the GTX 1070 is nice, but my GT 640M can handle 2x IR on Wii games. Dolphin's GPU requirements are so low, that your emulation performance almost only depends on the CPU, and as these benchmarks suggest, your CPU is very old.

http://cpu.userbenchmark.com/Compare/Int...4602vs3930
To expand even further upon what Peter said, in the way Dolphin actually cares about (Single and Dual Core speeds) The Ryzen 3 1300x is actually slightly faster than your processor at stock speeds, plus your Overclock is't insane or anything. And a modern Intel would be faster still - new, actually high end CPU's are getting past 4Ghz.
Having big numbers is somewhat offset by newer processor's better IPC and the fact Dolphin doesn't really care what you have after you have three or more cores.
Pages: 1 2 3