본문 바로가기

삽질 기록

[TensorRT] ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

 

* 2019.10.10 해결 완료  

 

 

난 RTX 2080 에 CUDA 10.0 cuDNN 7.3.1 환경이라서

 

분명 tensorRT 5.0.2.6 - CUDA 10.0 버전을 설치하고 

 

TensorRT 소스를 돌리면, 왜 아래와 같은 오류가 나는 것일까. 

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

 

아래 libcublas.so.9.0 은 CUDA 9.0 버전에 있는 파일이고 나는 libcublas.so.10.0 파일만 존재하는데 ...

 

TensorRT 를 CUDA 10.0 으로 깔았는데 왜 CUDA 9.0 을 찾는 것인가?

 

에러를 쳐보면 다들 CUDA 9.0 으로 다운그레이드 하라고 나오거나 

 

TensorFlow 버전을 낮추라고 하던데 

 

나는 CUDA 10.0 이라서 tensorflow 버전도 1.13 이상인 것을 써야하는데 ...

 

 

 

결국 이 문제는 .bashrc 에 경로를 잘못 지정해서 생긴 문제다. 

(아마도 이전에 설치한 경로를 시스템이 몰래 찾아다 써서 생기는 문제인듯)

$ vi .bashrc

 

아래 코드를 맨 밑줄에 추가 (CUDA 10.0 환경 기준)

이 때 실제 존재하는 경로를 적어야 하며, 다운 받은 TensorRT 경로를 적어준다.

필자의 경우는 /home/name/TensorRT-5.0.2.6/lib 

export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDADIR=/usr/local/cuda-10.0
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64:/usr/local/cuda/extras/CUPTI/lib64:/home/name/TensorRT-5.0.2.6/lib"
export CUDA_HOME=/usr/local/cuda

 

source .bashrc 

$ source .bashrc

 

터미널을 한번 껐다 다시 새로 켜서

$ python3 
import tensorrt

tensorrt 를 import 해보면 정상적으로 실행되는 것을 볼 수 있다....

드디어 로컬 환경에 TensorRT 설치 완료 v 

 

 

 

참고자료 1 : https://github.com/tensorflow/tensorflow/issues/17629

 

 

참고자료 2 보면 아래 답변과 같이 

CUDA 10.0 에서 TensorFlow 1.12 를 쓰려면 소스 빌드를 해야하고

tensorflow 1.13.0rc1 은 CUDA 10.0 으로 빌드 된 것이고... 하 

In order to use TensorFlow 1.12 with CUDA 10 you need to build TensorFlow from source.
https://www.tensorflow.org/install/source

You may also try the 1.13.0rc1 release candidate build which is built with CUDA 10.

pip install tensorflow-gpu==1.13.0rc1

 

참고자료 2 : https://github.com/tensorflow/tensorflow/issues/25789

 

 

아나콘다 환경에서 TensorRT 를 쓰려면 python 2.7 버전을 쓰라고 하는데 이것도 역시나 안된다. 

그래서 아나콘다 환경을 지우고 루트 환경에서 실행했다고 한다. 문제는 여기서 시작한건데 

자꾸 CUDA 9.0을 찾아서 문제다 

 

https://devtalk.nvidia.com/default/topic/1028460/jetson-tx2/error-importing-tensorrt/2