Issure for using unified memory API on NVIDIA A100 ampere architecture

Hello, I would like to ask a question about using APIs related to Unified memory on Nvidia A100 machines.

When calling the function cudaMallocManaged(), the following error code is returned.

This error indicates the attempted operation is not supported on the current system or device.

When using the structure ‘cudaDeviceProp’ and the function cudaGetDeviceProperties() to check whether the managed memory is supported, it was confirmed that it is not supported.

cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, 0);
printf(“Device name: %s\n”, deviceProp.name);
if (!deviceProp.managedMemory)
{
fprintf(stderr, “Unified Memory not supported on this device\n”);
}
else
{
printf(“This device supports unified memory management\n”);
}

Here are my GPU related settings:

nvidia driver: 510.85.02
CUDA Toolkit: cuda 11.1
Device name: GRID A100D-16C

Do I need to do anything to program using unified memory related APIs including cudaMallocManaged on A100 machines?

Unified memory is not enabled by default on a vGPU instance.
It can be enabled, but AFAIK requires the GPU to be in pass through mode. If you’re not able to follow the documentation, I suggest requesting support using your vGPU support entitlement, or post your question on the vGPU forums.

1 Like