code: def _LoadNvmlLibrary():
      
      global nvmlLib
  
      if (nvmlLib is None):
          # lock to ensure only one caller loads the library
          libLoadLock.acquire()
  
          try:
              # ensure the library still isn't loaded
              if (nvmlLib is None):
                  try:
                      if (sys.platform[:3] == "win"):
                          searchPaths = [
                              os.path.join(os.getenv("ProgramFiles", r"C:\Program Files"), r"NVIDIA Corporation\NVSMI\nvml.dll"),
                              os.path.join(os.getenv("WinDir", r"C:\Windows"), r"System32\nvml.dll"),
                          ]
                          nvmlPath = next((x for x in searchPaths if os.path.isfile(x)), None)
                          if (nvmlPath == None):
                              _nvmlCheckReturn(NVML_ERROR_LIBRARY_NOT_FOUND)
                          else:
                              # cdecl calling convention
                              nvmlLib = CDLL(nvmlPath)
                      else:
                          # assume linux
                          nvmlLib = CDLL("libnvidia-ml.so.1")
                  except OSError as ose:
                      _nvmlCheckReturn(NVML_ERROR_LIBRARY_NOT_FOUND)
                  if (nvmlLib == None):
                      _nvmlCheckReturn(NVML_ERROR_LIBRARY_NOT_FOUND)
          finally:
              # lock is always freed
              libLoadLock.release()
docs: Load the library if it isn't loaded already