OpenCL.lib and multivendor implementation

Discussion created by bubu on Aug 10, 2009
Latest reply on Jul 26, 2010 by lsolano
OpenCL.lib and multivendor implementation




I'm, writing an application that gonna use OpenCL.

You've currently available a beta OpenCL SDK that requires to link with OpenCL.lib(which indirectly also requires a OpenCL.dll). The question is... imagine I want to use both ATI, NVIDIA and ClearSpeed OpenCL implementations in the same .EXE. How OpenCL.lib would find the proper OpenCL.dll? I bet there will be a conflict...

I think the solution is to modify a bit how you deploy the OpenCL.lib.

1. Rename the OpenCL.dll to ATI_OpenCL_1_0_0.dll ( include company's name + version to avoid DLL hell ).


And other question...

How can I enumerate all the OpenCL devices in a machine? Can I use your SDK to enumerate and use, for example, a NVIDIA graphics card? I need a way to do that... like DX10 does with the IDXGIFactory/IDXGIAdapter/IDXGIOutput. A good separation between the Interface and Implementation is vital.