초보자 pytorch(torch.cuda.is_available()) false 오류

맥프로
intel cpu
Intel Iris Plus Graphics 1536 MB

벌써 10시간정도 지난것 같습니다.
1.
pytorch가 필요해서 다운로드하려고합니다. pandas metplots... 등과 같은 library 니까 그냥 설치하면 되겠지 싶었습니다.

2.


pytorch를 검색하고 홈페이지에서 다운로드를 합니다.
제 파있이썬은 3.9버전입니다. 오케이 시작하자 다운로드가 완료되었습니다

3.
많은 웹사이트에서 GPU사용이 가능한지 확인을위해 이렇게 입력하면 True로 반환되어야 한다고하길래 입력해봤습니다. False가 반환되었습니다.
import torch
torch.cuda.is_available()

4
해결법을 찾던중 torch와 cuda 버전을 맞춰야 한다고 봤습니다. (torch version cu121 == nvcc--version cuda122)


스크린샷 2024-01-24 오후 7.56.27

검색해본결과 12.2버전과 호환되는 pytorch은 아직 없기때문에 12.2를 12.1이나 다른버전으로 다운그레이드 해야한다고합니다.
cuda tool kit 12.1 for mac

5.
linux 와 window만 지원하다고하더군요 그래서
11.7 버전으로 맥을위한 cuda took kit을 찾았습니다

설치방법을 읽어봤습니다.

순서대로 진행해봤지만 작동하지않습니다...

아직도 false로 반환되고있습니다.
그래서 여러가지 방법을 막 찾아서 실험해보던중 엉킨것 같아 지우고 다시 시도해보고있습니다.

저와 같은 맥북 M1,M2 칩이 아닌 분들중에 같은 상황을 겪고 해결해보신분이나
5번 진행단계를 잘 아시는분이계실까요..?
선생님들의 도움 기다리겠습니다. 감사합니다

이외에... 직접적으로 도움을 주실분은 메세지 주신다면 사례도 하겠습니다. 감사합니다.좋은 하루보내세요

1개의 좋아요
  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, neru.jeong님. PyTorch와 관련하여 겪고 계신 문제에 대해 도움을 드리고자 합니다. 문제 상황을 정리해보면, 맥프로(Intel CPU, Intel Iris Plus Graphics)를 사용하시면서 PyTorch를 설치하신 후 torch.cuda.is_available() 함수가 False를 반환하는 문제를 겪고 계신 것으로 보입니다. 또한, CUDA 버전과 PyTorch 버전의 호환성 문제를 해결하려고 시도하셨지만 여전히 문제가 해결되지 않았다고 하셨습니다.

먼저, torch.cuda.is_available() 함수가 False를 반환하는 이유는 여러 가지가 있을 수 있지만, 가장 기본적인 이유는 시스템에 NVIDIA GPU가 없거나, 설치된 CUDA가 PyTorch와 호환되지 않기 때문일 수 있습니다. 말씀하신대로 맥프로에는 Intel Iris Plus Graphics가 탑재되어 있고, 이는 NVIDIA GPU가 아니므로 CUDA를 사용할 수 없습니다. 따라서 torch.cuda.is_available()False를 반환하는 것이 정상입니다.

그러나 PyTorch는 CPU만을 사용하는 버전도 제공하므로, GPU가 없는 환경에서도 PyTorch를 사용할 수 있습니다. 다만, GPU를 사용할 수 없기 때문에 연산 속도가 느릴 수 있습니다.

PyTorch를 CPU 환경에서 사용하려면, GPU 지원 없이 PyTorch를 설치해야 합니다. PyTorch 설치 페이지(Start Locally | PyTorch)에서 'CUDA' 옵션을 'None'으로 선택하고, 해당하는 명령어를 사용하여 설치하시면 됩니다.

예를 들어, Python 3.9와 호환되는 PyTorch CPU 버전을 설치하는 명령어는 다음과 같습니다:

pip install torch torchvision torchaudio

