728x90
반응형

 

 

Nvidia TensorRT 는 GPU에서 고성능 추론을 용이하게 해주는 C++ 라이브러리이다. 

TensorRT는 일련의 네트워크 및 매개변수 들로 구성된 네트워크를 사용하여

기존에 존재하는 네트워크를 고도로 최적화 시킬 수 있다. 

 

현재 TensorRT는 CUDA 9.0,  10.0, 10.1 을 지원할 수 있고

TensorFlow에서 TensorRT 모델로 변환하려면 TensorFlow 1.12.0 버전이 필요하다고 한다.

 

또한 TesnorRT 는 sudo나 root 에 설치해야하며 

anaconda 와 같은 가상환경을 사용할 경우 tensorRT가 설치된 곳을 제어 할 수 없다고 한다. 

anaconda + python 2.7 을 이용하면 될 수 도 있다고 하는데 시도해보니 실패 

 

 

 

1. TensorRT 파일 다운로드 

https://developer.nvidia.com/tensorrt 

 

NVIDIA TensorRT

*/

developer.nvidia.com

 

2. tar 파일 압축 해제

$ tar xzvf TensorRT-5.1.x.x.Ubuntu-1x.04.x.x86_64-gnu.cuda-x.x.cudnn7.x.tar.gz

 

 

3. LD_LIBRARY_PATH 추가하기 

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" 

 

 

4. 휠 파일 설치 

python 2.7 or python 3.x 버전에 따라 pip2 or pip3 사용하여 설치 

$ cd TensorRT-5.1.x.x/python
  # for python 2.7
$ sudo pip2 install tensorrt-5.1.x.x-cp27-none-linux_x86_64.whl
  # for python 3.x
$ sudo pip3 install tensorrt-5.1.x.x-cp3x-none-linux_x86_64.whl


$ cd TensorRT-5.1.x.x/uff
  # for python 2.7
$ sudo pip2 install uff-0.6.3-py2.py3-none-any.whl
  # for python 3.x
$ sudo pip3 install uff-0.6.3-py2.py3-none-any.whl


# 위치 /usr/local/bin/convert-to-uff 인지 확인
$ which convert-to-uff


$ cd TensorRT-5.1.x.x/graphsurgeon
  # for python 2.7
$ sudo pip2 install graphsurgeon-0.4.0-py2.py3-none-any.whl
  # for python 3.x
$ sudo pip3 install graphsurgeon-0.4.0-py2.py3-none-any.whl

 

 

5. 설치 확인 

$ tree-d

$ python
import tensorrt as trt

 

 

6. 예제 실행

TensorRT-5.x.x.x 폴더의 samples/python/end_to_end_tensorflow_mnist 폴더에서 예제 실행

아래는 README.md 파일 내용 

# About This Sample
This sample demonstrates how to first train a model using TensorFlow and Keras, 
freeze the model and write it to a protobuf file, convert it to UFF, and finally run inference using TensorRT.

# Installing Prerequisites
1. Make sure you have the python dependencies installed.
    - For python2, run `python2 -m pip install -r requirements.txt` from the top-level of this sample.
    - For python3, run `python3 -m pip install -r requirements.txt` from the top-level of this sample.
2. Make sure you have the UFF toolkit as well as `graphsurgeon` installed.

# Running the Sample
1. Train the model and write out the frozen graph:
    ```
    mkdir models
    python model.py
    ```
2. Convert the .pb file to .uff, using the convert-to-uff utility:
    ```
    convert-to-uff models/lenet5.pb
    ```
    The converter will display information about the input and output nodes, which you can use to the register
    inputs and outputs with the parser. In this case, we already know the details of the input and output nodes
    and have included them in the sample.

3. Create a TensorRT inference engine from the uff file and run inference:
    ```
    python sample.py [-d DATA_DIR]
    ```
    The data directory needs to be specified only if TensorRT is not installed in the default location.

 

 

 

아래와 같은 에러나면 

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

 

밑에 블로그 내용 참고

 

https://eehoeskrap.tistory.com/308

 

[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: libcu..

eehoeskrap.tistory.com

 

 

 

 

 

참고자료 1 : https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#overview

 

TensorRT Installation Guide :: Deep Learning SDK Documentation

To uninstall TensorRT using the tar file, simply delete the tar files and reset LD_LIBRARY_PATH to its original value. To uninstall TensorRT using the zip file, simply delete the unzipped files and remove the newly added path from the PATH environment vari

docs.nvidia.com

 

728x90
반응형