Tensorflow에서 참조하는 CUDA와 설치되는 CUDA 간의 버전 꼬이는 문제 해결 방법.

less than 1 minute read


1. 사건과 해결


사건의 전말은 다음과 같다.

  1. Tensorflow를 CUDA 10.0 버전에 맞춰 세팅했었는데, 무슨 바람이 불었는지 CUDA 10.1 버전을 설치하게 됐다.

  2. 그러나, 이후에도 Tensorflow는 계속해서 libcublas.so.10.0 류의 cudnn library를 참조하려 한다.

  3. 당연히 library path에는 libcublas.so.10.1와 같이 버전이 모두 바뀌어 있는 상황.

  4. Tensorflow가 참조하는 버전을 바꾸고 싶었지만 재설치로도 효과가 없었다.

  5. 다시 CUDA 10.0 버전을 설치하기로 한다.

  6. 하지만 CUDA 10.1의 key를 입력했던 탓인지, 한 번 설치한 이후로는 계속해서 CUDA 10.1 버전이 설치됐다.


위의 상황은 다음의 한 줄로 정리할 수 있다.

  • Tensorflow는 CUDA 10.0 버전의 library를 참조하지만, CUDA를 설치하면 10.1 버전만 설치된다.


끔찍한 데드락이다. 꼬여도 제대로 꼬였다. 구글링을 통해 4번의 방법을 찾아보긴 했지만, 잘 나오지 않았다.


이전 포스트에도 있지만, CUDA 설치 가이드에서는 링크에서 deb 파일을 다운받고, 아래의 명령어를 수행하는 것이다.

sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda


하지만, 위의 과정으로는 CUDA 10.1 버전이 설치되는 무한의 데드락에서 헤어나올 수 없었다.

키보드가 박살나지 않도록 주의하자.


다행히도 다음의 명령어로 CUDA 10.0 버전을 설치할 수 있다.

sudo apt-get install cuda-10-0


2. 참고 자료


Link-1