Can’t seem to get cu(da)MemPoolCreate to succeed. My code is pretty simple:
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = false;
sa.lpSecurityDescriptor = NULL;
CUmemPoolProps poolProps;
memset(&poolProps, 0, sizeof(poolProps));
poolProps.allocType = CU_MEM_ALLOCATION_TYPE_PINNED;
poolProps.handleTypes = CU_MEM_HANDLE_TYPE_WIN32;
poolProps.location.type = CU_MEM_LOCATION_TYPE_DEVICE;
poolProps.location.id = 0;
poolProps.win32SecurityAttributes = &sa;
if (cuMemPoolCreate(&pool, &poolProps) == CUDA_SUCCESS)
I always get CUDA_ERROR_INVALID_VALUE, no matter what I do, also when using a more complicated security descriptor. What am I missing? The only way to make the API call succeed is by not trying to make the pool exportable (by using CU_MEM_HANDLE_TYPE_NONE). But making the pool multi-process capable is why I want to use these APIs in the first place.
4080, 537.13, Windows 10