
Nvidia를 사용하여 GPU에서 프로세스를 실행하는 프로덕션 시스템(Ubuntu 18.04)이 있습니다. 특정 프로세스에 메모리가 할당되었으나 현재는 작동하지 않아 GPU를 기본적으로 사용할 수 없게 됩니다.
ps -o ppid= -p
PID=1이 내 존재하지 않는 프로세스의 상위 프로세스이므로 종료할 수 없음을 의미하는 하나를 반환합니다.
nvidia-smi는 이 프로세스에 GPU에 많은 메모리가 할당되어 있음을 보여줍니다. 그래서 내가 사용할 수 있을 것 같아
nvidia-smi --gpu-reset
리소스를 확보합니다. 하위 프로세스가 문제를 일으키나요? 할당한 리소스를 더 이상 사용할 수 없다는 것을 "볼" 수 있습니까?
본질적으로 이것은 어떤 식으로든 위험합니까?
답변1
nvidia-smi --gpu-reset을 사용하면 GPU가 재설정되고 메모리를 포함하여 존재하지 않는 프로세스에 할당된 모든 리소스가 해제됩니다. 그러나 이 명령은 GPU가 유휴 상태일 때만 사용할 수 있습니다. 즉, 다른 활성 프로세스가 GPU를 사용하고 있지 않음을 의미합니다.
GPU가 다른 활성 프로세스에서 사용되고 있는 경우 --gpu-reset 명령이 실패하거나 해당 프로세스를 종료하거나 GPU 리소스의 갑작스러운 손실로 인해 오작동을 일으키는 등 의도하지 않은 부작용이 발생할 수 있습니다.
존재하지 않는 프로세스의 부모는 PID=1이므로 더 이상 문제가 발생할 가능성은 없습니다. GPU를 재설정하면 할당된 리소스가 해제되고, 존재하지 않는 프로세스는 해당 리소스를 보거나 사용할 수 없습니다.
GPU를 적극적으로 사용하는 다른 프로세스가 없는 한 nvidia-smi --gpu-reset을 사용하는 것은 일반적으로 안전합니다. GPU를 사용하는 다른 프로세스가 있는 경우 GPU를 재설정하기 전에 해당 프로세스를 정상적으로 중지해야 합니다. 또한 GPU를 재설정한 후 시스템을 모니터링하여 예상치 못한 문제가 발생하지 않는지 확인하는 것이 좋습니다.
커널 모듈이 멈춰 GPU를 사용하는 프로세스를 종료해도 응답하지 않기 때문에 시스템이 정지되면 시스템을 다시 시작해야 하는 것이 매우 일반적입니다.