1) Intel SDK offers OpenCL 1.2 support for processors and GPU devices (e.g. i7, HD4000, Xeon Phi, etc.), AMD SDK offers OpenCL 1.2 support for processors and GPU devices (e.g. Opteron, HD5xxx, HD6xxx, HD7xxx etc.), the NVIDIA SDK only offers OpenCL 1.1 support for GPUs (e.g. GTX 2xx, GTX 4xx, GTX 5xx, Tesla, etc.).
2) Yes, from Apple, ARM, etc.
3) Yes, thanks to the OpenCL ICD, you can compile the executable file on the NVIDIA SDK and run it on AMD hardware. However, you should be careful with versions of OpenCL, some problems may arise when compiling with the OpenCL 1.2 SDK and running on 1.1. platforms.
4) Yes, you can query OpenCL at runtime for a list of available platforms and use one or all of them. I use an Intel OpenCL CPU everyday device next to several AMD OpenCL GPUs.
source share