less than 1 minute read

M시리즈 칩셋이 탑재된 맥북에서 GPU가속


GPU 가속을 사용하려면, 파이토치에서 M1칩을 사용하기 위한 MPS 장치를 사용할 수 있는지 확인해야합니다.

(편의상 M1칩이라고 하겠습니다. 이제 M2도 나오고 하지만)

print(torch.backends.mps.is_built())

위 코드가 True 값이 반환되는지 살펴보시고 False라면, Pytorch 버젼이 1.12이상 이여야하므로 업데이트를 해주시기 바랍니다.

MPS 장치 사용가능한지 확인하기

print(torch.backends.mps.is_available())

값이 True가 나오는지 확인해주세요

True가 나왔다면, 이제 우리는 GPU 가속을 사용할 수 있는겁니다.

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)


실전 적용

기존에 우리가 쓰던코드 예를들어

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

torch.manual_seed(777)
if device == 'cuda':
    torch.cuda.manual_seed_all(777)

이와 같던 코드를

mps_device = torch.device("mps")

torch.manual_seed(777)
if mps_device == 'mps':
    torch.cuda.manual_seed_all(777)

처럼 바꿔줄 수 있겠습니다.

또 어떠한 device를 사용하는지 궁금하다면

Leave a comment