Emuforums.com

Go Back   Emuforums.com > PS2 Emulation > PS2 Plugin Questions & Plugin Troubleshooting
Home About Us Register FAQ Members List Calendar Mark Forums Read


Closed Thread
 
LinkBack Thread Tools Display Modes
Old June 7th, 2008   #1 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Georgia
Posts: 32
GPU Optimization for PCSX2


I came up with the Idea, How to make PCSX2 more dependent on GPU.
Today PCSX2 is highly dependent on CPU. It has many optimizations of new technology like SSE 4.1, It really helps to speed it up.
How about giving GPU more load.
It is quite possible to make CUDA optimization. Today CUDA, is quite powerful, every Nvidia's GPU since 8's series supports it. This thing has lots of power, and we could use it in PCSX2.
It is quite possible to make CUDA optimization for this program.
I think it would be also possible to dived tasks, and give some load to both CPU and GPU. It would dramatically increase FPS in any game.
So what do you think.

NODO-GT is offline  
Old June 7th, 2008   #2 (permalink)
Registered User
 
Krakatos's Avatar
 
Join Date: Apr 2007
Location: Italy
Posts: 286
Quote:
Originally Posted by NODO-GT View Post
I came up with the Idea, How to make PCSX2 more dependent on GPU.
Today PCSX2 is highly dependent on CPU. It has many optimizations of new technology like SSE 4.1, It really helps to speed it up.
How about giving GPU more load.
It is quite possible to make CUDA optimization. Today CUDA, is quite powerful, every Nvidia's GPU since 8's series supports it. This thing has lots of power, and we could use it in PCSX2.
It is quite possible to make CUDA optimization for this program.
I think it would be also possible to dived tasks, and give some load to both CPU and GPU. It would dramatically increase FPS in any game.
So what do you think.
1) It's the wrong forum
2) Do you really think the devs did not think about that before?
3) CUDA requires extreme parallel computing. You want to use cuda for things now done by the cpu? That's not really possible in an emulator... it's already much that pcsx2 uses 2 cores, and you want to offload the cpu tasks on CUDA? I honestly think you have no idea what you're asking...
Krakatos is offline  
Old June 7th, 2008   #3 (permalink)
B( o Y o )BS!
 
GiGaHeRz's Avatar
 
Join Date: Feb 2002
Location: Spain
Posts: 885
As Krakatos said, CUDA is a highly parallel architecture. Each task you send to CUDA must always consist of AT LEAST 32 parallel threads executing THE SAME code (generally with different input data). This means whatever you do, must be a multiple of 32, which limits a lot what you can use CUDA for.

This means you could use CUDA to make a custom rendering engine (sending blocks of 8 pixels to be processed at once), but it would be mostly useless for anything else in the ps2. Even the VUs aren't parallel enough to be converted into CUDA programs.

CUDA is good for physics computing, big matrices, FFTing, ... I guess it could even be usable for audio processing, at some level (it most probably has too much latency for realtime low-latency audio filters), but it's not the right architecture to be used for PS2 emulation, xcept maybe software GS rendering.
__________________
"There's only one absolute truth in our world: shït happens." - Gigaherz (whoever decided "s-h-i-t" is a obscene word needs to grow up a few years)

The Book and other stories:
Tears of Fantasy - An Online Book... by ME!
MetaLife, Inc. (intro)
SubGaea (intro)
Crow Blade (intro for now)
Memories - Prayer from the fallen hearts.

My weblog... not like if there was too much to read on it tho.
For anyone interested, there's a mirc script which converts "/me 's" into " * nickname's whatever" and adds a nice "/my" command.
GiGaHeRz is offline  
Old June 7th, 2008   #4 (permalink)
Registered User
 
powerzx's Avatar
 
Join Date: Nov 2004
Location: poland
Posts: 53
Quote:
Originally Posted by GiGaHeRz View Post
As Krakatos said, CUDA is a highly parallel architecture. Each task you send to CUDA must always consist of AT LEAST 32 parallel threads executing THE SAME code (generally with different input data). This means whatever you do, must be a multiple of 32, which limits a lot what you can use CUDA for.

This means you could use CUDA to make a custom rendering engine (sending blocks of 8 pixels to be processed at once), but it would be mostly useless for anything else in the ps2. Even the VUs aren't parallel enough to be converted into CUDA programs.

