J the Ninja wrote:Fairly experienced computer user, has a working knowledge of scripting, but cannot program. Wants to learn OpenCL. Where do I start?
Disclaimer: I don't know OpenCL but I know CUDA, which is somewhat similar. (If you were wanting to learn CUDA I would suggest learning C to a good working standard, learning some basic parallel programming, and then picking up NVIDIA's CUDA Programming Guide.)
For OpenCL, I had a quick look and it seems like there is a fairly well-developed Python binding: PyOpenCL
. So perhaps you could develop/refresh your Python skills, and then look at that. In any case, OpenCL is not a language as such, and you will have to learn a programming language (Python, C, C++, ...) before you can use it.
In addition, be aware that OpenCL is fairly bleeding-edge and, as something designed to execute on heterogeneous platforms (in particular many-core platforms like GPUs), is pretty difficult. So I suggest taking some time to develop a solid programming base (e.g. Python) before tackling it. But have a particular OpenCL binding (e.g. PyOpenCL) in your sights as you do so. (Incidentally, even using the Python binding, a basic knowledge of C will be helpful and perhaps essential.)
The material here
might be useful.
Generally I try to make myself do things I instinctively avoid, in case they are awesome.