Мониторинг использования графического процессора (CUDA)

Я установил инструментарий CUDA на свой компьютер и начал проект BOINC на GPU. В BOINC я вижу, что он работает на GPU, но есть ли инструмент, который может показать мне более подробную информацию о том, что работает на графическом процессоре – использование GPU и использование памяти?

Для графических процессоров Nvidia есть инструмент nvidia-smi который может отображать использование памяти, использование графического процессора и температуру графического процессора. Также есть список вычислительных процессов и несколько дополнительных опций, но моя графическая карта (GeForce 9600 GT) не поддерживается полностью.

 Sun May 13 20:02:49 2012 +------------------------------------------------------+ | NVIDIA-SMI 3.295.40 Driver Version: 295.40 | |-------------------------------+----------------------+----------------------+ | Nb. Name | Bus Id Disp. | Volatile ECC SB / DB | | Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. | |===============================+======================+======================| | 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/AN/A | | 0% 51 CN/AN/A / N/A | 90% 459MB / 511MB | N/A Default | |-------------------------------+----------------------+----------------------| | Compute processes: GPU Memory | | GPU PID Process name Usage | |=============================================================================| | 0. Not Supported | +-----------------------------------------------------------------------------+ В Sun May 13 20:02:49 2012 +------------------------------------------------------+ | NVIDIA-SMI 3.295.40 Driver Version: 295.40 | |-------------------------------+----------------------+----------------------+ | Nb. Name | Bus Id Disp. | Volatile ECC SB / DB | | Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. | |===============================+======================+======================| | 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/AN/A | | 0% 51 CN/AN/A / N/A | 90% 459MB / 511MB | N/A Default | |-------------------------------+----------------------+----------------------| | Compute processes: GPU Memory | | GPU PID Process name Usage | |=============================================================================| | 0. Not Supported | +-----------------------------------------------------------------------------+ 

Для Intel GPU существуют intel-gpu-tools из проекта http://intellinuxgraphics.org/ , который приносит команду intel_gpu_top (между прочим). Он похож на top и htop , но специально для Intel GPU.

  render busy: 18%: ███▋ render space: 39/131072 bitstream busy: 0%: bitstream space: 0/131072 blitter busy: 28%: █████▋ blitter space: 28/131072 task percent busy GAM: 33%: ██████▋ vert fetch: 0 (0/sec) GAFS: 3%: ▋ prim fetch: 0 (0/sec) VS: 0%: VS invocations: 559188 (150/sec) SF: 0%: GS invocations: 0 (0/sec) VF: 0%: GS prims: 0 (0/sec) DS: 0%: CL invocations: 186396 (50/sec) CL: 0%: CL prims: 186396 (50/sec) SOL: 0%: PS invocations: 8191776208 (38576436/sec) GS: 0%: PS depth pass: 8158502721 (38487525/sec) HS: 0%: TE: 0%: GAFM: 0%: SVG: 0%: 

Для linux используйте nvidia-smi -l 1 будут постоянно сообщать вам информацию об использовании gpu с интервалом обновления 1 секунда.

Недавно я написал простую утилиту командной строки gpustat (которая является оболочкой nvidia-smi ): пожалуйста, посмотрите https://github.com/wookayin/gpustat .

nvidia-smi не работает на некоторых Linux-машинах (возвращает N / A для многих свойств). Вместо этого вы можете использовать nvidia-settings (это также то, что mat kelcey использовал в своем скрипте на python).

 nvidia-settings -q GPUUtilization -q useddedicatedgpumemory 

Вы также можете использовать:

 watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory" 

для непрерывного мониторинга.

Для полноты AMD имеет два варианта:

  1. fglrx (драйверы с закрытым исходным кодом).

     $ aticonfig --odgc --odgt 
  2. mesa (драйверы с открытым исходным кодом), вы можете использовать RadeonTop .

    Просмотрите использование графического процессора, как для общего процента активности, так и для отдельных блоков.

