if i am having two gpu say intel and nvidia (i have cpu of intel ,graphics inbuilt) if i am not doing anything for platform in opencl program and i am using paths of sdks ,(in my visual studio program) of NVIDIA then which gpu will be used by the program (intel graphics or nvidia).intel cpu graphics card’s opencl sdk is also installed on my system but i am not using that path of sdk for my visual studio program (in which my opencl program is written)
can u pls tell
pls reply forum
The SDK you use when you compile your application doesn’t affect which platforms and devices your application will see when it is run. All of the vendors use compatible headers and library files. So if you use the Intel SDK (for example) to build, and take that binary to an AMD-based machine, that application should see the AMD platform and devices.
The OpenCL ICD (the DLL on Windows that you link against) should also work for multiple vendor platforms. So if you have an NVIDIA card in an Intel machine, your application should see mutiple OpenCL platforms, even if the application was compiled against the AMD SDK (for example). The application could then pick which device it wants to target.
This all assumes the target machine has the proper drivers/redistributables installed for OpenCL, of course. And for integrated GPUs on Windows, there are scenarios that will prevent them from being used when a discrete GPU is also installed.
it means that if i am using sdk of any platform and it is not necessary that it should be of the same platform to run the opencl program, on which it is running…
am i right?
That’s correct. You still should test with different vendors implementations, but compiling and linking your host code can be done with any SDK.