본문 바로가기
기타/오류 뿌수기

AssertionError: Torch not compiled with CUDA enabled

by climba 2022. 3. 11.

0. 글 쓰기에 앞서

netG = Generator().cuda() # .cuda => upload to GPU
netD = Discriminator().cuda()

pytorch를 colab이 아닌 로컬에서 사용할때 .cuda부분을 사용하면 항상 다음과 같은 오류가 나타난다.

AssertionError: Torch not compiled with CUDA enabled

해석하면 대충 CUDA가 활성화된 상태에서 토치가 컴파일되지 않음,

CUDA와 Torch의 버전이 호환되지 않아서 발생하는 오류다.

그러나 구글을 아무리 뒤져봐도 내 문제는 해결되지 않았고 이에 힘들게 찾은 해결 방법을 정리해보려한다.

 

1. 설치해야 할 것들

1-1. NVIDIA 그래픽 카드 드라이버

https://www.nvidia.com/Download/index.aspx?lang=kr

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

 

위 사이트에서 다운 받을 수 있다.

 

자신의 컴퓨터에서 사용하는 그래픽카드 모델에 맞는 드라이버를 설치하면 되는데,

그래픽카드를 어떤 것을 사용하는지 모르겠으면

1. 설정 -> 정보 -> 장치관리자 클릭 후

2. 디스플레이 어댑터를 클릭하면 사용중인 그래픽 카드를 확인 할 수 있다.

 

그 후 검색을 눌러 설치하면 된다.

1-2. CUDA Toolkit 설치

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

위 웹사이트에서 설치하면 된다.

Base Installer를 설치하면 된다.

1-3. cuDNN 설치

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.

developer.nvidia.com

cuDNN을 설치하려면 NVIDIA 웹사이트 계정이 있어야한다.

 

구글 계정으로 연동 할 수 있으니 회원가입을 해 준 후 cuDNN을 설치하면 된다.

cuDNN v7.6.5 for CUDA 10.2를 설치해주면 된다!

설치가 끝난 후 폴더를 열어보면 bin, include, lib 세 개의 파일이 생성됐을 것이다.

각각의 파일들을 NVIDIA Toolkit을 다운받은 경로에 복사 붙여넣기 해준다.

완료 되었으면 윈도우 환경변수 설정 창에 들어가서

위와 같이 bin,include,lib 파일 경로를 추가해준다.

 

 

터미널을 열고 다음 명령어를 쳐서 파이토치를 깔아준다.

conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

 

2. 명령어 실행

윈도우키 + R을 눌러 cmd(명령 프롬프트)를 실행한 후 다음 명령어를 실행시키자. (큰따옴표까지 실행시켜야한다.)

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite\deviceQuery.exe"

이때, 명령어에서 v11.6부분 까지는 자신의 환경변수에서 나온 경로로 설정해줘야한다.

 

이상이 없다면 명령 실행 후 마지막에 Result = PASS가 출력 될 것이다.

 

하지만 이렇게 하고 다시 코드를 실행해도 아래의 오류는 사라지지 않는다.

나중에 도커를 설치하면서 알게된 사실은 파이토치, cuda, cudnn 버전이 각각 1.7.1, 11.0, 8이여야 한다는 것이였다.

이것을 몰랐던 나는 그냥 도커를 설치해서 도커 이미지에 있는 파이토치를 이용해 위 오류를 해결했다.

 

3. 마무리

사실 윈도우에서 이 문제를 정확하게 해결하지 못했다. 약 4일정도를 밤새 구글링 해보고 컴퓨터 포맷도 세번씩이나, 엔비디아 드라이버는 5번은 넘게 지우고 설치했던 것 같다. 이럴바에 그냥 마음 편하게 Docker를 설치하는 것이 좋을 것 같다.

 

https://hyunsooworld.tistory.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9D%EC%9D%84-%EC%9C%84%ED%95%9C-Window10-Docker-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%8F%84%EC%BB%A4-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95

 

딥러닝을 위한 Window10 Docker 설치 방법 (윈도우 도커 설치 방법)

0. 글 쓰기에 앞서 최근 공부했던 딥러닝 파이토치 코드를 로컬 데스크탑에서 돌리려다 AssertionError: Torch not compiled with CUDA enabled 이 오류때문에 골머리를 앓은 적이 있다. 파이토치와 NVIDIA..

hyunsooworld.tistory.com

 

댓글