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