Phoronix: StarPU: Hybrid CPU/GPU Task Programming
Announced this week to the GCC developers was the release of StarPU 1.0.0 for hybrid CPU/GPU task programming...
http://www.phoronix.com/vr.php?view=MTA4MDI
Printable View
Phoronix: StarPU: Hybrid CPU/GPU Task Programming
Announced this week to the GCC developers was the release of StarPU 1.0.0 for hybrid CPU/GPU task programming...
http://www.phoronix.com/vr.php?view=MTA4MDI
Would it automaticaly use opencl where best suited or would you still have to program for opencl?
From what I understand reading their website, you write multiple versions of your code. For example, you provide three implementations of your foo() function: foo_cpu(), foo_cuda() and foo_ocl(). The runtime decides automatically which one to use when you call foo().
I might be wrong though, since I didn't bother to download anything or look at examples.
And last time I checked only worked on Nvidia GPUs. So why write for less then one 3rd of the market? Most people are going to be using Intel followed by AMD GPUs. Pretty much only Intel gamers that don't use Gallium3D drivers are going to even consider Nvidia, thus I don't see how it justifies the extra effort to write specifically for CUDA unless it's for a very specific task where you're using a bunch of Tesla nodes.
Usually you don't write CUDA programs for desktop systems. You write them for yourself, your organization, or for entities that want to get the job done.
If you want to target the consumer market, using OpenCL sounds better. Though I think it might lose to Microsoft's DirectCompute part of DirectX; on developer's forums, you usually see CUDA developers going to DX much more often than they go to OpenCL. (This smells like the OpenGL vs D3D thing all over again...)