본문 바로가기
의지박약/DevOps

[torch] 리눅스 pytorch 초기 설정 및 기타 오류들... (with RTX 3090)

by 병진들 2021. 9. 29.

회사에서 사용하는 GPU Server가 한대 있는데, 두명이서 같이 쓰다보니 환경설정이 꼬일때가 많다.

가상환경도 쓰고 Docker도 쓰지만, 상대방이 이것저것 설치하다보면 내 환경과 충돌나는 경우가 무조건 있기마련...

 

DeepLearning을 학습 할 일이 있어서 torch를 새로 설치하고 이것저것 설정을 만진김에 한번에 정리 겸 포스팅..

 

내 환경

# result check.py
PyTorch version: 1.7.1+cu110
Is debug build: False
CUDA used to build PyTorch: 11.0
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.2 LTS (x86_64)
GCC version: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.31

Python version: 3.8.10 (default, Jun  2 2021, 10:49:15)  [GCC 9.4.0] (64-bit runtime)
Python platform: Linux-5.8.0-59-generic-x86_64-with-glibc2.29
Is CUDA available: True
CUDA runtime version: 10.1.243
GPU models and configuration: GPU 0: GeForce RTX 3090
Nvidia driver version: 460.91.03
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.21.2
[pip3] pytorch-lightning==1.3.8
[pip3] torch==1.7.1+cu110
[pip3] torchaudio==0.7.2
[pip3] torchmetrics==0.5.1
[pip3] torchvision==0.8.2+cu110
[conda] Could not collect

 

첫번째 문제

nvidia-smi 명령어 입력 시 Error 발생

Failed to initialize NVML: Driver/library version mismatch

해결방법

nvidia driver를 unload 하고 관련 모듈을 삭제하면 된다.

 

nvidia와 관련된 사용중인 driver 목록

# lsmod | grep nvidia

사용중인 nvidia driver를 모두 unload

# rmmod nvidia_uvm nvidia_drm nvidia_modeset

 

이때, 혹시 "rmmod: ERROR: Module nvidia is in use" 오류가 뜨면 프로세스가 실행중인 것 이므로 관련 프로세스를 검색하여 PID KILL해줌

# lsof /dev/nvidia*

# kill [PID]

# rmmod nvidia

 

확인해보면 아무것도 뜨지않아야 정상이다.

# lsmod | grep nvidia 

 

결과

# nvidia-smi

nvidia-smi

 

두번째 문제

pytorch로 학습 실행시 cuda version error 발생

CUDA error: no kernel image is available for execution on the device

 

nvidia-msi 명령어와 nvcc -V 명령어로 확인해보면 CUDA Version은 11.2로 RTX 3090에 알맞게 잘 설치가 되어있으나

python 내부의 torch는 cuda 10을 사용하게 되면서 에러가 발생했다.

 

torch 라이브러리를 import해서 확인해 볼 수 있다.

import torch
torch.version.cuda

버전 확인

해결방법

베이스 운영체제에 cuda11이 정상적으로 잘 설치 되었다는 가정 하에 해결방법은 간단하다

pytorch를 재설치 해주면 됨.

 

일단 기존의 torch를 제거해준다.

# pip uninstall torch

 

그리고 원하는 버전의 torch를 설치해 줘야 하는데, 꼭! cuda 버전에 알맞게 설치해줘야한다!

나는 이 부분에서 단순히 pip install torch==version 이런식으로 설치를 해서 계속 같은 오류가 발생했었다..

 

사용하고자하는 pytorch 버전에 따라, 그리고 cuda 버전에 따라 설치 스크립트가 달라지게 되므로 꼭 pytorch 공식홈페이지에서 알맞는 버전을 찾아서 다운로드하길 바란다..

 

내 경우에는 torch 1.7.1 버전과 cuda11 이 필요했기 때문에 아래와 같이 설치해주었다.

# CUDA 11.0
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

 

이제 학습이 잘 돌아간다..!

 

 

 

pytorch 홈페이지 주소

https://pytorch.org/get-started/previous-versions/


ref.

https://jangjy.tistory.com/300

 

댓글