If compilation time for an OpenCL* program is of concern, consider reusing compilation results. It is typically faster than recreating you program from the source, but you should check if this is true for your specific program and device.
To retrieve binaries generated from calls to clCreateProgramWithSource and clBuildProgram, you can call clGetProgramInfo with the CL_PROGRAM_BINARIES parameter. For the performance-critical applications that typically precompile kernel code to an intermediate representation (IR), you can cache the resulting binaries after the first OpenCL* compilation and reuse them on subsequent executions by calling clCreateProgramWithBinary. Another way to save intermediate binaries is to use the Intel® SDK for OpenCL Applications - Offline Compiler tool, as described in the Intel SDK for OpenCL Applications 2013 R3 - User’s Guide.
Intermediate representations are different for the CPU and the Intel® Processor Graphics devices.
Parent topic: Application-Level Optimizations