파이토치에서 GPU를 사용할 수 있는지 어떻게 확인하나요?

공식 홈페이지StackOverflow 등에서 자주 보이는 질문과 답변을 번역하고 있습니다.

다음 링크에서 원문을 함께 찾아보실 수 있습니다.


질문

  • nvidia-smi 명령어로 사용 가능한 GPU가 있는 것은 확인하였습니다.
  • PyTorch에서는 사용 가능한 GPU를 어떻게 확인할 수 있나요?

마지막 model = NeuralNetwork().to(device) 여기의 device는 무엇인가요? 또 spyder 환경에서 따라해 보는데 name 'NeuralNetwork' is not defined 오류가 나옵니다

바로 윗쪽에 device 변수를 선언한 부분을 참고하시면 될 것 같습니다.

말씀하신 오류는 NeuralNetwork이라는 모델 변수가 선언되지 않아서 발생하는 것으로, 위 코드에서는 다루고 있지 않은 부분입니다. (위 코드는 단순히 GPU 사용 가능 여부를 확인하는 방법과 GPU/CPU에서 동작하는 코드만을 설명하고 있습니다.)

PyTorch가 익숙하지 않으시다면 PyTorch 한국어 튜토리얼을 참고해보시는 것을 권해드립니다.

또는, 아래 튜토리얼 시리즈도 참고해보시면 좋을거 같습니다. :slight_smile:

답변

  • 다음과 같은 방법으로 GPU와 관련된 내용들을 알아볼 수 있습니다.
    >>> import torch # PyTorch를 불러옵니다.
    >>> torch.cuda.is_available() # GPU가 사용 가능한지 확인합니다.
    True
    >>> torch.cuda.device_count() # 사용 가능한 장치가 몇 개인지 확인합니다.
    2
    >>> torch.cuda.get_device_name(0) # 첫번째 GPU의 장치명을 확인합니다.
    'GeForce GTX TITAN X'
    >>> torch.cuda.get_device_name(1) # 두번째 GPU의 장치명을 확인합니다.
    'GeForce GTX TITAN X'
    
  • 다음과 같이 CPU와 GPU를 자동으로 선택하여 동작하도록 코드를 작성할 수 있습니다.
    import torch
    
    # GPU가 사용 가능하면 cuda, 아니면 cpu
    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    
    # .to() 메소드를 사용하여 텐서나 모델 등을 장치로 이동
    model = NeuralNetwork().to(device)
    

더 알아보기