본문 바로가기

연구/pytorch

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

반응형

결론부터 말하면 GPU와 PC환경설정간 호환이 안된다는 뜻이다. 해결 방법은 아래에 흐름대로 적어놓도록 하겠다.


제목과 같은 에러메세지가 떴다.

지금 상황은 RTX3090으로 바꾸고 nvidia-driver, cuda, cudnn, anaconda, pytorch 설치 후 처음으로 러닝을 돌리는데 위와 같은 에러가 뜬 상황이다.

그 중 의도를 알 수 있는 메세지를 스샷했다.

 

대충 보니 파이토치 버전이 맞지 않는다는 의미인것 같았다.

 

일단 내 실험환경은 다음과 같다.

NVIDIA-DRIVER : 460.39

CUDA : 11.2

CUDNN : 8.1.1

pytorch : 1.8.0

 

근데 의문인 것은 연구실 다른 분들 중에 CUDA 11.2, CUDNN 8.1.1 로 학습중인 분도 계셨고 NVIDIA-DRIVER도 공식 홈페이지에 따르면 455 이상 버전이면 CUDA11 버전과 호환이 된다고 언급돼 있었다.

따라서 결론은 정말 pytorch가 문제인것 같았고 몇몇 글들에서도 pytorch 버전이 문제인것 처럼 언급되고 있었다.

 

참고할 다른 글 : 

github.com/pytorch/pytorch/issues/45028

 

GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation. · Issue #45028 · pytorch/

Edit: If you see this error, please go to https://pytorch.org/get-started/locally/ and download a wheel built with cuda 11.x **Hi I recently purchased RTX 3080 and got this error GeForce RTX 3080 w...

github.com

 

그래서 일단은 내게 필요한 건 현재 설치돼 있는 pytorch 1.8.0 버전을 삭제하는것이고 그 방법이 필요하다. 그래서 아래 링크의 글을 참고하기로 했다.

stackoverflow.com/questions/43664444/how-can-l-uninstall-pytorch

 

 

 


에러 해결 후 다시 정리

현재 에러를 고치고 정상적으로 Learning을 시작한 시점에서 다시 글을 정리한다.

내 상황은 공식 pytorch공식 홈페이지를 통해 아래 명령어로 pytorch를 설치했었다.

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio cudatoolkit=11.2 -c pytorch -c conda-forge

물론 pytorch==1.7.1 torchvision==0.8.2, cudatoolkit=11.2 라는 명령어는 내가 원하는 버전대로 설치되길 바라는 마음에서 저렇게 커맨드를 입력했었다. 그러나 설치가 완료된 후에 터미널을 보니 pytorch 1.8.0이 정상적으로 설치가 완료됐다는 명령어가 떴었다.

 

그리고 conda base에서 python -> import torch 명령어로 버전을 확인하려 했으나 torch가 없다는 말만 뜰 뿐이었다.

 

원래 torch 1.8.0 이 떠야 정상이 아닌가 라고 생각하고 있었는데 어쨋든 나는 콘다 가상환경을 하나 더 만들어서 거기서 pip install torch==1.7.1 을 다시 입력했다.

그리고 해당 가상환경에서 다시 python -> import torch 로 버전을 확인했을 때는 torch 1.7.1 버전이라는 말이 나왔고 거기서 아 설치가 잘 됐구나 라고 생각했었다.

그 상태에서 다시 학습을 돌리니까 맨처음과 같은 에러메세지가 나왔다. 즉, 학습을 할때는 torch version을 1.7.1이 아닌 1.8.0으로 인식하고 있다는 소리였다.

 

슬슬 빡이 올라오기 시작한다. 그래서 바로 위에있는 링크인 pytorch uninstall에 관한 글을 참고했으나 명령어를 치니까 pytorch package가 없단다;;

 

결국 어떻게 해결했느냐?

지금까지의 상태에서 pytorch나 torch를 uninstall하지 않고 공식홈페이지에서 제공하는 pre-version install 명령어를 입력했다.

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

 

PyTorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

pytorch.org

 

이 중에서도 난 이 명령어를 그.대.로. 입력했다.

 

내 CUDA는 11.2라서 중간 중간 보이는 +cu110 를 +cu112 로 바꿔야 되나 생각했지만 어쨋든 그대로 커맨드 입력해봤다.

그리고 다시 학습을 돌려보니 엥??? 되네????

 

지금까지도 정확한 원인은 잘 모르겠으나 모르겠으니까 이렇게라도 설치를 완료했다는 글을 남기고 이 글이 도움이 되는 사람이 있길 바란다...

반응형