pytorch 강의를 듣기 앞서 환경세팅 강의를 듣고있는데 Pytorch를 설치할때 GPU가 있고 없고에 따라서 설치하는게 달랐다.
나는 일단 맥북 에어 M1칩을 사용하고있어서 구글에 검색해보니까 아래 블로그들을 참고해서 MPS 활성화까지는 성공했다. (import torch cu 쳤을때 아무 에러 없이 다음 코드 입력창이 나오는것까지 확인했다.)
근데 강의 자료에 있던 명령어를 치니까 에러가 났다.
(아래 명령어를 치기 위해선 terminal에 python을 치고 파이썬 코드 에디터로 들어가야 한다.)
이유를 찾아보니 MacOS에서는 CUDA가 기본적으로 지원하지 않고, MacOS에서 GPU 연산을 활용하려면 NVIDIA GPU 대신 Apple Silicon에서 제공하는 MPS(Metal Performance Shaders)를 사용해야 한다고 한다.
Apple Silicon (M1, M2)에서 GPU 가속을 사용하는 방법 (MPS)
만약 Apple Silicon을 사용 중이라면, torch.backends.mps.is_available() 함수나torch.backends.mps.is_built()를 통해 MPS가 지원되는지 확인할 수 있다.
import torch
print(torch.backends.mps.is_available()) # MPS 사용 가능 여부
print(torch.backends.mps.is_built()) # MPS 지원 여부
이렇게 둘다 True로 나와야한다.
CUDA 대신 MPS 사용
Apple Silicon에서 MPS를 사용할 수 있는지 확인하고, MPS를 사용하는 경우 다음과 같이 코드를 수정할 수 있다:
if torch.backends.mps.is_available():
device = torch.device("mps")
else:
device = torch.device("cpu")
# Example tensor creation
x = torch.randn(1, device=device)
print(x)
위 코드를 실행하면 이렇게 정상 동작하는걸 확인할 수 있다.
결과가 tensor([-0.1683], device='mps:0')라고 나온 것은 정상적으로 MPS를 사용하고 있다는것이다. device='mps:0'은 MPS 장치에서 연산이 수행되고 있다는 것이다.
이제 이 아래부터 정상적으로 torch 코드를 입력하면 된다!
'프로그래밍 언어 > Python' 카테고리의 다른 글
대용량 데이터 처리 Pandas vs Dask DataFrame (0) | 2024.10.24 |
---|---|
[트러블 슈팅] conda activate 했는데 which python이/usr/bin/python3 로 나오는 이슈 (0) | 2024.08.07 |
[Seaborn] 선형 회귀선, 히스토그램, 커널 밀도 그래프, 산점도 그래프, 빈도 그래프, 조인트 그래프, 관계 그래프 (0) | 2024.08.05 |
[Seaborn] 기본 개념 - 데이터 불러오기 (0) | 2024.08.05 |
[Matplotlib] 영역을 지정하여 여러 개 그래프 적용 (0) | 2024.08.05 |