没有特殊标志的cudaMallocHost()和cudaHostAlloc()之间有什么区别吗?

时间:2016-02-21 12:01:57

标签: c++ memory-management cuda

在CUDA中,我想知道cudaMallocHost()cudaHostAlloc()之间的区别。

他们在API参考文献中的相应摘要说:

  • cudaMallocHost() :“在主机上分配页面锁定的内存。”
  • cudaHostAlloc() :“在主机上分配页面锁定的内存。”

进一步的描述似乎只是可以为cudaHostAlloc()指定的附加标志。前者是仅仅为了向后兼容还是仅存在实际差异?

PS - 让我们假设CUDA 6.5及更高版本。

1 个答案:

答案 0 :(得分:8)

据我所知,当cudaHostAlloc使用默认标志并且调用在UVA平台上运行时,它们是相同的。当引入统一的虚拟地址模型时,有必要扩展API以允许便携式存储器和其他新功能,而且它似乎而不是摆弄现有的功能,一种新的瑞士军刀"而是引入了样式API。