배경
M1 MacBook에서 PyTorch를 사용하여 딥 러닝 모델을 교육할 때 GPU를 사용하면 CPU를 사용하는 것보다 프로세스 속도를 높입니다. 최신 PyTorch 업데이트(버전 1.12)는 이제 M1 Mac에서 GPU 작업을 지원합니다. 이 기사에서는 M1 Mac에서 PyTorch GPU를 사용하는 단계를 살펴보겠습니다.
ARM 64비트를 지원하는 Anaconda 설치
먼저 다음과 함께 Anaconda를 설치해야 합니다. ARM 64비트 지원. 터미널에서 다음 명령을 사용하여 기존 Anaconda를 제거하여 시작합니다.
conda install anaconda-clean
anaconda-clean --yes
rm -rf ~/anaconda3
그런 다음 Anaconda 웹사이트(https://www.anaconda.com/products/distribution#Downloads)에서 64비트(M1) 명령줄 설치 프로그램을 다운로드하고 실행하여 설치합니다.
GPU를 지원하는 PyTorch 설치
다음으로 터미널에서 다음 명령을 사용하여 GPU를 지원하는 최신 버전의 PyTorch를 설치합니다.
conda install -c pytorch pytorch
또는 pip를 사용할 수 있습니다.
python -m pip install torch
버전 1.12.0 이상을 설치해야 합니다. 다음 명령어로 버전을 확인합니다.
pip show torch
장치를 MPS로 설정
사용 장치를 MPS로 설정하는 다음 코드:
device = torch.device('mps:0' if torch.backends.mps.is_available() else 'cpu')
MPS 지원 확인
Jupyter Notebook에서 다음 코드를 실행하여 MPS가 지원되는지 확인:
print(f"PyTorch version: {torch.__version__}")
print(f"Is built to support MPS devices: {torch.backends.mps.is_built()}")
print(f"Is MPS device available: {torch.backends.mps.is_available()}")
!python -c 'import platform;print(platform.platform())'
MPS 지원을 확인할 때 PyTorch 버전이 1.12.0 이상인지, is_built() 및 is_available() 모두 True를 반환하는지 확인하세요. 또한 플랫폼에 arm64가 표시되고 macOS 버전이 12.3 이상이어야 합니다.
예제 코드
다음은 MPS를 사용한 GPU 작업의 예 코드입니다.
import torch
from torch import nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super().__init__()
self.lin1 = nn.Linear(5, 5)
def forward(self, x):
net = self.lin1(x)
return net
device = torch.device("mps") if torch.backends.mps.is_available() else "cpu"
print(f"device: {device}")
# Generate tensors directly on the MPS device.
x = torch.ones(5, device=device)
# Calculate on the GPU.
y = x * 2
# Alternatively, you can move the model to MPS like any other device.
model = Net()
model.to(device)
# Now calling the model and tensor will do the math on the GPU.
pred = model(x)
print(pred)
예측 결과에 device='mps:0'가 표시되면 단순 모델 예측에서 MPS가 정상적으로 사용됩니다.
결론
이제 최신 업데이트를 통해 M1 Mac에서 PyTorch GPU를 사용할 수 있습니다. 이 간단한 단계를 따르면 M1 Mac의 강력한 GPU 기능을 기계 학습 프로젝트에 활용할 수 있습니다.
'Dev' 카테고리의 다른 글
macOS에서 MySQL설치 방법 (0) | 2023.03.01 |
---|---|
Ubuntu에 MySQL 설치 (0) | 2023.03.01 |
Miniforge를 사용하여 M1 Mac에 Tensorflow 및 Keras를 설치하는 방법 (0) | 2023.03.01 |
pandas의 DataFrame에서 drop 함수 사용법 (0) | 2023.01.23 |
python pandas 행(row) 삭제하는 여러가지 방법(예시코드 포함) (0) | 2023.01.23 |