Adding OpenCL implementation