[Mac] Mac 환경에서 Pytorch GPU 가속 설정 방법

es.Seong·2024년 3월 5일
0
post-custom-banner

맥북 기종 : 맥북 프로 m3 pro
파이토치 ver : 2.2.1
파이썬 ver : 3.9.13

맥북 프로에는 GPU가 내장되어 있다. 그렇기에 딥러닝 프레임워크에서 지원만 된다면 Mac 내장 GPU를 딥러닝에 사용할 수 있다.
윈도우에서는 NVIDIA 그래픽 카드를 주로 사용하기 때문에 Cuda를 사용했지만 Mac에서는 mps라는 것을 통해 파이토치에서 GPU 가속이 가능하다.

아래 코드는본인의 Mac이 GPU 사용이 가능하지 확인하는 코드이다.

# GPU Acceleration Check

if torch.backends.mps.is_available():
    mps_device = torch.device("mps")
    x = torch.ones(1, device=mps_device)
    print (x)
else:
    print ("MPS device not found.")

만약 GPU 사용이 가능하다면 다음과 같이 코드가 출력될 것이다. 만약 지원하지 않는다면 else 문의 "MPS device not found." 문자열이 출력될 것이다.

그리고 두 코드 모두 True 값이 나오면 build가 되었고, 현재 개발환경에서 사용이 가능하다는 의미이다.

# build 및 사용 유무 확인
torch.backends.mps.is_built() 
torch.backends.mps.is_available()

Pytorch를 사용해보았다면, 윈도우나 기타 OS에서는 device 변수를 다음과 같이 선언했을 것이다.

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

맥에서는 device 메소드 내에 "mps" 문자열을 넣어주면 된다.

# device 변수 선언
device = torch.device("mps")

이제 코드를 실행해보자.
정상적으로 GPU를 사용했다면 Mac에서 GPU가 돌아가고 있을 것이다.

활성 상태 보기 앱을 통해 확인할 수 있다.

활성 상태 보기 - CPU - %GPU

256x256x1 크기의 이미지를 Segmentation 모형인 U-net에 450장정도 학습 시켜보았다.
실시간으로 변하긴 하지만 70~80%의 GPU가 모형 학습에 사용되는 것을 확인할 수 있다.

vscode 사용 중 "현재 셀 또는 이전 셀 에서 코드를 실행 하는 동안 kernel이 충돌 했습니다" 오류 발생 해결 방법

위와 같은 오류가 모형 학습에서 발생하였다면, Pytorch와 Python간의 버전 충돌일 가능성이 높다.
파이썬을 낮은 버전을 사용해서 파이토치도 버전을 낮췄는데 이게 문제가 되었다.

torch, torchvision, torchaudio를 모두 uninstall 하고 최신버전의 pytorch를 설치해주면 정상적으로 작동한다.

Pytorch 설치 페이지
https://pytorch.org/get-started/locally/

profile
Graduate student at Pusan National University, majoring in Artificial Intelligence
post-custom-banner

0개의 댓글