added cuda and opencl