CUDA is good for physics computing, big matrices, FFTing, ... I guess it could even be usable for audio processing, at some level (it most probably has too much latency for realtime low-latency audio filters), but it's not the right architecture to be used for PS2 emulation, xcept maybe software GS rendering.
software gs rendering using cuda could be good choice, anything except this is not a good idea.
__________________
e8400@4ghz (memory is too slow to oc more) asus commando 4gb ddr2 gf8k8gts vista64
powerzx is offline  
Old June 7th, 2008   #5 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Georgia
Posts: 32
Ok I understand now
thank for explaining.
so it means that it is impossible to combine CPU and GPU load?
I heard that someone was making audio processing program on cuda...
and how do you think, how fast would be software gs rendering using cuda?
any ideas?
NODO-GT is offline  
Old June 7th, 2008   #6 (permalink)
Registered User
 
GothicIII's Avatar
 
Join Date: Nov 2007
Location: Germany
Posts: 146
Man, now, the only thing what limits is the Hardware-> Nobody has a PC that is strongenough to emulate the PS2 completly; even with combining GPU and CPU (like ZeroGS). In fact, why most games are now playable is that there are missing some effects (they were disabled), which would decrease the speed extremely (like Postprocessing) (and some Software stuff like buffering and resolve-updates for stable gaming)
The only solution how to get all effects to work (and to work stable), is the really slow software-rendering (which depends only on CPU) and for that you'll need a much more stronger CPU than now. (for instance: 3.4Ghz DualCore is far to slow for that)
__________________
Windows Vista Ultimate x64 (SP1)|AMD Athlon 64 X2 4600+ @3.35Ghz x2 (~40% OC)|6GB Kingston Value RAM 667 @745 5-4-3-5 DualChannel (2x 1GB + 2x 2GB)|XFX 9800GTX (835/2060/1205)(~24%/22%/10% OC)|750GB(F1)+500GB(T166) Samsung SATAII
9600GT+7300GT+SLI-Bridge= 9600GT Brick
Old 9600GT broke 12 hours after purchase
GothicIII is offline  
Old June 7th, 2008   #7 (permalink)
B( o Y o )BS!
 
GiGaHeRz's Avatar
 
Join Date: Feb 2002
Location: Spain
Posts: 885
Quote:
Originally Posted by NODO-GT View Post
Ok I understand now
thank for explaining.
so it means that it is impossible to combine CPU and GPU load?
I heard that someone was making audio processing program on cuda...
and how do you think, how fast would be software gs rendering using cuda?
any ideas?
Audio using CUDA could be done, but the latency would probably be too high.
In any case, audio processing is a light task, and if properly optimized using MMX or SSE2+, it won't require more than 1-2% of a Core2-level cpu.

A GS implementation using CPU+CUDA (It can't be done compeltely on CUDA because of the same reason you can't emulate a cpu on it - not everything is parallel), if done in the right way, could maybe be as fast as hardware processing. Don't quote me on this if it actually doesn't work so well, because I'm saying this on guessing, and a very limited knowledge on the CUDA architecture, so everything I said could be proven wrong.
__________________
"There's only one absolute truth in our world: shït happens." - Gigaherz (whoever decided "s-h-i-t" is a obscene word needs to grow up a few years)

The Book and other stories:
Tears of Fantasy - An Online Book... by ME!
MetaLife, Inc. (intro)
SubGaea (intro)
Crow Blade (intro for now)
Memories - Prayer from the fallen hearts.

My weblog... not like if there was too much to read on it tho.
For anyone interested, there's a mirc script which converts "/me 's" into " * nickname's whatever" and adds a nice "/my" command.
GiGaHeRz is offline  
Old June 7th, 2008   #8 (permalink)
Emulation to the max!
 
Coolsvilleman's Avatar
 
Join Date: Jan 2004
Location: Canada
Posts: 2,491
Quote:
Originally Posted by GiGaHeRz View Post
As Krakatos said, CUDA is a highly parallel architecture. Each task you send to CUDA must always consist of AT LEAST 32 parallel threads executing THE SAME code (generally with different input data). This means whatever you do, must be a multiple of 32, which limits a lot what you can use CUDA for.

This means you could use CUDA to make a custom rendering engine (sending blocks of 8 pixels to be processed at once), but it would be mostly useless for anything else in the ps2. Even the VUs aren't parallel enough to be converted into CUDA programs.