Для Linux я использую этот инструмент HTOP, который я написал сам. Он контролирует и дает обзор температуры GPU, а также использования шины / VRAM / PCI-E и шины памяти. Однако он не отслеживает, что работает на графическом процессоре.

gmonitor

введите описание изображения здесь

У меня видеокарта GeForce 1060 GTX, и я обнаружил, что следующая команда дает мне информацию об использовании карт, температуре, скорости вращения вентилятора и потребляемой мощности:

 $ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu 

Вы можете просмотреть список всех параметров запроса с помощью:

 $ nvidia-smi --help-query-gpu 

Для OS X

Включая горного льва

Меню iStat

Исключая горного льва

atMonitor

Последняя версия atMonitor для поддержки функций, связанных с GPU, – atMonitor 2.7.1.

– и ссылка на 2.7.1 обеспечивает 2.7b.

Для более новой версии приложения atMonitor – часто задаваемые вопросы объясняет:

Чтобы сделать atMonitor совместимым с MacOS 10.8, мы удалили все связанные с GPU функции.

Я экспериментировал с 2.7b aka 2.7.1 на Mountain Lion с MacBookPro5,2 с NVIDIA GeForce 9600M GT. Приложение запустило несколько секунд, прежде чем уйти, оно показало температуру, но не использование:

скриншот atMonitor 2.7b на Mountain Lion

для nvidia на linux я использую следующий скрипт python, который использует необязательную задержку и повторяется подобно iostat и vmstat

https://gist.github.com/matpalm/9c0c7c6a6f3681a0d39d

 $ gpu_stat.py 1 2 {"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"11"}, "used_mem":"161", "time": 1424839016} {"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"9"}, "used_mem":"161", "time":1424839018} 

У меня были прекращены процессы (возможно, они были убиты или разбиты) и продолжают использовать ресурсы, но не перечислены в nvidia-smi . Обычно эти процессы просто занимали память gpu.

Если вы считаете, что у вас есть процесс с использованием ресурсов на графическом процессоре, и он не отображается в nvidia-smi , вы можете попробовать запустить эту команду для двойной проверки. Он покажет вам, какие процессы используют ваши графические процессоры.

 sudo fuser -v /dev/nvidia* 

Это работает на EL7, Ubuntu или других дистрибутивах, возможно, их устройства nvidia перечислены под другим именем / местоположением.

Следующая функция добавляет к выходу nvidia-smi smi информацию, такую ​​как PID, имя пользователя, использование ЦП, использование памяти, использование памяти GPU, аргументы программы и время выполнения процессов, которые выполняются на графическом процессоре:

 function better-nvidia-smi () { nvidia-smi join -1 1 -2 3 \ <(nvidia-smi --query-compute-apps=pid,used_memory \ --format=csv \ | sed "s/ //g" | sed "s/,/ /g" \ | awk 'NR<=1 {print toupper($0)} NR>1 {print $0}' \ | sed "/\[NotSupported\]/d" \ | awk 'NR<=1{print $0;next}{print $0| "sort -k1"}') \ <(ps -a -o user,pgrp,pid,pcpu,pmem,time,command \ | awk 'NR<=1{print $0;next}{print $0| "sort -k3"}') \ | column -t } 

Пример вывода:

 $ better-nvidia-smi Fri Sep 29 16:52:58 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 378.13 Driver Version: 378.13 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GT 730 Off | 0000:01:00.0 N/A | N/A | | 32% 49C P8 N/A / N/A | 872MiB / 976MiB | N/A Default | +-------------------------------+----------------------+----------------------+ | 1 Graphics Device Off | 0000:06:00.0 Off | N/A | | 23% 35C P8 17W / 250W | 199MiB / 11172MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | | 1 5113 C python 187MiB | +-----------------------------------------------------------------------------+ PID USED_GPU_MEMORY[MIB] USER PGRP %CPU %MEM TIME COMMAND 9178 187MiB tmborn 9175 129 2.6 04:32:19 ../path/to/python script.py args 42