Programming OpenCL using runtime compilation