Использование GPU, контролирующее (CUDA)

Некоторые системы разыменуют символьную ссылку, когда Вы добавите запаздывающую наклонную черту (по крайней мере, если символьная ссылка указывает на каталог):

mkdir -p b/c && touch b/c/foo && ln -s b/c a

rm -rf a/ && rm -f a
# removed "b/c" and "a"

Стандарт POSIX изменился немного (см. Разрешение Пути в Станд. IEEE 1003.1, 2004 Выпуск по сравнению со Станд. IEEE 1003.1-2008), но это походит на поведение для пути с запаздывающей наклонной чертой и заключительного пути компоненты, который является символьной ссылкой, (главным образом) то же: символьная ссылка разрешена.

Не все системы реализуют это поведение хотя (см. комментарий Gilles).

235
13.05.2012, 13:46
16 ответов

Для Nvidia GPU там инструмент nvidia-smi это может показать использование памяти, использование GPU и температуру GPU. Также существует список, вычисляют процессы и еще немного опций, но моя видеокарта (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/A        N/A |
|   0%   51 C  N/A   N/A /  N/A |  90%  459MB /  511MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+
265
27.01.2020, 19:27
  • 1
    Моя ИОННАЯ микросхема не показывает использование, также.:/ –  Raphael 11.06.2012, 01:15
  • 2
    watch -n 0.5 nvidia-smi, будет держать вывод в курсе, не заполняя Ваш терминал выводом. –  Bar 14.07.2016, 21:26
  • 3
    @Bar. watch -d -n 0.5 nvidia-smi будет еще лучше. –  zeekvfu 17.01.2018, 18:27

Для 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%:                      
55
27.01.2020, 19:27

Для OS X

Включение пумы

Меню iStat

Исключение пумы

atMonitor

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

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

Для более поздней версии приложения atMonitor - FAQ объясняет:

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

Я экспериментировал с 2.7b иначе 2.7.1 на Пуме с MacBookPro5,2 с NVIDIA GeForce 9600M Большой. Приложение работало в течение нескольких секунд перед выходом, оно показало температуру, но не использование:

                                                  screenshot of atMonitor 2.7b on Mountain Lion

3
27.01.2020, 19:27

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

74
27.01.2020, 19:27
  • 1
    я предпочитаю использовать watch -n 1 nvidia-smi получить непрерывные обновления, не заполняя терминал выводом –  ali_m 28.01.2016, 01:59
  • 2
    Используя часы означает Ваш запуск нового процесса каждую секунду опрашивать карты. Лучше, чтобы сделать-l, и не каждую секунду, я предлагал бы каждую минуту или каждые 5 минут. –  Mick T 19.04.2018, 18:55

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

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

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

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

16
27.01.2020, 19:27

Вы могли бы использовать RadiCale , хотя я использую его только ежедневно для моей повестки дня.

Отредактируйте: О безопасности: Документация утверждает, что модули аутентификации не были широко протестированы, и что вы должны полагаться на надлежащий HTTP-сервер, если это проблема для вас. Я мое дело, я прибил проблему, ограничивая доступ к порту на маршрутизаторе, что делает календарь только через переадресацию порта SSH. Я считаю, что это, вероятно, не жизнеспособное решение в вашем случае, и вам придется использовать правильный HTTP-сервер.

-121--108423-

Тест [-F «$ DIR»] истинствует, если существует $ dir и является файлом . Это не то, что вы хотите вообще. Как я предложил в вашем предыдущем вопросе, вы должны использовать $ # , чтобы проверить, прошел ли аргумент. Тогда вы можете использовать --e , чтобы проверить, существует ли этот аргумент.

Следующий выпуск состоит в том, что находятся также будет список . , текущий каталог. Вы можете использовать -Mindepth 1 , чтобы избежать этого с GNU Найти :

DIR="$1"

if [ $# -lt 1 ]
then
    echo "Please pass at least one argument" && exit   
fi
if [ -e "$DIR" ]
then
     echo -n "total directories:" ; find "$DIR" -mindepth 1 -type d | wc -l
     echo -n "total files:" ; find $DIR -type f | wc -l
else
      echo "Directory doesn't exist"
fi

Вы также можете конденсироваться выше (хотя эта версия не отличается дифференцированием каталога, которое не существует И тот, который является файлом, а не каталогом):

dir="$1"
[ $# -lt 1 ] && echo "Please pass at least one argument" && exit
[ -d "$dir" ] && printf "total directories: %s\ntotal files:%s\n" \
              $(find "$dir" -type d | wc -l) $(find "$dir" -type f | wc -l) ||
    printf "%s\n" "There is no directory named '$dir'."
-121--209832-

NVIDIA-SMI не работает на некоторых машинах Linux (возвращает N / A для многих свойств). Вместо этого вы можете использовать NVIDIA-НАСТРОЙКИ .

nvidia-settings -q GPUUtilization -q useddedicatedgpumemory

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

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

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

36
27.01.2020, 19:27

для 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}
2
27.01.2020, 19:27

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

66
27.01.2020, 19:27

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

gmonitor

enter image description here

17
27.01.2020, 19:27

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

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

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

$ nvidia-smi --help-query-gpu
14
27.01.2020, 19:27

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

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

sudo fuser -v /dev/nvidia*

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

4
27.01.2020, 19:27

Этот скрипт более читабелен и предназначен для простых модов и расширений.

Вы можете заменить терминал gnome -своей любимой оконной программой терминала.


#! /bin/bash

if [ "$1" = "--guts" ]; then
    echo; echo "    ctrl-c to gracefully close"
    f "$a"
    f "$b"
    exit 0; fi

# easy to customize here using "nvidia-smi --help-query-gpu" as a guide
a='--query-gpu=pstate,memory.used,utilization.memory,utilization.gpu,encoder.stats.sessionCount'
b='--query-gpu=encoder.stats.averageFps,encoder.stats.averageLatency,temperature.gpu,power.draw'
p=0.5    # refresh period in seconds
s=110x9  # view port as width_in_chars x line_count

c="s/^/    /; s/, +/\t/g"
t="`echo '' |tr '\n' '\t'`"
function f() { echo; nvidia-smi --format=csv "$1" |sed -r "$c" |column -t "-s$t" "-o   "; }
export c t a b; export -f f
gnome-terminal --hide-menubar --geometry=$s -- watch -t -n$p "`readlink -f \"$0\"`" --guts

#

Лицензия :GNU GPLv2, TranSeed Research

0
27.01.2020, 19:27

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

nvidia-smi pmon -i 0

для мониторинга каждого процесса в GPU 0. включая вычислительный/графический режим, использование sm, использование памяти, использование кодировщика, использование декодера.

1
27.01.2020, 19:27

Я не видел этого в доступных ответах (, за исключением, может быть, комментария ), поэтому я решил добавить, что вы можете получить более приятное обновление nvidia-smiс помощьюwatch. Это обновляет экран при каждом обновлении, а не постоянно прокручивает.

watch -n 1 nvidia-smi

для обновлений с интервалом в одну секунду. Замените 1на все, что хотите, включая доли секунды :

.
watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi
0
27.01.2020, 19:27

Вы можете использовать nvtop, это похоже на htop, но для графических процессоров NVIDIA. Ссылка:https://github.com/Syllo/nvtop

enter image description here

20
27.01.2020, 19:27

Недавно я написал средство мониторинга под названием nvitop, интерактивное средство просмотра процессов NVIDIA -GPU.

Screenshot Monitor

Он написан на чистом Python и прост в установке.

Установить из PyPI:

pip3 install --upgrade nvitop

Установите последнюю версию с GitHub(рекомендуется):

pip3 install git+https://github.com/XuehaiPan/nvitop.git#egg=nvitop

Запуск в качестве монитора ресурсов:

nvitop -m

nvitopпокажет статус графического процессора, как и nvidia-smi, но с дополнительными причудливыми полосами и графиками истории.

Для процессов он будет использовать psutilдля сбора информации о процессе и отображения полей USER, %CPU, %MEM, TIMEи COMMAND, что гораздо более подробно, чем nvidia-smi.. Кроме того, он реагирует на действия пользователя в режиме монитора. Вы можете прервать или завершить ваши процессы на GPU.

nvitopпоставляется с экраном просмотра дерева -и экраном окружения:

Tree-view

Environment


Кроме того, nvitopможно интегрировать в другие приложения. Например, интегрируйте в обучающий код PyTorch:

import os
from nvitop.core import host, Device, HostProcess, GpuProcess
from torch.utils.tensorboard import SummaryWriter

device = Device(0)
this_process = GpuProcess(os.getpid(), device)
writer = SummaryWriter()
for epoch in range(n_epochs):

    # some training code here
    #...

    this_process.update_gpu_status()
    writer.add_scalars(
        'monitoring',
        {
            'device/memory_used': float(device.memory_used()) / (1 << 20),  # convert bytes to MiBs
            'device/memory_utilization': device.memory_utilization(),
            'device/gpu_utilization': device.gpu_utilization(),

            'host/cpu_percent': host.cpu_percent(),
            'host/memory_percent': host.memory_percent(),

            'process/cpu_percent': this_process.cpu_percent(),
            'process/memory_percent': this_process.memory_percent(),
            'process/used_gpu_memory': float(this_process.gpu_memory()) / (1 << 20),  # convert bytes to MiBs
        },
        global_step
    )

Подробнее см. https://github.com/XuehaiPan/nvitop.

Примечание:nvitopвыпущено под лицензией GPLv3 . Пожалуйста, не стесняйтесь использовать его как пакет или зависимость для ваших собственных проектов. Однако, если вы хотите добавить или изменить некоторые функции nvitopили скопировать некоторый исходный код nvitopв свой собственный код, исходный код также должен быть выпущен под лицензией GPLv3.

8
19.05.2021, 08:29

Теги

Похожие вопросы