Это вывод моей команды nvidia-smi
, я хочу проанализировать ее вывод и уничтожить все процессы python, которые выполняются на GPU. Я уже знаю, как убить все процессы Python с помощью следующего сценария, который я написал.
kall () {
pgrep $1 | xargs kill -9
}
И теперь я хочу уничтожить все процессы (получить номер PID), использующие графический процессор, поэтому я хочу проанализировать вывод nvidia-smi.
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.27 Driver Version: 367.27 |
|-------------------------------+----------------------+----------------------+
| 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 GTX 1070 Off | 0000:01:00.0 On | N/A |
| 0% 46C P2 40W / 166W | 4902MiB / 8112MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 917 G /usr/lib/xorg/Xorg 209MiB |
| 0 1683 G compiz 159MiB |
| 0 3780 G ...UI2016Q2,UsePasswordSeparatedSigninFlow<P 130MiB |
| 0 25962 C python 2199MiB |
| 0 26103 C python 2201MiB |
+-----------------------------------------------------------------------------+
3 ответа
Отфильтруйте вывод вашей команды с помощью awk
. Если 4-е поле «G», выведите PID (3-е поле)
nvidia-smi | awk '$4=="G" {print $3}' | xargs kill -9
РЕДАКТИРОВАТЬ: немного неправильно понял, что вы хотели. Если вы хотите уничтожить процессы Python, которые делают ваши списки инструментов (как вы исправили сами):
nvidia-smi | awk '$5=="python" {print $3}' | xargs kill -9
Предполагая, что вывод такой же, как и выше, можно использовать следующий скрипт awk:
$ awk '$2$3 ~ /^[0-9]+$/{print $3}' input
917
1683
3780
25962
26103
Выше предполагается, что только процессы будут содержать цифры только во втором и третьем столбцах.
Вы можете получить нужный вывод из утилиты nvidia-smi
напрямую с
$ nvidia-smi --query-compute-apps=pid --format=csv,noheader
917
1683
3780
25962
26103
Смотрите man-страницу nvidia-smi --help-query-compute-apps
для получения дополнительной информации о запросах, связанных с приложениями, запущенными на gpu (s).
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.