본문 바로가기
Data Science

실리콘 M2 맥북에 tensorflow, pytorch 설치 및 GPU 가속 사용 설정 방법

by Lora Baek 2023. 4. 1.
300x250

우선 GPU 가속 설정은 맥북에서 가상환경을 실행한 후 하는 게 안정적이기 때문에, 가상환경을 먼저 만들어두기를 추천한다.

 

M2 맥북 아나콘다 가상환경 설치 방법 w. WordCloud 설치 실패 해결

지난 포스팅에서는 brew를 이용해서 M2 맥북에 아나콘다 설치까지 완료했다. 가상환경은 iterm에서 바로 conda 명령어를 실행하면 된다. 1. 만일 처음이라면 anaconda3 환경을 먼저 설정해줘야 한다. # ex

for-data-science.tistory.com

 

먼저 가상환경을 실행해준다. 나는 lora39라는 파이썬 3.9버전의 가상환경을 만들어둔 후 실행했다.

그 다음으로는 tensorflow-deps를 설치해준다. 중간에 proceeding = y/n 에서 y를 눌러 계속 설치해준다.

sloving environment fail이 떴으나 자동으로 재시도를 해서 무사히 done이 된 것을 볼 수 있다.

conda activate 가상환경이름
conda install -c apple tensorflow-deps

이제 tensorflow를 설치하고, GPU framework인 metal도 설치해주면 된다.

macOS의 버전에 맞게 설치되어야 하는데,  나는 따로 버전 지정 없이 진행했다. 따로 버전을 지정해주고 싶다면 코드 뒤에 ==2.9.0 과 같은 식으로 버전을 지정해주면 된다.

pip install tensorflow-macos
pip install tensorflow-metal

jupyter notebook을 열어서 아래 코드로 버전들이 잘 설치되었는지, GPU 사용이 가능한지 확인해주었다. 

'GPU is available'이 뜨면 성공적으로 설치되어 사용할 수 있다는 뜻이다.

 

import sys

import tensorflow.keras
import pandas as pd
import scipy as sp
import tensorflow as tf
import platform

print(f"Python Platform: {platform.platform()}")
print(f"Tensor Flow Version: {tf.__version__}")
print(f"Keras Version: {tensorflow.keras.__version__}")
print()
print(f"Python {sys.version}")
print(f"Pandas {pd.__version__}")
print(f"SciPy {sp.__version__}")
gpu = len(tf.config.list_physical_devices('GPU'))>0
print("GPU is", "available" if gpu else "NOT AVAILABLE")


출처 링크

 


Pytorch GPU 사용

파이토치는 1.12.0 버전 이후로는 설치만 하면 바로 GPU를 사용할 수 있다. 빠르게 설치해보자.

가상환경을 활성화시킨 후, pytorch를 설치해주기만 하면 된다.

 

pip install torch

다시 jupyter notebook을 열고 아래와 같이 코드를 수행해서 사용 가능 여부를 알아보자. pytorch 버전이 1.12.0 이상이고, 질문들에 대한 답이 둘 다 True라면 정상적으로 GPU를 사용할 수 있는 것이다!

import torch

device = torch.device('mps:0' if torch.backends.mps.is_available() else 'cpu')
print (f"PyTorch version:{torch.__version__}")
print(f"MPS 장치를 지원하도록 build 되었는지: {torch.backends.mps.is_built()}")
print(f"MPS 장치가 사용 가능한지: {torch.backends.mps.is_available()}")

 

실제 AI 모델을 돌리면서 GPU를 사용해보고 후기를 또 남겨볼 예정이다!

댓글