CUDA 10.0 中 cudaMallocHost 为什么调用 cudaHostAlloc?
在 CUDA 10.0 中,应用程序调用 'cudaMallocHost' 时,'libcudart.so' 中的 'cudaHostAlloc' 会被调用,这是因为 'cudaMallocHost' 和 'cudaHostAlloc' 都是用于在主机上分配内存的 CUDA API 函数,但它们的实现方式略有不同。
'cudaMallocHost' 在主机上分配可访问 GPU 的内存,它返回的指针可以在主机和设备之间传递,并且可以通过 CUDA API 调用在 GPU 上使用。而 'cudaHostAlloc' 在主机上分配可访问 CPU 的内存,它返回的指针只能在主机上使用。
在 CUDA 10.0 中,为了兼容之前的版本,'cudaMallocHost' 在内部使用 'cudaHostAlloc' 来实现。这意味着,当应用程序调用 'cudaMallocHost' 时,'libcudart.so' 中的 'cudaHostAlloc' 会被调用。
原文地址: https://www.cveoy.top/t/topic/nVZg 著作权归作者所有。请勿转载和采集!