added basic opencl infrastructure, given up on it