From 41601f50b84c02bc32cd55943adb0b6df31d404b Mon Sep 17 00:00:00 2001 From: iperov Date: Fri, 5 Apr 2019 21:33:53 +0400 Subject: [PATCH] upd pynvml.py --- nnlib/pynvml.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/nnlib/pynvml.py b/nnlib/pynvml.py index b5cf0ec..5cc5a50 100644 --- a/nnlib/pynvml.py +++ b/nnlib/pynvml.py @@ -636,9 +636,16 @@ def _LoadNvmlLibrary(): if (nvmlLib == None): try: if (sys.platform[:3] == "win"): - # cdecl calling convention - # load nvml.dll from %ProgramFiles%/NVIDIA Corporation/NVSMI/nvml.dll - nvmlLib = CDLL(os.path.join(os.getenv("ProgramFiles", "C:/Program Files"), "NVIDIA Corporation/NVSMI/nvml.dll")) + 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") @@ -1668,7 +1675,7 @@ def nvmlSystemGetTopologyGpuSet(cpuNumber): if ret != NVML_SUCCESS: raise NVMLError(ret) - print ("c_count.value") + print(c_count.value) # call again with a buffer device_array = c_nvmlDevice_t * c_count.value c_devices = device_array() @@ -1717,4 +1724,4 @@ def nvmlDeviceGetCudaComputeCapability(device): if (ret != NVML_SUCCESS): raise NVMLError(ret) - return c_major.value, c_minor.value + return c_major.value, c_minor.value \ No newline at end of file