Я пытаюсь контролировать процесс, который использует cuda и MPI, есть ли способ сделать это, что-то вроде команды «top», но которая также контролирует графический процессор?
cuda
resource-monitor
natorro
источник
источник
Ответы:
Я считаю гпустат очень полезным. Он может быть установлен с
pip install gpustat
и печатает разбивку использования процессами или пользователями.источник
watch gpustat -cp
вы можете видеть статистику постоянно, но цвета исчезнут. Как это исправить? @Alleowatch -c
. @Roman Orac, Спасибо, у меня тоже сработало на redhat 8, когда я получал ошибку из-за импорта _curses в python.watch -c gpustat -cp --color
watch -n 0.5 -c gpustat -cp --color
--watch
опция:gpustat -cp --watch
Чтобы получать информацию об используемых ресурсах в режиме реального времени, выполните следующие действия:
nvidia-smi -l 1
Это будет зацикливаться и вызывать представление каждую секунду.
Если вы не хотите сохранять прошлые следы зацикленного вызова в истории консоли, вы также можете сделать:
watch -n0.1 nvidia-smi
Где 0,1 - временной интервал в секундах.
источник
Я не знаю ничего, что объединяет эту информацию, но вы можете использовать
nvidia-smi
инструмент для получения необработанных данных, например (спасибо @jmsu за подсказку по -l):источник
watch -n 0.5 nvidia-smi
, что позволяет избежать заполнения вашего терминала выводомЗагрузите и установите последний стабильный драйвер CUDA (4.2) отсюда . В linux nVidia-smi 295.41 дает вам именно то, что вы хотите. использование
nvidia-smi
:РЕДАКТИРОВАТЬ: в последних драйверах NVIDIA эта поддержка ограничена картами Tesla.
источник
для получения дополнительной помощи, пожалуйста, следуйте
источник
Просто используйте
watch nvidia-smi
, по умолчанию он будет выводить сообщение с интервалом в 2 секунды.Например, как на изображении ниже:
Вы также можете использовать
watch -n 5 nvidia-smi
(-n интервал 5 на 5 с).источник
Еще один полезный подход к мониторингу - использовать
ps
фильтры для процессов, которые используют ваши графические процессоры. Я часто использую это:Это покажет все процессы nvidia, использующие GPU, и некоторую статистику о них.
lsof ...
получает список всех процессов, использующих графический процессор nvidia, принадлежащий текущему пользователю, иps -p ...
показываетps
результаты для этих процессов.ps f
показывает хорошее форматирование для отношений / иерархий дочерних / родительских процессов и-o
задает настраиваемое форматирование. Это похоже на простое выполнениеps u
но добавляет идентификатор группы процессов и удаляет некоторые другие поля.Одно из преимуществ этого перед
nvidia-smi
является то, что он будет показывать ответвления процессов, а также основные процессы, использующие графический процессор.Однако одним из недостатков является то, что он ограничен процессами, принадлежащими пользователю, выполняющему команду. Чтобы открыть его для всех процессов, принадлежащих любому пользователю, я добавляю
sudo
передlsof
.Наконец, я совмещаю его с,
watch
чтобы получать непрерывное обновление. Итак, в итоге это выглядит так:Что имеет такой вывод:
источник
sudo
этого:nvidia-smi --query-compute-apps=pid --format=csv,noheader
nvidia-smi
не перечисляются все процессы, поэтому ваша память используется процессами, не указанными здесь. Это основной способ отслеживать и уничтожать эти процессы.pmem
данный byps
учитывает общую память графического процессора, но память центрального процессора, потому чтоps
"Nvidia GPU" не знаетВы можете попробовать
nvtop
, это похоже на широко используемыйhtop
инструмент, но для графических процессоров NVIDIA. Вот его скриншотnvtop
в действии.источник
Это может быть не элегантно, но вы можете попробовать
Я также попробовал метод @Edric, который работает, но я предпочитаю исходный макет
nvidia-smi
.источник
nvidia-smi -l 2
. Или для предотвращения повторного вывода на консоль,watch -n 2 'nvidia-smi'
Если вы просто хотите найти процесс, запущенный на графическом процессоре, вы можете просто использовать следующую команду:
Мне
nvidia-smi
иwatch -n 1 nvidia-smi
хватает в большинстве случаев. Иногда неnvidia-smi
показывает процесс, но память графического процессора израсходована, поэтому мне нужно использовать указанную выше команду, чтобы найти процессы.источник
В Linux Mint и, скорее всего, в Ubuntu вы можете попробовать "nvidia-smi --loop = 1"
источник
Существует программа Prometheus GPU Metrics Exporter (PGME), которая использует двоичный файл nvidai-smi. Вы можете попробовать это. После запуска экспортера вы можете получить к нему доступ через http: // localhost: 9101 / metrics . Для двух графических процессоров результат образца выглядит так:
источник
вы можете использовать его
nvidia-smi pmon -i 0
для мониторинга каждого процесса в GPU 0. включая режим вычислений, использование sm, использование памяти, использование кодировщика, использование декодера.источник
Вы можете использовать программу мониторинга взглядов с ее подключаемым модулем мониторинга графического процессора :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
sudo glances
Он также контролирует процессор, дисковый ввод-вывод, дисковое пространство, сеть и некоторые другие вещи:
источник
Я создал командный файл со следующим кодом на машине с Windows, чтобы отслеживать каждую секунду. Меня устраивает.
nvidia-smi exe обычно находится в папке «C: \ Program Files \ NVIDIA Corporation», если вы хотите запустить команду только один раз.
источник