Forum Index  >>  RetroCopy General  >>  

OpenCL (Open Computing Language) ??

      

   Page 1 of 1   

1 year ago - Saturday, July 17, 2010
Type: Member
Posts: 116
Joined: 11/5/2009
This is very handy for offloading (if this is the right word) a CPU..

Maybe an option for the emu?
1 year ago - Saturday, July 17, 2010
Type: Administrator
Posts: 1336
Joined: 7/19/2009
Yeah it's an interesting thing coming up, but I think at the moment it's still a little immature to use in a viable product. At least for an emulator. It does offer some interesting capabilities though in the way of allowing people to "add on" more power to their computer. For instance you could have one GPU helping out with emulation in RetroCopy and one pumping out the 3D graphics.

I think these sorts of things will be a bigger help with more accurate PSX/N64/XBOX type emulators going forward. Though I hope there are improvements to CPUs also, 64 or 128 cores becoming the norm over the next few years would help programmers out a bit in the way of being able to split up tasks more efficiently.
1 year ago - Sunday, July 18, 2010
Type: Member
Posts: 116
Joined: 11/5/2009
So its difficult to implement in Retro-Copy?

I thought it was some easy or minor code to apply to get it to work.. :p
1 year ago - Sunday, September 19, 2010
Type: Member
Posts: 116
Joined: 11/5/2009
My laptop is already to slow.. so if you enable OpenCL 1.1 will it help?

I know you want to add this maybe later but with the geforce (not the one i posted) 260.63 beta driver it is working fine with another emu dolphin..

Now dolphin is a gamecube emulator and i can play it smooth with OpenCL enabled @ 1680x1050..

If you could add the option to enable/disable it..
Or you can explain me why it can/not help.. :p

(copy'd) ;)

GeForce GTS 250: 16 compute units. The GTS 250 has 128 scalar processors then each compute unit has 8 OpenCL processing elements (128 / 16).

GeForce GTX 280: 30 compute units. The GTX 280 has 240 scalar processors then each compute unit has 8 OpenCL processing elements (240 / 30).

Radeon HD 5770: 10 compute units. We know a HD 5770 has 160 vec5 processors. 160 vec5 processors are equivalent to 800 scalar processors. Each compute unit has then 80 OpenCL processing elements (800 / 10).

Radeon HD 5870: 20 compute units. We know a HD 5870 has 320 vec5 processors. 320 vec5 processors are equivalent to 1600 scalar processors. Each compute unit has then 80 OpenCL processing elements (1600 / 20).

Radeon HD 5670: 5 compute units (or 5 SIMD engines). From here, we know a HD 5670 has 400 stream processors: 400 / 5 = 80 OpenCL processing elements.


Now since i'm not that smart.. how much cores/threads would a GTS 250 get with opencl enabled? (8?)
Or am i thinking wrong about this?? :question:






1 year ago - Sunday, September 19, 2010
Type: Administrator
Posts: 1336
Joined: 7/19/2009
I don't know exactly what OpenCL is used for in dolphin, but I'm guessing it's the graphics. When it comes to cycle accuracy there isn't much you can do in the way of parallelism (splitting things up into smaller problems).

The obvious thing to most people is splitting up each emulated core and putting that on its own core. So the Genesis 68000 would be on one core, Z80 on another, the two sound chips on another, etc. The problem is when you're at the cycle level you can't really get much benefit from doing this, at least on current processors. The reason.... simple communication between two cores on our CPUs is just too slow! And you need to do this often. The only person I know of doing work in this field is NEMESIS with his Genesis emulator, and it hasn't been released yet.

If the CPU manufacturers start implementing better multicore support (which is inevitable) then these multicore solutions for accurate emulators will be more likely. RetroCopy is designed like real hardware so taking advantage of these changes will be possible when they become available.

When I started working on RetroCopy I knew with what I was doing it was going to be more future orientated than now orientated (this was 2008, it's a bit different now). With my code I won't need to work on it again (except when bugs are found) because it's as accurate as you need it to be to run 100% of software. So as new platforms become available in the future, with their faster CPUs, RetroCopy can quickly be ported and be 100% accurate.

Getting back to OpenCL, I will use it when I can see an advantage in it. OpenCL will only keep on improving and adding more features while the GPUs become more powerful. There are certainly other areas of RetroCopy that can take advantage of it (sound processing, GUI, 3D graphics, etc).
1 year ago - Sunday, September 19, 2010
Type: Member
Posts: 116
Joined: 11/5/2009
Aahh that's a clear answer, thank you..

   Page 1 of 1   



RetroCopy: Making emulation easy and fun.
  |   RetroCopy © 2011