Can anyone please explain to me how a system handles 2 implementations of opencl.(For example: intel and nvidia implementations).
How appropriate backend compilers are used in the function clProgramBuild()?
Hello Shweta Shree,
This is made possible by the OpenCL ICD. It is documented at: http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt, here's a quote:
This extension defines a simple mechanism through which the Khronos
installable client driver loader (ICD Loader) may expose multiple
separate vendor installable client drivers (Vendor ICDs) for
OpenCL. An application written against the ICD Loader will be able to
access all cl_platform_ids exposed by all vendor implementations
with the ICD Loader acting as a demultiplexor.
You can read more details in the linked page and by googling "opencl icd".