在CUDA中,我想知道cudaMallocHost()
和cudaHostAlloc()
之间的区别。
他们在API参考文献中的相应摘要说:
cudaMallocHost()
:“在主机上分配页面锁定的内存。”cudaHostAlloc()
:“在主机上分配页面锁定的内存。”进一步的描述似乎只是可以为cudaHostAlloc()
指定的附加标志。前者是仅仅为了向后兼容还是仅存在实际差异?
PS - 让我们假设CUDA 6.5及更高版本。
答案 0 :(得分:8)
据我所知,当cudaHostAlloc
使用默认标志并且调用在UVA平台上运行时,它们是相同的。当引入统一的虚拟地址模型时,有必要扩展API以允许便携式存储器和其他新功能,而且它似乎而不是摆弄现有的功能,一种新的瑞士军刀"而是引入了样式API。