Как измерить использование GPU на процесс в Windows, используя python?

Я хотел бы измерить использование графического процессора для каждого процесса, как это делается в Windows taskmgr.exe, но я столкнулся с несколькими проблемами при попытке использовать библиотеку pyNVML. В результате у меня есть несколько вопросов.

Во-первых, возможно ли в настоящее время измерить точное использование графического процессора на процесс в Windows, используя Python? Я уже попробовал nvidia-smi запрос, но это, кажется, не показывает использование памяти и процент использования для каждого процесса.

Во-вторых, если можно измерить использование графического процессора таким образом с помощью Python, я бы хотел измерить и показать его аналогично тому, как это делается в Windows taskmgr.exe 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

NVIDIA-СМИ

Как вы можете видеть, это не показывает использование памяти графическим процессором для каждого процесса, но мне нужна информация, показанная в разделе GPU Taskmgr. (Мне не нужна визуализация.)

Урочная

Мои компьютерные спецификации: Windows 10 pro, GTX 950, i5-6600

Если в настоящее время это невозможно в Python, есть ли у вас какие-либо другие рекомендации для автоматического сбора данных об использовании графического процессора для каждого процесса.

Спасибо.

1 ответ

Проверьте ответ Джонатана ДЕХТИАРА. Здесь объясняется причина, по которой это не работает. В качестве обходного пути вы можете попробовать получить значения из powershell Get-Counter -Counter "\GPU Engine(*)\Utilization Percentage"

Другие вопросы по тегам