[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