04-24-2009, 01:31 AM
The people best placed to answer this question probably don't even have to read the rest of my post because they know what I'm going to say 
I've searched to check whether anything like this has been asked before. I couldn't find anything. This is something I haven't been able to get out of my mind ever since I heard emulating the vector-units (VU0 and VU1) are often the major load on the CPU running PCSX2. I didn't want to ask yet another question a couple of weeks ago after I'd received an excellent answer (from Air/Jake) to why a 64-bit binary wouldn't really help, but this one is still bugging me.
As far as I know, these vector units are currently being emulated on the CPU using JIT compilation. Would it be possible to offload the work of the VU1 at least, and possibly the VU0 as well to the graphics-card, using either CUDA or the upcoming GPGPU layer in DX11? Vector units sound suspiciously like they do the same sort of things as the shader-units on modern graphics cards are capable of. Parallel calculations, the very name "vector" implies parallelism and vector calculations are what graphics-cards are now designed to do.
Given that PCSX2 is almost always CPU bound, and the vector-units are a major part of that, could some of the VU1 and possibly VU0 work be done on the GPU through CUDA or a future DX11 GPGPU interface?
Eeeek, even as I ask this, I feel I'm probably asking something the devs involved have already considered a hundred times, and know the answer to, but as I couldn't find an answer in the forums, I'm trepadatingly going to hit the 'Post Thread' button.

I've searched to check whether anything like this has been asked before. I couldn't find anything. This is something I haven't been able to get out of my mind ever since I heard emulating the vector-units (VU0 and VU1) are often the major load on the CPU running PCSX2. I didn't want to ask yet another question a couple of weeks ago after I'd received an excellent answer (from Air/Jake) to why a 64-bit binary wouldn't really help, but this one is still bugging me.
As far as I know, these vector units are currently being emulated on the CPU using JIT compilation. Would it be possible to offload the work of the VU1 at least, and possibly the VU0 as well to the graphics-card, using either CUDA or the upcoming GPGPU layer in DX11? Vector units sound suspiciously like they do the same sort of things as the shader-units on modern graphics cards are capable of. Parallel calculations, the very name "vector" implies parallelism and vector calculations are what graphics-cards are now designed to do.
Given that PCSX2 is almost always CPU bound, and the vector-units are a major part of that, could some of the VU1 and possibly VU0 work be done on the GPU through CUDA or a future DX11 GPGPU interface?
Eeeek, even as I ask this, I feel I'm probably asking something the devs involved have already considered a hundred times, and know the answer to, but as I couldn't find an answer in the forums, I'm trepadatingly going to hit the 'Post Thread' button.
CPU: Athlon 64 X2 4400+ (2.2GHz @ solid 2.53GHz)
GPU: nVidia GeForce 8800GTS 640MB (not currently O/C)
Memory: 2GB DDR400 (2x 1GB @ DDR422 2.5-3-2)
GPU: nVidia GeForce 8800GTS 640MB (not currently O/C)
Memory: 2GB DDR400 (2x 1GB @ DDR422 2.5-3-2)