我想知道在分配缓冲区之前我的设备上有多少可用内存。这可能吗?我知道总内存有CL_DEVICE_GLOBAL_MEM_SIZE,而单个对象的最大大小有CL_DEVICE_MAX_MEM_ALLOC_SIZE,但我想知道当前的内存状态。
CL_DEVICE_GLOBAL_MEM_SIZE
CL_DEVICE_MAX_MEM_ALLOC_SIZE
目前我可能不得不使用OpenGL特定于供应商的扩展。
不,没有办法,也没有必要知道它,GPU内存可以虚拟化,驱动程序将在/不需要时从GPU交换内存。
你可以在nVidia上使用GL_NVX_gpu_memory_info。