use map/unmap to move data between host and device