【发布时间】:2016-06-28 21:58:26
【问题描述】:
假设我的设备是 Kepler 及更高版本,CUDA 为 6.5 或更高版本,而我的驱动程序最早是 2015 年的。
是否可以与cudaHostGetDevicePointer()相反?即,提供一些映射内存的设备端表现的地址,获取主机地址?
【问题讨论】:
标签: c++ memory-management cuda mapped-memory
假设我的设备是 Kepler 及更高版本,CUDA 为 6.5 或更高版本,而我的驱动程序最早是 2015 年的。
是否可以与cudaHostGetDevicePointer()相反?即,提供一些映射内存的设备端表现的地址,获取主机地址?
【问题讨论】:
标签: c++ memory-management cuda mapped-memory
如果你运行在一个支持统一寻址的平台上,你可以调用cudaPointerGetAttributes任何一个在统一地址空间中注册或分配的指针。函数返回一个结构体
struct cudaPointerAttributes {
enum cudaMemoryType memoryType;
int device;
void *devicePointer;
void *hostPointer;
int isManaged;
}
它将告诉您内存的设备和主机地址,以及它实际驻留在哪个设备上,或者它最初是在哪个设备上下文中注册的(用于主机内存)。
如果您无法访问统一寻址,我认为没有办法实现这一点。
【讨论】: