Editing PlayStation 3 emulators

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 447: Line 447:
 
There are two major bottlenecks at play:
 
There are two major bottlenecks at play:
 
* '''[[wikipedia:Cell_(microprocessor)|Cell Broadband Engine]]''' - consists of two architectures that developers have to program for; [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#PPC_CPUs|PowerPC]], and... whatever the SPEs really are; and you have a great formula for high system requirements, SPU hardware environment is the furthest thing from a [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs|x86 PC processor]]. The RPCS3 developers using ahead-of-time recompilation using LLVM. RPCS3 is not just compiling the code it runs, it's also needs to compile a realtime environment simulator e.g. the 128x128bit register file, LS sram, the very weird memory flow controller, etc [https://discord.com/channels/272035812277878785/272083901277667342/1200171144603512892]. SPEs closer to [[PlayStation_2_emulators#Emulation_issues|VUs from PS2]] than to a GPU. They're a SIMD cluster, don't be fooled by their apparent similarity to GPUs. GPU are low throughput but very wide. SPEs are also wide, but not so much so. However, their individual thread throughput is insane even compared to a something like RTX 4090 GPU. It's not possible to beat SPUs 1:1 (it's ALL vector, it doesn't have scalar registers at least not general-purpose ones), they have 128 registers and very low latency SRAM, almost no memory fetches and everything is async. Although AVX-512 comes close in performance (at 5+ GHz). GPUs on the other hand are around 10-100x slower, but that's just because of how their cores are designed and the fact that SPU kernels are optimized to run in much smaller groups. There's too much working against emulation at 3.2 GHz rate since most SPU instructions need many instructions on PC (like dozens in some cases), so the PC side needs to be an order of magnitude faster.[https://discord.com/channels/272035812277878785/272083901277667342/1197648306084524202]
 
* '''[[wikipedia:Cell_(microprocessor)|Cell Broadband Engine]]''' - consists of two architectures that developers have to program for; [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#PPC_CPUs|PowerPC]], and... whatever the SPEs really are; and you have a great formula for high system requirements, SPU hardware environment is the furthest thing from a [[POS_(Pong_Consoles)_CPUs_and_Other_Chips#x86_CPUs|x86 PC processor]]. The RPCS3 developers using ahead-of-time recompilation using LLVM. RPCS3 is not just compiling the code it runs, it's also needs to compile a realtime environment simulator e.g. the 128x128bit register file, LS sram, the very weird memory flow controller, etc [https://discord.com/channels/272035812277878785/272083901277667342/1200171144603512892]. SPEs closer to [[PlayStation_2_emulators#Emulation_issues|VUs from PS2]] than to a GPU. They're a SIMD cluster, don't be fooled by their apparent similarity to GPUs. GPU are low throughput but very wide. SPEs are also wide, but not so much so. However, their individual thread throughput is insane even compared to a something like RTX 4090 GPU. It's not possible to beat SPUs 1:1 (it's ALL vector, it doesn't have scalar registers at least not general-purpose ones), they have 128 registers and very low latency SRAM, almost no memory fetches and everything is async. Although AVX-512 comes close in performance (at 5+ GHz). GPUs on the other hand are around 10-100x slower, but that's just because of how their cores are designed and the fact that SPU kernels are optimized to run in much smaller groups. There's too much working against emulation at 3.2 GHz rate since most SPU instructions need many instructions on PC (like dozens in some cases), so the PC side needs to be an order of magnitude faster.[https://discord.com/channels/272035812277878785/272083901277667342/1197648306084524202]
* '''[[wikipedia:RSX_Reality_Synthesizer|RSX (Reality Synthesizer)]]''': [[PlayStation_4_emulators#Emulation_issues|PlayStation 4 GPU]] went unemulated for a long time, simply because of how many components were just undocumented, the same thing applies here; the [https://www.psdevwiki.com/ps3/RSX RSX unit] is a custom-designed chip developed by NVIDIA specifically for the PlayStation 3 and share similarities with GeForce 7800 GTX or G70/G71. It's not well-documented, and developers have to figure out how it displays graphics and graphical effects. Without access to Nvidia's resources, which would normally be included with an SDK, this would be very difficult.
+
* '''[[wikipedia:RSX_Reality_Synthesizer|RSX (Reality Synthesizer)]]''': [[PlayStation_4_emulators#Emulation_issues|PlayStation 4 APU]] went unemulated for a long time, simply because of how many components were just undocumented, the same thing applies here; the [https://www.psdevwiki.com/ps3/RSX RSX unit] is a custom-designed chip developed by NVIDIA specifically for the PlayStation 3 and share similarities with GeForce 7800 GTX or G70/G71. It's not well-documented, and developers have to figure out how it displays graphics and graphical effects. Without access to Nvidia's resources, which would normally be included with an SDK, this would be very difficult.
 
:Something of note is that this GPU was also managed by two different memory units with very disparate frequency speeds; 1) 256 MBs of GDDR3 RAM clocked at 650 MHz with an effective transmission rate of 1.4 GHz, and 2) up to 224 MBs of the 3.2 GHz XDR main memory via the CPU (480 MBs max).
 
:Something of note is that this GPU was also managed by two different memory units with very disparate frequency speeds; 1) 256 MBs of GDDR3 RAM clocked at 650 MHz with an effective transmission rate of 1.4 GHz, and 2) up to 224 MBs of the 3.2 GHz XDR main memory via the CPU (480 MBs max).
  

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)