이 명령어는 GPU 지원 없이 PyTorch를 설치합니다. 설치가 완료된 후에는 PyTorch의 기능들을 CPU에서 사용할 수 있습니다.

PyTorch의 공식 문서와 튜토리얼은 다음 링크에서 확인하실 수 있습니다:

제 답변이 정확하지 않을 수도 있으니, 추가적인 질문이나 문제가 있으시면 언제든지 질문해 주세요. PyTorch를 사용하시면서 좋은 경험을 하시길 바랍니다. 좋은 하루 보내세요!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
1개의 좋아요
  • 아래 답변은 OpenAI의 GPT-4-Turbo 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, PyTorch 사용에 어려움을 겪고 계신 것 같아 안타깝습니다. 문제를 해결하는 데 도움이 되도록 최선을 다하겠습니다.

문제 상황을 정리해보겠습니다. 맥프로를 사용하고 계시며, Intel CPU와 Intel Iris Plus Graphics를 탑재하고 있습니다. PyTorch를 설치하셨지만, torch.cuda.is_available() 함수가 False를 반환하여 GPU 사용이 불가능한 상황입니다. CUDA 버전과 PyTorch 버전을 맞추려고 시도하셨지만, 맥OS에서는 CUDA Toolkit 12.1 이상 버전이 지원되지 않아 11.7 버전으로 다운그레이드를 고려하고 계신 것으로 보입니다.

먼저, Intel Iris Plus Graphics는 NVIDIA의 CUDA를 지원하지 않는 내장 그래픽 카드입니다. 따라서 torch.cuda.is_available()False를 반환하는 것은 정상적인 동작입니다. CUDA는 NVIDIA의 GPU에서만 작동하며, Intel GPU나 AMD GPU에서는 사용할 수 없습니다.

PyTorch는 CPU만 사용하는 버전과 CUDA를 사용하는 버전이 있습니다. 맥에서는 NVIDIA GPU가 아닌 경우, CPU 버전의 PyTorch를 사용해야 합니다. 따라서 CUDA Toolkit을 설치하거나 버전을 맞추는 것은 필요하지 않습니다.

PyTorch를 CPU 모드로 사용하기 위해 다음과 같이 설치할 수 있습니다:

# PyTorch CPU 버전 설치
pip install torch torchvision torchaudio

이렇게 설치하면 GPU가 없는 시스템에서도 PyTorch를 사용할 수 있습니다. GPU를 사용하지 않으므로, torch.cuda.is_available()는 여전히 False를 반환할 것입니다. 하지만 PyTorch의 모든 기능을 CPU에서 사용할 수 있습니다.

PyTorch를 사용하면서 GPU 가속이 필요한 경우, Google Colab과 같은 클라우드 기반의 서비스를 사용하는 것을 고려해볼 수 있습니다. Google Colab은 무료로 GPU를 제공하며, PyTorch와 같은 머신러닝 라이브러리가 사전에 설치되어 있어 바로 사용할 수 있습니다.

PyTorch 설치와 관련된 자세한 정보는 공식 PyTorch 웹사이트의 설치 가이드를 참조하시기 바랍니다:

제 답변이 도움이 되었기를 바라며, 추가적인 질문이 있으시면 언제든지 문의해 주세요. 좋은 하루 보내시길 바랍니다!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  • 아래 답변은 Anthropic의 Claude-2 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요 neru.jeong님,

제기해주신 pytorch에서 cuda를 사용할 수 없다는 문제, 즉 torch.cuda.is_available()이 False를 반환하는 문제를 잘 이해했습니다.

M1, M2 칩을 사용하는 맥북의 경우 호환 가능한 cuda 버전을 찾는 것이 어려운 것 같습니다.

해결책은 크게 두 가지 방향이 있다고 생각합니다.

  1. Rosetta 2를 사용하여 인텔 기반의 가상 환경을 만들고 거기서 구동하는 방법

  2. Apple silicon native 버전의 PyTorch를 사용하는 방법

1번의 경우 Rosetta 2를 설치하고 terminal에서 x86_64 아키텍처를 사용하는 terminal을 실행한 뒤, cuda toolkit과 pytorch를 설치하면 동작할 것입니다.

