class_docstr: Loader for libnvidia-ml.so
code: def load(self):
      with self._lib_lock:
          if self._nvmlLib is None:
              self._nvmlLib = CDLL("libnvidia-ml.so.1")
  
              function_pointers = [
                  "nvmlDeviceGetName",
                  "nvmlDeviceGetUUID",
                  "nvmlDeviceGetMemoryInfo",
                  "nvmlDeviceGetUtilizationRates",
                  "nvmlInit_v2",
                  "nvmlShutdown",
                  "nvmlDeviceGetCount_v2",
                  "nvmlDeviceGetHandleByIndex_v2",
              ]
  
              self.func_ptr = {
                  n: self._function_pointer(n)
                  for n in function_pointers
              }
  
imports: import threading
  from ctypes import CDLL, POINTER, Structure, byref, c_uint, c_ulonglong, create_string_buffer
label_desc: Use image node_id 1 for calling the NVML obj's underlying member method code with example usage: obj.load() without return types