PPU LLVM JIT Repository Early Testing
Started by Ekaseo




358 posts in this topic
jacky400
Unregistered


 
10-21-2014, 09:53 AM -
(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]
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
10-21-2014, 10:22 AM -
(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
Unregistered


 
10-22-2014, 03:06 PM -
The recompiler has been merged with master!
Dante38490
Unregistered


 
10-22-2014, 03:28 PM -
(10-22-2014, 03:06 PM)agrecascino Wrote: The recompiler has been merged with master!
Yep
Ekaseo
Unregistered


 
10-22-2014, 03:29 PM -
still no build tho
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
10-22-2014, 07:11 PM -
At this point, it's pretty much expected that the buildbot dies after big changes. :p
flashmozzg
Unregistered


 
10-22-2014, 07:35 PM -
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?
Darkriot
Member


0
498 posts 29 threads Joined: Aug 2017
10-22-2014, 07:47 PM -
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
Unregistered


 
10-23-2014, 01:04 AM -
(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
Unregistered


 
10-23-2014, 05:18 AM -
normal for not compile in PPU GIT LLVM Smile https://github.com/DHrpcs3/rpcs3/pull/848


Forum Jump:


Users browsing this thread: 1 Guest(s)