I would like to get started with programming in oenCL and I'm not sure where to begin.
---1)First of all, what are my possibilities for openCL implementations and what are the inconvenients of using one of them?
I've heard of ATI stream, openTK and Nvidia's openCL.
ATI Stream is incomplete, but I can wait until q4 of 2009.
I had trouble understanding if openTK has an implementation for openCL and if I can compile openCL code with it without needing more than a c compiler.
NVIDIA's is said to be kind of functional, but I have an ATI card and it is mentioned in the faq that I have to recompile a program in order for it to work on other cards:
"At this time, AMD does not plan to have the ATI Stream SDK support GPU products from other vendors; however, since OpenCL is an industry standard programming interface, programs written in OpenCL 1.0 can be recompiled and run with any OpenCL-compliant compiler and runtime."
but on other forum someone replied:
"They are just different implementations of the same API (the same as the difference between NVIDIA and AMD's OpenGL drivers). Programs written to the spec should run correctly on any hardware, this is one of the main advantages of OpenCL."
(I don't have to recompile a program using openGL in order to work on different cards, or is it about the runtime compilation that doesn't affect the user)
---2)Is there a tutorial or something to bring a bit of light into preparing the computer for compiling OpenCL code? And is the executable program portable to other GPU's?
Thank you, and sorry for the long and ambiguous question.