OpenCL kernels split further for optimization