Computing

TensorRT (2) 설치 및 샘플 테스트 (Ubuntu 18.04 기준) 본문

Deep Learning/Optimization (Algorithm)

TensorRT (2) 설치 및 샘플 테스트 (Ubuntu 18.04 기준)

jhson989 2022. 7. 8. 21:10

이전 글

2022.06.14 - [Deep Learning/Optimization (Algorithm)] - TensorRT (1) 개념, 최적화 방법, Workflow (Layer Fusion, Quantization 등)

이전 글에서 TensorRT의 기본 개념에 대하여 소개하였다. 오늘 포스터에서는 TensorRT의 설치 방법을 정리하고자 한다.

TensorRT의 설치 방법은 공식문서, wikidocs를 참고하였다.

 

 

 

설치 방법

(0)

TensorRT는 C++ library이다. 따라서 C++ API를 제공하는데, 추가적으로 Python API도 제공한다. 

 

 

(1) 준비물

CUDA toolkit, PyCUDA 설치 필요

pip install numpy cupy

 Kepler architecture 이상의 GPU 필요

 

 

(2) TensorRT 다운로드

다운로드 사이트 

원하는 버전의 TensorRT를 다운로드 받는다. 이때 설치하는 환경(운영체제 버전, CUDA 버전)을 확인하고 거기에 맞는 설치 파일을 이용하여 설치하여야 한다. (Ubuntu 18.04, CUDA 10.2 환경에서 TensorRT 8.4 버전 실행 확인 완료)

Tar file을 이용하여 설치한다. 

 

 

(3) TensorRT C++ 설치

다운로드 받은 Tar file 압축 해제한다. 압축 해제 시 TensorRT와 관련된 모든 것을 포함하는 폴더(TensorRT-버전)가 나온다. 

해당 폴더 내의 lib 폴더, include 폴더, bin 폴더, 예제(sample) 폴더 등이 있다.

TensorRT는 C++ library이기에 lib, include를 환경 변수에 등록만 해주면 C++에서 사용 가능하다.

### 환경 변수 등록
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/Path~to~TensorRT/lib/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/Path~to~TensorRT/include/
export PATH=$PATH:/Path~to~TensorRT/bin/

 

(4) TensorRT Python 설치

TensorRT 폴더 내에서는 TensorRT Python package 설치를 위한 whl 파일이 같이 포함되어 있다. 

필수로 설치해야 할 whl 파일은 python 폴더에 있다. 해당 폴더 내에는 다양한 python 버전에 맞는 whl 파일이 있으며 자신의 python 버전에 맞는 whl 파일을 설치하면 된다.

### python 3.7 기준
# TensorRT 설치
cd /path~to~TensorRT/python
python -m pip install tensorrt-8.4.0.6-cp37-none-linux_x86_64.whl

# graphsurgeon 설치
cd /path~to~TensorRT/graphsurgeon
python -m pip install graphsurgeon-0.4.5-py2.py3-none-any.whl

# onnx_graphsurgeon 설치
cd /path~to~TensorRT/onnx_graphsurgeon
python -m pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl

### 설치 확인
python
>>> import tensorrt
>>> tensorrt.__version__
'8.4.0.6'

 

 

(5) 추가 설치 for TensorFlow

TensorRT와 TensorFlow를 같이 사용하기 위해서는 uff를 설치하여야 한다. 설치법은 TensorRT Python 설치와 동일하다.

cd uff
python -m pip install uff-0.6.9-py2.py3-none-any.whl

 

 

 

샘플 실행

TensorRT는 Python 샘플을 제공한다. 샘플 python 프로그램은 /path~to~TensorRT/samples/python/에 위치하고 있다. caffe 프레임워크로 작성된 mnist 프로그램을 TensorRT로 실행하는 예시를 실행해보고자 한다. (int8_caffe_mnist 폴더)

 

(1) 필수 packages 설치

실행 전 requirements.txt에 적힌 필수 python packages를 설치한다.

pip install -r requirements.txt

 

 

(2) MNIST 데이터셋 다운로드

samples/python 폴더에 위치한 download.py 함수를 통해 데이터를 다운로드 

### -d 폴더에 데이터 저장. -f 에 명시한 yml 파일을 보고 데이터 다운로드 받음
./downloader.py -d int8_caffe_mnist/ -f int8_caffe_mnist/download.yml

### 압축 풀기
cd int8_caffe_mnist/mnist
gzip -d *

 

(3) sample.py 실행

python sample.py -d mnist

실행 결과 테스트 정확도가 99%가 나오는 것을 확인할 수 있다.