arch -x86_64 zsh
conda create -n torch-env python=3.8
conda activate torch-env
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

2번의 경우, 현재 PyTorch 공식 빌드에는 Apple silicon native 버전이 없습니다. 대신에 다음 GitHub repo에서 빌드된 버전을 사용할 수 있습니다.

https://github.com/apple/pytorch

pip install torch-nightly -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html

이 방법들 중 더 잘 맞는 방법을 시도해보시길 바랍니다. 문제가 해결되지 않는다면 언제든지 댓글을 달아주세요. 함께 문제를 해결해나가겠습니다.

좋은 하루 보내세요!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!

mac으로는 시도해보지 않았지만,
pytorch페이지에서 지원하는 cuda version을 설치한 후 그 버전에 맞는 torch torchvision torchaudio를 설치하는 게 맞긴 합니다.
여기까지는 모두 인터넷 상에 자주 나와있는 내용이고 저 역시 Cuda 재설치 후
버전을 맞게 해도 안되더라고요..
결론적으로 저는 torch와 관련된 모든 패키지를 미리 삭제한 뒤 nvidia-driver, cuda, cudnn을 재설치하고나서 torch 관련패키지를 설치했고 그결과 torch.cuda.is_available() 입력 시 True를 반환하게 되었습니다.
예외사항도 있겠지만 이 방법도 한 번 시도해보세요.

1개의 좋아요

yoonsu님께서 답글을 남겨주셔서 뒤늦게 저도 보게 되었네요. 검색을 통해 발견하시게 되는 분들이 계실 것 같아 저도 답글을 남깁니다. (앞서 답글 남겨주신 @yoonsu 님 감사합니다 :bowing_man:)


PyTorch를 비롯하여 대부분의 딥러닝 프레임워크들은 다차원의 실수(real number)들을 빠르게 연산하기 위해 GPU를 필요로 합니다. NVIDIA의 GPU들은 CUDA가, AMD의 GPU들은 ROCm이 GPU를 활용하여 빠르게 연산을 할 수 있는 기능을 지원하고 있습니다.

이러한 GPU가 없는 경우에는 CPU를 사용하셔야 하며, 학습 및 추론 속도가 GPU를 사용하는 것에 비해 대단히 느립니다. (일부 최신 Intel CPU를 사용하고 계신 경우에는 CPU 차원에서 다차원의 실수 연산을 빠르게 하기 위한 ipex라는 이름의 추가 기능을 지원하고 있으며, 이에 대한 내용은 Intel® Extension for PyTorch* — PyTorch Tutorials 2.3.0+cu121 documentation 이나 ipex-llm: Intel CPU 및 GPU에서 로컬 LLM의 추론 및 미세 조정을 위한 PyTorch LLM 라이브러리 등과 같은 글을 참고해주세요.)

예외적으로 Apple이 직접 제작한 M1, M2 등과 같은 칩(Apple Silicon)의 경우에는 CUDA나 ROCm과 같은 류의 Apple이 제공하는 Metal Programming Framework를 활용하여 PyTorch에서 빠르게 연산을 할 수 있습니다. 이에 대한 내용은 MPS backend — PyTorch 2.3 documentation 문서를 참고해주세요. 그 외에, Apple이 직접 공개한 MLX 프레임워크를 사용하시는 것도 방법입니다.


말씀하신 경우처럼 Intel CPU를 사용하고 계시다면 Intel의 CPU 및 GPU를 위한 GitHub - intel/intel-extension-for-pytorch: A Python package for extending the official PyTorch that can easily obtain performance on Intel platform 을 사용해보시는 것도 방법일 것 같습니다. (정확히 어떠한 모델을 사용하고 계신지는 모르겠지만, AVX-512 지원은 가능할 것 같습니다.) 하지만 속도가 기대하시는 것만큼 빠르지는 못할 듯 하니, Google Colab이나 클라우드 GPU를 사용하시는 것이 나으실 것 같습니다.