internal and small opencl changes