Since I assume there will be multiple implementations of OpenCL on some platforms, is there any thought being given to how an implementation might be selected at runtime?

Say an application (or a user of an application) would like to switch between two different OpenCL implementations. There doesn't seem to be anything in the specification related to this.

By analogy to OpenGL, this is like a platform layer that could select an implementation. This also avoids the problem of having different versions of the same implementation bound to various applications on the system.

Providing platform standards for this scenario would make the openness of OpenCL more significant. If applications are tightly bound to a particular implementation and version the OpenCL ecosystem will suffer.

If Khronos is not doing anything along these lines, are any members working on this?