4 ms·
True, why not utilize OpenCL but invent another alternative?
by moondowner 15y ago
True, why not utilize OpenCL but invent another alternative?
- rbanffy 15y agoBecause that would make it easier to port things away from Windows.
- profquail 15y agoOpenCL is equivalent to OpenGL -- runs on Windows, Linux, etc. (even coming to smartphones soon). C++ AMP is based on the DirectCompute APIs in DirectX 11. My $.02 -- maybe the target audience for C++ AMP is different than the target audience for OpenCL. Before it was released, I really liked the idea of OpenCL but in practice it doesn't really deliver very well (performance-wise) compared to alternatives like nVidia CUDA, AMD APP (formerly Stream), and DirectCompute.
- andrewcooke 15y agowhat? i've seen no performance difference between CUDA and OpenCL (targeting NVidia hardware). they are so low level and so similar that it's hard to see how there can be differences. what are you referring to?
- marshray 15y agoI've seen papers where the author seemed to do a respectable job of benchmarking and usually CUDA came out 10% to (rarely) 40% faster. Still not enough of a gain to prompt me to marry a hardware-vendor-specific language. I think people like CUDA because Nvidia puts a serious effort into their development tools and Marketing. That's not meaningless.
- profquail 15y agoThe problem is this -- go ahead and take that OpenCL code and run it on some non-nVidia hardware. For any reasonably complex code, it turns out that you really need to optimize specifically for whatever hardware you're running on. So, while you may be using a standardized API, you still have to write specific versions of your code for each platform that you want to get the best performance on. IMO, developers would rather write against a non-standard API (a la C++ AMP) that ran at a consistently good performance level across all of their targets (nVidia/AMD/Intel GPUs, multicore CPUs, etc.).
- deleted 15y ago[deleted]
- stonemetal 15y agoThis isn't something that fell out of a tree yesterday. They have been working on this for a while, more than likely since before OpenCL looked like it was going to take off. In fact they already ship a GPU compute API as part of DirectX(compute shaders). My guess is they are just pulling that out of DirectX to make a stand alone project.