Added OpenCL implementation