I was expecting directManagedMemAccessFromHost to be 1 on the GB200 since it should not incur page faults, however, I see it is set to 0 on the instance I’m using. Why is this the case? How is this parameter configured?
python3 -c 'import ctypes as C; r=C.CDLL("/usr/local/cuda/lib64/libcudart.so"); n=C.c_int(); r.cudaGetDeviceCount(C.byref(n)); \[(lambda v:(r.cudaDeviceGetAttribute(C.byref(v),101,d),print(f"GPU{d}: directManagedMemAccessFromHost={v.value}")))(C.c_int()) for d in range(n.value)\]'
GPU0: directManagedMemAccessFromHost=0
GPU1: directManagedMemAccessFromHost=0
Oddly, every other property related to coherence such as atomic support is set
visible_cuda_devices=2
cuda_driver_version=13000
cuda_runtime_version=12080
device=0
name=NVIDIA GB200
compute_capability=10.0
global_memory_bytes=197897617408
l2_bytes=135528448
multiprocessors=152
clock_rate_khz=2062000
memory_clock_rate_khz=3996000
managed_memory=1
concurrent_managed_access=1
pageable_memory_access=1
pageable_uses_host_page_tables=1
direct_managed_access_from_host=0
host_native_atomic_supported=1
unified_addressing=1