I was wondering. While current CPUs are strong, GPU is stronger. And in the current PCSX2's state, speed of emulation mostly depends on CPU. So, in todays's OGL4, DX11 and OCL1, why not use GPGPU? It will surelly speed up things when some of the things would be moved to GPU shoulders. At least in theory.
GPGPU is only useful for stream processing, this means repetative calculations over and over, emulation is unpredictable and changes a lot, so this would be very sluggish.
GPU's are closest to the VU units, but unfortunately the restrictions outweigh the usefulness.
So there is absolutely no way to use it at least for something?
we found chinchilla's to be a much better animal for making it faster, they tend to run more ;p
04-16-2010, 12:03 PM
(This post was last modified: 04-16-2010, 12:07 PM by Air.)
Yeah GPUs aren't really stronger than CPUs. They're just... different. They employ different methods of computation to achieve their high GFLOPS throughput; unfortunately most emulators have little or no need for GFLOPS. They need memory bus bandwidth and conditionals (aka branches and jumps). GPUs are neigh worthless for both of those.
As far as I know, the only place where CUDA and other GPU-bound APIs would be useful is for texture swizzling on the GS. Unfortunately it would only benefit a handful of games, and only by a small bonus at that. There are other optimization techniques we can focus on that would likely nix most of the texture swizzling right from existence (such that neither CPU or GPU would be needed for them). So investing effort and increasing code complication for CUDA-based texture swizzling hasn't been a priority -- not when the code would become worthless as soon as we manage a smarter Level-2 swizzled texture cache into PCSX2.
Jake Stine (Air) - Programmer - PCSX2 Dev Team
I know this has been asked many times before, but... What is current state of 4-core emulation?