假设我的设备是Kepler或更高版本,CUDA是6.5或更高版本,并且我的驱动程序最早是2015年开始的。
可以做相反的事情cudaHostGetDevicePointer()
吗?即,提供一些映射内存的设备端清单的地址,获得主机地址?
如果您在具有统一寻址支持的平台上运行,则可以在统一地址空间中注册或分配的任何指针上调用cudaPointerGetAttributes。该函数返回一个结构
struct cudaPointerAttributes {
enum cudaMemoryType memoryType;
int device;
void *devicePointer;
void *hostPointer;
int isManaged;
}
这将告诉您内存的设备和主机地址,以及它实际驻留在哪个设备上,或者它最初在哪个设备上下文中注册(用于主机内存)。
如果您无权访问统一寻址,那么我不认为有办法实现这一目标。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句