
현재 GPU 서버에서 계산에 어떤 GPU가 사용되고 있는지 확인하려고 합니다. 더 좋은 점은 GPU가 "무료"로 새로운 작업을 실행할 수 있는지 여부에 대해 답변하고 싶습니다. 이상적으로는 주기적으로 폴링을 수행하고 무료 카드를 확인한 후에는 해당 카드에 대해 내 작업을 수행하는 것이 좋습니다.
이 작업을 수행할 수 있는 기성 방법이 있다면 어떤 아이디어가 있습니까?
nvidia-smi 출력 구문 분석은 옵션이지만, 각 GPU에서 실행 중인 프로세스를 나열하는 기존 명령줄 인수가 있습니까?
답변1
더 자세히 검색해 보면 현재 실행 중인 계산 프로세스의 PID 목록에서 이를 알아낼 수 있는 것 같습니다.
nvidia-smi --query-compute-apps=pid --format=csv,noheader -i 0
위의 내용은 GPU #0을 쿼리합니다. 다음 단계는 이 작업을 루프에서 수행하는 것입니다. GPU 수는 다음을 통해 추론할 수 있습니다.
nvidia-smi -L | wc -l
그렇다면 Bash는 비어 있는 GPU를 스누핑하기 위해 전자의 결과를 반복할 것입니까? 이것에 대한 생각이 있나요? 이 문제를 해결하는 더 직접적인 방법이 있습니까?