
У меня есть производственная машина (Ubuntu 18.04), которая запускает процессы в GPU с использованием Nvidia. Определенный процесс выделил память и теперь не функционирует, делая GPU в основном бесполезными.
пс -о ppid= -p
Возвращает единицу, что означает, что PID=1 является родительским для моего завершенного процесса, поэтому я не могу его завершить.
nvidia-smi показывает, что этот процесс имеет много памяти, выделенной в графических процессорах. Так что я думаю, что я могу использовать
nvidia-smi --gpu-reset
для освобождения ресурсов. Будет ли дочерний процесс генерировать какие-либо проблемы? Может ли он "увидеть", что выделенные им ресурсы больше не доступны?
По сути: опасно ли это каким-либо образом?
решение1
Использование nvidia-smi --gpu-reset сбросит GPU и освободит все выделенные ресурсы, включая память, удерживаемые неработающим процессом. Однако эта команда может быть использована только тогда, когда GPU бездействует, то есть никакие другие активные процессы не используют GPU.
Если ваш графический процессор используется другими активными процессами, команда --gpu-reset может завершиться ошибкой или вызвать непреднамеренные побочные эффекты, такие как завершение этих процессов или их сбой из-за внезапной потери ресурсов графического процессора.
Поскольку родительский процесс несуществующего процесса имеет PID=1, маловероятно, что он будет создавать дальнейшие проблемы. При сбросе GPU выделенные им ресурсы будут освобождены, и несуществующий процесс не сможет их видеть или использовать.
Обычно безопасно использовать nvidia-smi --gpu-reset, если нет других процессов, активно использующих GPU. Если есть другие процессы, использующие GPU, вам следует попытаться аккуратно остановить эти процессы перед сбросом GPU. Кроме того, хорошей идеей будет следить за вашей системой после сброса GPU, чтобы убедиться в отсутствии непредвиденных проблем.
Довольно часто бывает так, что вам приходится перезагружать компьютер, если он завис, так как, вероятно, модуль ядра завис и не реагирует даже на завершение процессов, использующих графический процессор.