separate functions, of explicitly managing data transfer between the host and GPU memories, and of