PyTorch에서 "CUDA is not available (on Ubuntu)" 오류 해결 방법 (Linux, PyTorch, Ubuntu-18.04)
Ubuntu 18.04에서 PyTorch를 사용할 때 "CUDA is not available" 오류가 발생하는 경우가 있습니다. 이 오류는 CUDA가 사용 불가능하거나 PyTorch가 CUDA를 올바르게 감지하지 못할 때 발생합니다.
해결 방법:
다음은 오류 해결을 위한 몇 가지 방법입니다.
CUDA 설치 확인:
- 먼저 시스템에 CUDA가 설치되어 있는지 확인해야 합니다. 다음 명령을 사용하여 CUDA 버전을 확인할 수 있습니다.
nvidia-smi
- CUDA가 설치되어 있지 않으면 NVIDIA 웹사이트에서 다운로드하여 설치합니다.
PyTorch 설치 확인:
- PyTorch가 CUDA 지원 버전으로 설치되었는지 확인해야 합니다. 다음 명령을 사용하여 PyTorch 버전과 CUDA 지원 여부를 확인할 수 있습니다.
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113/torch_stable.html
CUDA 드라이버 버전 확인:
환경 변수 설정:
CUDA_HOME
환경 변수가 CUDA 설치 경로를 가리키도록 설정해야 합니다. 다음 명령을 사용하여 환경 변수를 설정할 수 있습니다.
export CUDA_HOME=/usr/local/cuda
- 또한
LD_LIBRARY_PATH
환경 변수에$CUDA_HOME/lib64
경로를 추가해야 합니다.
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
시스템 재부팅:
- 모든 설정을 변경한 후 시스템을 재부팅해야 변경 사항이 적용됩니다.
추가 정보:
참고:
- 위의 해결 방법 외에도 다양한 원인으로 인해 "CUDA is not available" 오류가 발생할 수 있습니다.
- 오류 해결에 어려움을 겪는 경우 PyTorch 커뮤니티 또는 NVIDIA 포럼에서 도움을 요청할 수 있습니다.
PyTorch CUDA 예제 코드
import torch
# GPU 사용 가능 여부 확인
if torch.cuda.is_available():
device = torch.device("cuda")
else:
device = torch.device("cpu")
# GPU에 텐서 할당
x = torch.randn(100, 100, device=device)
# GPU에서 텐서 연산 수행
y = x.mm(x.t())
# 결과 출력
print(y)
설명:
torch.cuda.is_available()
함수를 사용하여 GPU 사용 가능 여부를 확인합니다.torch.device()
함수를 사용하여 CPU 또는 GPU 장치를 선택합니다.torch.randn()
함수를 사용하여 GPU에 텐서를 할당합니다.- 텐서 연산은 GPU에서 수행됩니다.
print()
함수를 사용하여 결과를 출력합니다.
- 이 코드는 PyTorch가 CUDA를 지원하는 버전으로 설치되어 있고, CUDA 드라이버가 올바르게 설치되어 있는 것을 가정합니다.
- 코드를 실행하기 전에 환경 변수를 설정해야 할 수도 있습니다.
PyTorch에서 CUDA 대체 방법
CPU 사용:
CUDA가 사용 불가능하거나 성능 향상이 크지 않은 경우 CPU를 사용하여 PyTorch 모델을 학습 및 실행할 수 있습니다. CPU는 CUDA만큼 빠르지는 않지만, 대부분의 작업에 충분히 빠를 수 있습니다.
AMD ROCm 사용:
AMD Radeon GPU를 사용하는 경우 AMD ROCm 프레임워크를 사용하여 PyTorch 모델을 학습 및 실행할 수 있습니다. ROCm은 CUDA와 유사한 기능을 제공하지만, AMD GPU에 최적화되어 있습니다.
Intel oneAPI 사용:
Google Cloud TPU 사용:
Google Cloud TPU는 Google Cloud Platform에서 제공하는 클라우드 기반 TPU 서비스입니다. TPU는 GPU보다 훨씬 빠른 속도를 제공할 수 있으며, 대규모 모델 학습에 적합합니다.
Amazon Web Services (AWS) EC2 P4 인스턴스 사용:
AWS EC2 P4 인스턴스는 NVIDIA Tesla V100 GPU를 탑재한 클라우드 서버입니다. P4 인스턴스는 PyTorch 모델 학습 및 실행에 매우 적합하며, 높은 성능을 제공합니다.
주의 사항:
- 대체 방법을 사용하기 전에 PyTorch 모델이 해당 방법을 지원하는지 확인해야 합니다.
- 대체 방법은 CUDA만큼 성능이 좋지 않을 수도 있습니다.
linux pytorch ubuntu-18.04