CUDA is good for physics computing, big matrices, FFTing, ... I guess it could even be usable for audio processing, at some level (it most probably has too much latency for realtime low-latency audio filters), but it's not the right architecture to be used for PS2 emulation, xcept maybe software GS rendering.
Well kindof untrue. Sure you need 32 threads but there is nothing stopping you from sending the same data to like 4,5,6.... threads thereby wasting cycles but still possibly improving speed if the user has a beefy video card but horrible cpu.
__________________
Q6600 Core 2 Quad || Soundblaster X-Fi Extreme HD || e-VGA 8800GTX || 4096mb 4-4-4-12-2T Dual-Channel RAM || MSI P6N Diamond || 2x 320GB Hardrive || 5.1 Speakers || Remote control || 8x USB 2.0 || DVD/CD ±RW Drive || 1x IEEE1394

www.coolsvilleman.homedns.org Normally down. E-mail me for a DVD @ coolsvilleman@gmail.com
Coolsvilleman is offline  
Old June 7th, 2008   #9 (permalink)
B( o Y o )BS!
 
GiGaHeRz's Avatar
 
Join Date: Feb 2002
Location: Spain
Posts: 885
LOL anyone spending money on a GTX 280 when he has a celeron cpu shoudl be shot

Still what I meant is something like: The VU has 2 pipelines, each pipeline will execute different instructions, each one probably working on 4 number vectors, so it would mean you'd need 2 different "threads" each one executing 4 thigns at the same time: 28 wasted threads/group, and requiring 64 to work, which is pretty much inefficient, at least.
__________________
"There's only one absolute truth in our world: shït happens." - Gigaherz (whoever decided "s-h-i-t" is a obscene word needs to grow up a few years)

The Book and other stories:
Tears of Fantasy - An Online Book... by ME!
MetaLife, Inc. (intro)
SubGaea (intro)
Crow Blade (intro for now)
Memories - Prayer from the fallen hearts.

My weblog... not like if there was too much to read on it tho.
For anyone interested, there's a mirc script which converts "/me 's" into " * nickname's whatever" and adds a nice "/my" command.
GiGaHeRz is offline  
Old June 7th, 2008   #10 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Georgia
Posts: 32
hmm, so CUDA can't help to impruve PCSX2
and what about AA and AF. Can they be calculated on CUDA, while CPU will do what it is doing now? I may be asking stupid questions, because I'm not really in programming...
Someone has mentioned missing effects, maybe Post Processing Could be calculated by CUDA? or we will have problem with parallel architecture?
Sorry If I bothered someone...
NODO-GT is offline  
Old June 7th, 2008   #11 (permalink)
HardWareMan
 
Dragonheart.by's Avatar
 
Join Date: Nov 2007
Location: Belarus, Grodno
Posts: 379
Enabling postprocessing isn't a problem It was disabled in some games cuz it causes huge slowdown
__________________
http://pcclub.topbb.ru/ - ôîðóì ïîñâÿùåííûé æåëåçó, ñîôòó è ýìóëÿöèè. Ó íàñ âû ìîæåòå íàéòè ñêîìïèëèðîâàííûå âåðñèè PCSX2 è ïëàãèíîâ íà îñíîâå ÏÎÑËÅÄÍÅÃÎ êîäà!

<|> AMD Opteron 165 (Dual Core) Toledo E6 2.9 GHz <|> Zalman CNPS7000B-Cu <|> 1024 MB DDR PC-3200 (4 x 256 MB) 425 MHz 2.5-2-2-5-1T <|> GigaByte GA-K8NF-9 (nForce 4 - 4x) HT - 965 MHz <|> Axle GeForce 7600 GS 256 MB PCI-E GPU - 575/575/545 MHz, MEM - 770 MHz <|> Samsung HD080HJ 80 Gb, SATA 2, 8 MB Cache, 7200 RPM <|> Samsung HD321KJ 320 Gb, SATA 2, 16 MB Cache, 7200 RPM <|>Windows XP SP3 <|>
Dragonheart.by is offline  
Old June 7th, 2008   #12 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Georgia
Posts: 32
so is it possible to calculate Post Processing on CUDA? it won't effect CPU Load... and we will have much better graphics...
Is it possible?
+ AA and AF?
NODO-GT is offline  
Old June 7th, 2008   #13 (permalink)
B( o Y o )BS!
 
GiGaHeRz's Avatar
 
Join Date: Feb 2002
Location: Spain
Posts: 885
AA and AF are graphics options which NEED to be done while drawing. They affect how the hardware draws the polygons, so they can't be done "later".

If "calculate post processing" you mean add post-processing effects to the image AFTER it has been drawn, then yes you can use CUDA for image filtering, but you can also do it on Direct3D using shaders, so it doesn't really change much.
__________________
"There's only one absolute truth in our world: shït happens." - Gigaherz (whoever decided "s-h-i-t" is a obscene word needs to grow up a few years)

