현재 설치된 PyTorch의 버전이 1.12 또는 그 이상인지와,
PyTorch가 M1 칩을 사용하기 위한 MPS 장치를 사용할 수 있도록 빌드되어 있는지를 확인해야 합니다.
아래 명령어로 PyTorch 버전과 MPS 장치 사용이 가능하도록 빌드되었는지를 확인하실 수 있습니다.
>>> import torch
>>> print(torch.__version__) # 설치된 PyTorch 버전을 확인합니다. 1.12 이상이어야 합니다.
1.12.0.dev20220519
>>> print(torch.backends.mps.is_built()) # MPS 장치를 지원하도록 빌드되어있는지 확인합니다. True여야 합니다.
True
MPS 장치가 사용 가능한지 확인하기
현재 설치된 장치에 사용 가능한 MPS 장치가 있는지 확인합니다.
NVIDIA GPU의 경우 CUDA에서 사용 가능한 장치가 있는지를 torch.cuda.is_available()로 확인하는 것과 비슷합니다.
>>> import torch
>>> print(torch.backends.mps.is_available()) # MPS 장치가 사용 가능한지 확인합니다. True여야 합니다.
True
MPS 장치를 사용하도록 지정하기
기존의 NVIDIA GPU에서 cuda를 사용했던 것처럼, mps 라는 이름으로 장치를 사용할 수 있습니다.
PyTorch,org 문서에서 제공하는 예시 코드는 아래와 같습니다.
import torch
mps_device = torch.device("mps")
# MPS 장치에 바로 tensor를 생성합니다.
x = torch.ones(5, device=mps_device)
# 또는
x = torch.ones(5, device="mps")
# GPU 상에서 연산을 진행합니다.
y = x * 2
# 또는, 다른 장치와 마찬가지로 MPS로 이동할 수도 있습니다.
model = YourFavoriteNet() # 어떤 모델의 객체를 생성한 뒤,
model.to(mps_device) # MPS 장치로 이동합니다.
# 이제 모델과 텐서를 호출하면 GPU에서 연산이 이뤄집니다.
pred = model(x)