opencl backend: separate copying of memory to device from buffer allocation