我希望能够像Windows任务管理器一样,测量每个进程的GPU使用情况,但是在尝试使用pyNVML库时遇到了几个问题。因此我有几个问题。
首先,在Windows中是否可以使用Python测量每个进程的精确GPU使用情况呢?我已经尝试过nvidia-smi查询,但似乎无法显示每个进程的内存使用和利用率百分比。
其次,如果可以用Python这种方式测量GPU使用情况,我想以与Windows 10的任务管理器类似的方式进行测量和显示。
以下是我的代码:
首先,在Windows中是否可以使用Python测量每个进程的精确GPU使用情况呢?我已经尝试过nvidia-smi查询,但似乎无法显示每个进程的内存使用和利用率百分比。
其次,如果可以用Python这种方式测量GPU使用情况,我想以与Windows 10的任务管理器类似的方式进行测量和显示。
以下是我的代码:
nvmlInit()
deviceCount = nvmlDeviceGetCount()
#print(deviceCount)
for device_id in range(deviceCount):
hd = nvmlDeviceGetHandleByIndex(device_id)
#print(handle)
cps = nvmlDeviceGetGraphicsRunningProcesses(hd)
for ps in cps :
pp = ps.pid
#print(pp)
try :
name = str(nvmlSystemGetProcessName(ps.pid))
n = name.split("\\")
#print(n[len(n)-1][:-1])
process_name = n[len(n)-1][:-1]
if process_name == 'chrome.exe':
print(process_name, pp, ps.usedGpuMemory)
except:
pass
我的结果:
chrome.exe 16688 None
如您所见,此方法无法显示每个进程的GPU内存使用情况,但我需要taskmgr的GPU部分所显示的信息。(我不需要可视化。)
我的电脑配置是Windows 10专业版,GTX 950,i5-6600.
如果目前Python无法实现此功能,请问您有什么其他建议可以自动收集每个进程的GPU使用情况。
谢谢。