RPCS3 Forums

Full Version: PPU LLVM JIT Repository Early Testing
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

jacky400

(10-14-2014, 11:48 AM)Bigpet Wrote: [ -> ]To be clear Gopalsr83 has merged master in his branch and not the other way around. We don't have it master for multiple reasons. First of all, there hasn't been a pull-request (I assume Gopalsr wants to make it more feature-complete first).

Secondly, llvm is a huge dependency and there is rightful concern of having too many dependencies (I didn't even get granted Boost Tongue). Not to mention that we already depend on ASMJIT which is partially duplication in functionality.

If the llvm dependency were optional (i.e. you can still compile without llvm but you would not get the recompiler option) this would an easier decision but as it stands merging the branch requires some actual discussion of the merits.

Would it be used as a interrim solution ? at least we can have something faster in speed to help debug and we also don't have any other alternative PPU recompiler at this moment . The closest one would be from [DH] but no news .

[raven02]
(10-21-2014, 06:12 AM)gopalsr83 Wrote: [ -> ]
(10-20-2014, 09:49 PM)ssshadow Wrote: [ -> ]?

This is some strange bug with the emulator. I can get really good speed, like 70 fps on the opening video for some very short or very long period of time, but eventually frame rate just drops to nothing, like 6 fps right now. This happens at the same time as rpcs3.exe frees like 1 gb (!) of memory too for whatever reason.

But whatever, this is a WIP.

EDIT: Performance can go both ways, TGFP went from 25 -> 70 fps while cpu usage went from 60 % -> 40 %. A wild and uneducated guess would be cache misses, branch prediction doing the wrong predictions, or similar. CPU clock was consistently 2,8 ghz.

The algorithm the JIT recompiler uses to detect which basic blocks of code need to be compiled is very simplistic and inefficient and results in the same basic block being compiled more than once. Ideally each block must be recompiled only once. This has the following negative effects:

1. The recompiler ends up using a lot of memory
2. It takes more time than what is ideally required to recompile a section of the code.
3. It produces a lot of code which can cause caches to overflow.

I am working on a more intelligent algorithm which should hopefully fix the issues that you are seeing.

OK, that is a good explanation, thank you.

agrecascino

The recompiler has been merged with master!

Dante38490

(10-22-2014, 03:06 PM)agrecascino Wrote: [ -> ]The recompiler has been merged with master!
Yep

Ekaseo

still no build tho
At this point, it's pretty much expected that the buildbot dies after big changes. :p

flashmozzg

To bad that LLVM itself takes twice as much time to compile compared to other part of emulator) Isn't there a way to compile only needed headers / or have them precompiled o something?
i think buildbot can't compile...to him need folder "llvm", but he is not got it...
and we got .rar Rpcs3 without Rpcs3-64.exe Smile

derpf

(10-22-2014, 07:35 PM)flashmozzg Wrote: [ -> ]To bad that LLVM itself takes twice as much time to compile compared to other part of emulator) Isn't there a way to compile only needed headers / or have them precompiled o something?

LLVM is not a header-only library. It's actually quite large and sophisticated, so grab a cup of cider while you wait.

Dante38490

normal for not compile in PPU GIT LLVM Smile https://github.com/DHrpcs3/rpcs3/pull/848
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36