I have implemented a tool that loads the OpenCL dll at run-time, in theory making it independent of which actual driver it is used with. It is available with full source code at http://clcc.sourceforge.net if you would like to try it out.
The solution of one DLL to communicate with every vendor’s drivers is correct, like OpenGL32.dll itself.
The question is who will create this DLL for every platform? Another open-source project? Maybe.
My question: I write a commercial program with heavy parallel computations. OpenCL is manna from heaven for me. But I want to sell my program alone, without a specific GPU. My program must work with every hardware configuration (even GPU without OpenCL support) and primary on Windows, secondary on Linux.
Is this possible, or I must use only CPU for now, and make an update with OpenCL support after 2, 5, 10 years?