CUDA 10.0 中 cudaMallocHost 的优化:使用 cudaHostAlloc 提高性能和可移植性
在 CUDA 10.0 中,应用调用 API 'cudaMallocHost' 时,libcudart.so 中的 'cudaHostAlloc' 会被调用,而不是 'cudaMallocHost'。这是因为在 CUDA 10.0 中,nvcc 对 'cudaMallocHost' 进行了优化,使其使用 'cudaHostAlloc' 作为实现,以提高性能和可移植性。
具体来说,CUDA 10.0 中的 nvcc 在处理 'cudaMallocHost' 时,会将其转换为对 'cudaHostAlloc' 的调用。这样做的好处是,通过使用 'cudaHostAlloc',可以获得更好的性能和可移植性。因为 'cudaHostAlloc' 不仅可以在所有支持 CUDA 的设备上使用,还可以在不支持 'cudaMallocHost' 的系统上使用,例如在 Windows 上的 WDDM 环境中。
另外,'cudaHostAlloc' 还支持更多的选项和功能,例如可以指定内存类型、映射等。
综上所述,CUDA 10.0 中的 nvcc 对 'cudaMallocHost' 进行了优化,使其使用 'cudaHostAlloc' 作为实现,以提高性能和可移植性。
原文地址: https://www.cveoy.top/t/topic/nVZt 著作权归作者所有。请勿转载和采集!