해당 문서는 GPU 연산 가속화를 위한 TensorRT+tkDNN 환경을 구축하기 위한 포스팅입니다.
TensorRT는 Nvidia에서 만든 딥러닝 추론 최적화 라이브러리이다.
기존 딥러닝 모델을 구조적으로 개선해서 추론 성능을 향상시키는 라이브러리.
Nvidia의 GPU와 CUDA를 사용하면 어디에든 적용 시킬 수 있기 때문에, 앞서 설치했었던 Nvidia jetson시리즈 에도 모두 적용하여 성능을 올릴 수 있다는 장점이 있다.
tkDNN은 앞에 있는 TensorRT환경의 모델의 연산 방법을 Float32, Float16, Int8 자료형을 이용하여 연산을 시켜줄 수 있는 라이브러리 이다.
자료형 변환이 중요한 이유는 GPU연산의 부담을 확 줄여 메모리 사용량이 줄어듬과 동시에 연산량이 적어지는 만큼 inference time이 극단적으로 줄어든다는 장점이 있다.
그럼 TensorRT 7.0.0과 tkDNN 설치를 진행해보자.
Cmake version Upgrade
보통의 사용자라면 sudo apt-get install cmake로 cmake가 설치되어 있을 텐데, 이 방법으로 설치할 경우 3.10.2 버젼까지만 설치가 가능하다. 그러나 진행 과정에서 cmake 3.12.2 이상의 버젼을 원하기 때문에 cmake를 업그레이드 해주어야 한다.
cmake --version
해당 명령어를 통해 본인의 cmake 버젼을 확인해보고, 3.12.2 이상이라면 해당 과정은 점프하길 바란다.
cmake 다운로드 페이지에서 cmake를 다운로드 해준다. 필자는 3.17.3 버젼으로 진행
다운로드 페이지에서 cmake-3.17.3.tar.gz 파일 다운로드
sudo apt remove cmake
cmake 업그레이드 전 기존 cmake를 삭제해 준다.
삭제가 완료되면 다운로드 받은 파일을 압축해제
tar zxvf cmake-3.17.3.tar.gz
압축 해제가 완료되면 cmake를 설치해준다.
cd cmake-3.17.3
./bootstrap
make
sudo make install
설치가 완료되었다면 cmake 버젼을 확인해보자.
cmake --version
Install TensorRT
cmake설치가 완료되었으면 TensorRT를 설치해 주어야 한다. 필자는 7.0.0 버젼으로 진행
https://developer.nvidia.com/nvidia-tensorrt-7x-download
TensorRT 다운로드 사이트로 이동 (nvidia 로그인 필요)
현재 필자의 컴퓨터 환경은 ubuntu 18.04, CUDA 10.0을 사용하므로 그에 맞는 debian 패키지를 다운로드
(tar로 설치하는 방법도 있으나 다른 블로그에서 찾아볼 수도 있고,debian으로 설치를 원하는 사람이 있을 수도 있으니.. deb로 설치를 진행)
다운로드가 완료 되었다면 패키지를 설치해주자.
cp Download/nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb ./
sudo dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-cuda10.0-trt7.0.0.11-ga-20191216/7fa2af80.pub
sudo apt-get update
sudo apt-get install tensorrt cuda-nvrtc-10-0
TensorRT를 이용하기 위해 추가 패키지를 설치해주자
sudo apt-get install python-libnvinfer-dev
sudo apt-get install python3-libnvinfer-dev
sudo apt-get install uff-converter-tf
설치가 완료 되었다면, TensorRT가 잘 설치되었는지 확인해보자.
dpkg -l | grep TensorRT
Install tkDNN
딥러닝 추론 연산시 자료형을 변환할 수 있는 tkDNN을 설치해주자.
tkDNN의 경우 설치가 매우 간단하다.
git clone https://github.com/ceccocats/tkDNN.git
cd tkDNN
mkdir build
cd build
cmake ..
make -j6
이대로 진행하였다면 설치가 완료된 것이다. test파일을 실행하여 확인 해보면,
./demo yolo4_fp32.rt ../demo/yolo_test.mp4 y
자료형 변환을 원할 경우에는 bashrc에서 해당 명령어를 통해 변경 (default값으로 FP32가 설정되어 있다.)
export TKDNN_MODE=FP16
export TKDNN_MODE=INT8
'잡다한 것' 카테고리의 다른 글
Docker 설치 및 Nvidia docker로 GPU 사용하기 (feat. 자주쓰이는 명령어) (3) | 2020.11.03 |
---|---|
Tensorflow 1.14 에 TensorRT 설치 하기(feat. bazel builder) (0) | 2020.08.06 |
Jetson Xavier 초기 환경 설정 및 딥러닝 패키지부터 ROS 설치 까지 완전 클린 설치 (0) | 2020.06.09 |
darknet, Yolo v3 설치 시 Opencv 오류 관련 및 클린 설치 (3) | 2020.04.21 |
Ubuntu 18.04 그래픽 드라이버 440, cuda 10.2 오류 ,그래픽 드라이버 410,cuda 10.0 클린 설치하기 (0) | 2020.04.17 |