The Book and other stories:
Tears of Fantasy - An Online Book... by ME!
MetaLife, Inc. (intro)
SubGaea (intro)
Crow Blade (intro for now)
Memories - Prayer from the fallen hearts.

My weblog... not like if there was too much to read on it tho.
For anyone interested, there's a mirc script which converts "/me 's" into " * nickname's whatever" and adds a nice "/my" command.
GiGaHeRz is offline  
Old June 8th, 2008   #14 (permalink)
Just an Emu Nerd.
 
NexXxus's Avatar
 
Join Date: Jan 2006
Location: Cologne, Germany
Posts: 3,485
Quote:
Originally Posted by NODO-GT View Post
+ AA and AF?
AA+AF is already possible using nHancer
__________________
My System: C2D E6700 @2.67GHz | Asus P5W DH Deluxe | 4GB DDR2 800 | GeForce 8800GT Extreme
My EeePC 901 white: Intel Atom 1.6ghz | 2GB DDR2 667@533 | 4GB Main SSD | 64GB Additional SSD! | WinXP Home SP3 | 16GB Transcend SD | Logitech NX50 Laser Mouse

My FFXII GSdx Highres Screenshot Gallery (link fixed!) | mixed pcsx2 screenshots

Get the latest GSdx here and ZeroGS here
If you search for pcsx2 betas, look here (but no support in the forums for it!)
Tutorial: Hardware Antialiasing in PCSX2 (DX9 only)
NexXxus is offline  
Old June 8th, 2008   #15 (permalink)
Lego My Eggo
 
Xblade's Avatar
 
Join Date: May 2008
Location: St.Croix
Posts: 943
this discussion boggles my noob mind...
Xblade is offline  
Old June 8th, 2008   #16 (permalink)
Registered User
 
Join Date: Dec 2006
Location: ß
Posts: 351
Quote:
Originally Posted by NODO-GT View Post
I heard that someone was making audio processing program on cuda...
here i think you were talking about this: CUDA Coding Contest - NVIDIA

also, what everyone else said
__________________
AMD X2 5200+(65Watt)@3.2GHz | GTX280 | 4GB RAM | Vista Ultimate x64
shuffle2 is offline  
Old June 8th, 2008   #17 (permalink)
Yeah. Uh huh. Whatever!
 
Phil's Avatar
 
Join Date: Oct 2007
Location: In the poorest part of the second richest area in the entire country
Posts: 4,786
Quote:
Originally Posted by Xblade View Post
this discussion boggles my noob mind...
Google is your friend.

Anyway, unless you tend to rewrite pcsx2 from the ground up to be Gpu dependant (makes no sense), then CUDA is a no go.

(And I wish nVidia would change the friggin name, a Cuda is a 1970 American musclecar with 370 hp and a ferocious demeanor, not some lowly architecture)
__________________
Phil is offline  
Old June 8th, 2008   #18 (permalink)
Registered User
 
Join Date: Jan 2008
Location: Georgia
Posts: 32
Quote:
Originally Posted by NexXxus View Post
AA+AF is already possible using nHancer
I have latest version of nHancer, but I can't enable AA?
which settings Should i use?
Sorry For Off Topic
Can you send me PM about this?
When i change AA and AF settings they don't have any effect. when using GSDX.... don't know about ZeroGS

So there is nothing that CUDA can help with...
thanks for answering my questions

What about ray tracing? I know it's totally depended on CPU, but maybe using this technology would be faster?...
NODO-GT is offline  
Old June 8th, 2008   #19 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 561
If you don't even know why that's a bad idea, you really shouldn't be trying to make suggestions to speed up PCSX2. Ray tracing is slow, and it relies on a completely different model of rendering objects (Which isn't compatible with many methods PS2 games can use to render scenes. And even in games where ray tracing could be done, you'd have to do a fair bit of work to change how the entire scene is being drawn).

If you know nothing about programming or 3D rendering, and you have a suggestion on how to speed things up, it's almost certainly either a really bad idea, or devs have already considered it.
ChickenLiver is offline  
Old June 8th, 2008   #20 (permalink)
Registered User
 
Krakatos's Avatar
 
Join Date: Apr 2007
Location: Italy
Posts: 286
Really NODO-GT, it's time you stop spouting random suggestions when you don't know anything.

You've been told time and time again that it would not help in any sane way as of now, so just stop please.
Krakatos is offline  
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

All times are GMT. The time now is 05:56.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5