Я пытаюсь отслеживать процесс, который использует cuda и MPI, есть ли какой-нибудь способ, которым я мог бы сделать это, что-то вроде команды "top", но который также контролирует GPU?
Вы можете использовать программу мониторинга glances с подключаемым модулем GPU :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
sudo glances
Он также контролирует процессор, дисковый ввод-вывод, дисковое пространство, сеть и еще несколько вещей:
вы можете использовать nvidia-smi pmon -i 0 для мониторинга каждого процесса в GPU 0. включая режим вычисления, использование sm, использование памяти, использование кодера, использование декодера.
nvidia-smi pmon -i 0
Существует Prometheus GPU Metrics Exporter (PGME) , который использует двоичный файл nvidai-smi.Вы можете попробовать это.Когда экспортер запущен, вы можете получить к нему доступ через http://localhost:9101/metrics.. Для двух графических процессоров пример результата выглядит следующим образом:
temperature_gpu{gpu="TITAN X (Pascal)[0]"} 41 utilization_gpu{gpu="TITAN X (Pascal)[0]"} 0 utilization_memory{gpu="TITAN X (Pascal)[0]"} 0 memory_total{gpu="TITAN X (Pascal)[0]"} 12189 memory_free{gpu="TITAN X (Pascal)[0]"} 12189 memory_used{gpu="TITAN X (Pascal)[0]"} 0 temperature_gpu{gpu="TITAN X (Pascal)[1]"} 78 utilization_gpu{gpu="TITAN X (Pascal)[1]"} 95 utilization_memory{gpu="TITAN X (Pascal)[1]"} 59 memory_total{gpu="TITAN X (Pascal)[1]"} 12189 memory_free{gpu="TITAN X (Pascal)[1]"} 1738 memory_used{gpu="TITAN X (Pascal)[1]"} 10451