NVIDIA GPU 중 하나를 비활성화한 다음 다시 활성화하려면 어떻게 해야 합니까?

NVIDIA GPU 중 하나를 비활성화한 다음 다시 활성화하려면 어떻게 해야 합니까?

저는 여러 NVIDIA GPU를 사용하는 시스템을 개발하고 있습니다. 나중에 다시 활성화할 수 있도록 GPU 중 하나를 비활성화/사라지게 만들고 싶습니다.

가능합니까?

노트:

  • 루트 액세스 권한이 있다고 가정합니다(장치 파일 권한이 있는 사용자에게는 루트가 아닌 솔루션이 더 좋지만).
  • 중요한 경우 배포판은 SLES 12 또는 SLES 15입니다. 이유는 묻지 마세요. :-(

답변1

장애가 있는:

다음 코드는 GPU를 비활성화하여 찾을 수 있는 CUDA 장치 목록에 포함되지 않도록 보이지 않게 만듭니다(그리고 장치 인덱스도 차지하지 않습니다).

nvidia-smi -i 0000:xx:00.0 -pm 0
nvidia-smi drain -p 0000:xx:00.0 -m 1

여기서 xx는 GPU의 PCI 장치 ID입니다. 또는 를 사용하여 lspci | grep NVIDIA를 결정할 수 있습니다 nvidia-smi.

lspci위 명령을 실행한 후에도 장치가 계속 표시됩니다.

다시 활성화:

nvidia-smi drain -p 0000:xx:00.0 -m 0

이제 장치가 표시됩니다.

이 접근 방식의 문제점

  • 루트가 아니거나 아직 설명할 수 없는 경우에는 실패할 수 있습니다.
  • 이 작업을 수행할 때 GPU를 적극적으로 사용하는 프로세스에 어떤 일이 발생하는지 조사되지 않았습니다.
  • 문법은 바로크적이고 혼란스럽습니다. NVIDIA - 불행하게도 GPU를 더 간단하게 비활성화해야 합니다.

관련 정보