So far I have been maintaining some code that uses CUDA and there is a vanilla C++ version.
Now, I would like to move everything to OpenCL and please correct me if I am wrong:
- I should be able to maintain a single OpenCL code base. My project is open source and as long as a user can get an OpenCL compiler for their system, they should be able to build the code for the underlying hardware. For example, if the user only has a quad core CPU, the code should be able to take advantage of that. Otherwise, if they have a OpenCL compatible graphics card, it should be able to take advantage of that.
- Also, I am very confused as to what I need to start doing the development. I have an AMD CPU and an NVIDIA GPU. Now, do I need to ensure that I install the AMD SDK and the NVIDIA SDK or is there one SDK that can take care of all of this. With such multiple devices supporting OpenCL, how is all of this managed?
I would be grateful if someone could point out a good starting point and how to solve this SDK issue. I am going to use OpenCL for pure computation (image processing algorithms primarily).
Many thanks and I look forward to the replies,