One very important issue with OpenCL code at the moment is that it needs to either be compiled at runtime by vendor’s compilers or be precompiled but also restricted to the hardware it has been precompiled to. This is a problem because programmers cannot protect sensitive parallel code unless it is delivered precompiled to each specific platform, a very tedious task that completely challenges the goals of having an open specification.
Khronos’ SPIR (Standard Portable Intermediate Representation) specification is an important step towards protecting sensitive source code while still maintaining cross-platform capabilities.
This may very well be the last step that gaming industry and multimedia processing companies were waiting to fully incorporate heterogeneous computing into their applications.
Further details can be found at