adding OpenCL support