맥북 M1 Chip는 Nvidia 그래픽카드를 사용하지 않는다. Apple 자체 개발한 M1 Chip을 사용하며, 이 아키텍처는 CPU와 GPU가 메모리를 공유하는 구조로 되어 있다. 따라서, NVIDA 그래픽카드 메모리에서 구동하도록 만들어진 CUDA 를 사용하지 못한다.
pytorch + GPU를 사용하는 대부분 실험과 Application이 CUDA를 사용하는 것을 고려할 때, 이것은 매우 심각한 문제라고 할 수 있다.
그러나, 애플에서 이부분을 고려하지 않을리 없다.
애플 또한 CUDA에 해당하는, M1 Chip의 GPU가속을 사용하도록 지원하는 프레임워크 "MPS"를 지원하고,
pytorch 또한 이 MPS를 지원한다.
MPS가 세팅되었는지 확인하기 위해서 다음과 `torch.backends.mps.is_build()` 와 `torch.backend.mps.is_available()`을 사용함으로써 확인할 수 있다.
import torch
print(f"MPS 장치를 지원하도록 build가 되었는가? {torch.backends.mps.is_built()}")
print(f"MPS 장치가 사용 가능한가? {torch.backends.mps.is_available()}")
일반적으로 Cuda를 사용하는 실험에서 다음과 같은 device를 변수로 사용하도록 많이들 작성한다.
애플 M1 Chip에서는 device를 `mps` 센팅함으로써 기존과 동일한 함수를 m1 chip의 GPU에서 구동 할 수 있다.
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
device = torch.device("mps") if torch.backends.mps.is_available() else torch.device("cpu")
print(device)
model.to(device)
[Python] 패키지 배포 리스트 관리 (ft. Requirements.txt 포맷팅 오류) (0) | 2023.01.18 |
---|---|
[Conda-Jupyter] Conda 가상환경과 Jupyter Kernel 연동/생성/삭제 (0) | 2022.12.06 |
[주피터 노트북 커널] jupyter lab/notebook kernel (0) | 2022.09.19 |
[Python] 파이썬 모듈/패키지 파해치기 - 모듈 생성하기/불러오기/상대경로/절대경로 (0) | 2022.06.25 |
[librosa 설치] 설치오류 - sndfile library not found (0) | 2022.06.02 |
댓글 영역