[HOW TO] Optimize PCSX2 for multithreading
#1
MAY HARM GSDX SOFTWARE MODE
Hi! I'm new to the forum, but i didn't see any presentation page so I decided to directly make this thread, I'm sorry if there was a presentation page and I didn't see it. So let's start.
I noticed that with Intel's Hyperthreading, on my laptop's i7 3630qm, (it should work with amd cards even) my physical threads works faster than my logical ones. In my case physical threads are , CPU0, CPU2, CPU4, CPU6 and CPU8 and the logical ones are CPU1,3,5 and 7. And as you know, PCSX2 doesn't work very well with multiple cores. As I could see with Process Lasso, the 8 cores had exatly the same work for each one, divided almost perfectly. No core had full work, but the game (Zone Of The Enders 2, one of the most demanding for pcsx2) was not goind at full speed during a boss battle. 45 FPS. I noticed that if I make PCSX2 use only the physical cores it happens that the game goes 5-7 fps faster. And I think this gap could became even larger with games wich are heavy on EE. This can work with every software poor on the multicore side.

Method 1: Set the affinity or PCSX2's process on your physical cores.
If you can't determine which ones are your physical cores are or the if changing the affinity with your Windows Task Manager doesn't work, and it happens more often than you think, you will have to download and install Process Lasso at this link:http://bitsum.com/processlasso/
Even the free version is ok for this work. So once installed start the program and you will see two categories of programs: All the programs and Active programs. PCSX2, while running a game, will surely be on Active Programs category, otherwise it could be in both. Right click on PCSX2 process, CPU affinity>always> Avoid non-Physical cores OR uncheck them by yourself. You should see your PCSX2 performance increase.

Method 2: Deactivate Hyperthreading from BIOS. Only experts. Notebook users I suggest to stay away from this.
I don't take any responsibility in case you make your computer unusable by trying to make this. There are a lot of BIOSes, so I cannot make a general guide about this. As I sayd, this is only for experts. It would mean that you know how to enter your BIOS (usually F2, F8 or F10 before boot) and to change BIOS settings. If you first didn't know there is an option to turn off Hyperthreading, now you know Smile . Good Luck.
I'm still here for support!
I hate multithreading by the way.
Reply

Sponsored links

#2
PCSX2 should favour physical cores anyway, so i don't know how that helped you there.. did you do a best of 3 runs in both scenarios on that exact same spot (best if nothing is moving on the screen when you do) to confirm your findings?
[Image: ref-sig-anim.gif]

Reply
#3
When there's nothing moving on the scene my computer always runs at 60 fps so I can't tell. Anyway I tried various times during boss battles when, unfurtunately, there's always something moving. Every time I click on "Avoid non-physical cores" I see an instantanious and quick increase of FPS and game speed. I will try further and report if I was wrong.
Reply
#4
If you are capping at 60fps, press F4 to turn the frame limiter off, or find a more demanding game Smile
[Image: ref-sig-anim.gif]

Reply
#5
More demanding than Zoe 2? Does it exist? Laugh
Gonna benchmark later, stay tuned
Reply
#6
Shadow of the Colossus, Baldurs Gate, Juiced, there's a couple Tongue
[Image: ref-sig-anim.gif]

Reply
#7
I'm sorry, I would have liked to benchmark precisely, but as you know better than me, pcsx2 has some strange behaviours.
Fact is, PCSX2 automatically tries to find better threads to operate. Sometimes, and thats the keyword, SOMETIMES it chooses the right threads, other times not. And that's when setting the affinity may come useful. It's impossible to make an universal statement because every situation is different, but I think setting the affinity will never harm and will maybe improve the performance. Especially with MTVU or software rendering on. By the way I'm gonna edit the first post saying that if you're an expert with computers and you are not afraid about making things in the BIOS, you can deactivate Hyperthreading directly from there and resolve the whole problem quickly.
Anyway as you are a coder I'm going to write my specs, just for additional info:
Windows 8.1 64 bit
Intel i7 3630qm quad core @3.2 Ghz
GT 635m
12 Gb 1600 mhz ram
Reply
#8
Huh that's pretty interesting, I know I've had many problems with ported PC games (like GTA4 and Prototype 2) on multi-core pcs. I had to set the computer to only use 1 CPU to get past some parts of the game. I wonder if setting to use only physical cores would also solve the problem on those games. Anyone good info in case I run into a game that runs slow, I can test this method.
Reply
#9
(03-05-2014, 07:29 AM)maguss Wrote: Huh that's pretty interesting, I know I've had many problems with ported PC games (like GTA4 and Prototype 2) on multi-core pcs. I had to set the computer to only use 1 CPU to get past some parts of the game. I wonder if setting to use only physical cores would also solve the problem on those games. Anyone good info in case I run into a game that runs slow, I can test this method.

If you have more than one physical core it's pretty sure it'll help to set the affinity on all the physical cores... 2 or 4 is always better than one. Apart from PCSX2 wich is very particular, usually when the game lags and you have not full GPU usage is because of CPU capping. Good Luck!
Reply
#10
Disabling hyperthreading will make the whole system slower. Tried it many times before with laptops and desktops. No thanks XD
So I'll probably try Method 1.

Edit: for me, SOTC is slower when just using the 4 physical cores. Soon as I get out of the castle, it feels like the movie 300 lol. Lowest was 51fps when running around. With all cores, lowest was 57-58fps. I can confirm, however, that using the non physical cores only, everything will be slow on the emulator.

With all cores checked, and framelimiter off, I only saw the 4 physical cores working/max anyway on my desktop cpu meter when doing basche's flamepurge on FFXII.
Model: Clevo P570WM Laptop
GPU: GeForce GTX 980M ~8GB GDDR5
CPU: Intel Core i7-4960X CPU +4.2GHz (12 CPUs)
Memory: 32GB Corsair Vengeance DDR3L 1600MHz, 4x8gb
OS: Microsoft Windows 7 Ultimate
Reply




Users browsing this thread: 1 Guest(s)