是否与cudaHostGetDevicePointer()相反?

时间:2016-03-14 00:38:49

标签: c++ memory-management cuda mapped-memory

假设我的设备是Kepler及以上,CUDA是6.5或以上,我的驱动程序最早是从2015年开始的。

可以与cudaHostGetDevicePointer()相反吗?即,提供一些映射存储器的设备侧表现的地址,获得主机地址?

1 个答案:

答案 0 :(得分:1)

如果您在具有统一寻址支持的平台上运行,则可以在统一地址空间中注册或分配的任何指针上调用cudaPointerGetAttributes。该函数返回一个结构

  struct cudaPointerAttributes {
          enum cudaMemoryType memoryType;
          int device;
          void *devicePointer;
          void *hostPointer;
          int isManaged;
      }

它将告诉您内存的设备和主机地址,以及它实际驻留在哪个设备上,或者它最初注册的设备上下文(主机内存)。

如果您无法访问统一寻址,我认为没有办法实现这一目标。