보람찬 코기의 개발자 블로그
article thumbnail
반응형

Tensor RT란?

NVIDIA 에서 제작했으며, 학습된 Deep Learning 모델을 최적화하여 NVIDIA GPU 상에서의 Inference 속도를 수배 ~ 수십배 까지 향상 시키는 모델 최적화 엔진이다.

 

가장 핵심포인트는 고성능 딥러닝 추론 라이브러리이다. (추론이다, 학습이아니라 추론이다)


How to USE?

NVIDIA GPU가 있는 로컬환경 혹은 Docker를 통해 설치한다.

 

Jetson은 ARM 기반 아키텍쳐 GPU를 사용하는데, 설치는 간단하다

 

Jetson nano,Xavier,Orin등 Jetson 계열에서는 기본 설치패키치 JETPACK을 설치하면 자동으로 설치 된다.

 

또한 , 기본 NVIDIA 제조사의 GPU 를 가지고 있다면 충분히 사용가능하다.

 

하지만 Driver Version, Compute Capbility, CUDA toolkit , CuDNN , TensorRT의 버전을 정확히 맞춰야 한다

 

그렇지 않다면 최적의 성능을 내지 못할 뿐더러 라이브러리가 충돌되어 OS를 재설치 하는 경우도 발생한다.

 

https://www.nvidia.co.kr/Download/index.aspx?lang=kr 

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

https://developer.nvidia.com/cuda-gpus

 

CUDA GPUs - Compute Capability

Explore your GPU compute capability and CUDA-enabled products.

developer.nvidia.com

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html

 

Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

This section contains instructions for installing TensorRT from the Python Package Index. When installing TensorRT from the Python Package Index, you’re not required to install TensorRT from a .tar, .deb, or .rpm package. All required libraries are inclu

docs.nvidia.com

 


다음 그림과 같이 다양한 프레임워크 (pytorch , tensorflow , theano 등)에서의 모델을 자체적인 tensor RT 기술에 맞게 최적화하여 효율적으로 실행할 수 있게 변환한다.

https://blogs.nvidia.co.kr/wp-content/uploads/sites/16/2020/02/219-%EB%B8%94%EB%A1%9C%EA%B7%B8-tensor-rt.png

글쓴이는 Pytorch yolov7 모델(.pt)을 ONNX(.onnx)로 변환하였고 TensorRT(.trt)로 변환하여 성능 측정에 임했다.

 


TensorRT 작동 방식

TensorRT의 작동 방식은 크게 세 단계로 나누어진다.

  1. Importing: 첫 번째 단계에서는 TensorFlow, PyTorch, ONNX 등과 같은 딥 러닝 프레임워크로부터 사전 학습된 모델을 가져온다.
  2. Optimizing: 가져온 모델은 TensorRT가 지원하는 여러 최적화 기법들에 의해 변환
  3. Deploying: 마지막 단계에서 최적화된 모델은 엔진 파일(engine file) 형태로 저장되며 이 파일은 실제 서비스나 어플리케이션에서 빠르게 로드하여 사용할 수 있다.

 

최적화 기법으로는

Layer fusion: 여러 계산 연산들을 하나로 병합하여 계산 속도를 개선하고 메모리 사용량을 줄인다

 

Precision calibration:  데이터 타입 변경(float32 ->float16 or int8)으로 메모리 점유율과 연산 속도를 개선한다


TensorRT 필요성

딥 러닝 모델은 학습(training) 단계와 추론(inference) 단계로 나뉜다.

 

대부분의 딥 러닝 프레임워크는 학습에 초점을 맞추고 있다. 하지만 실제 제품이나 서비스에서는 모델의 추론 성능이 중요하다.

 

이때 TensorRT가 중요한 역할을 하는데, 이것은 딥러닝 모델을 실제 서비스에 적용하기 위해 필요한 속도 향상과 자원 사용량 감소를 달성하기 위해 설계되었기 때문이다.

예를 들어, 실시간 비디오 스트리밍(얼굴 인식, 객체 탐지), 자율주행차량(Vison), 의료 진단(X-ray, MRI 판별) 등에서는 빠른 추론 시간이 요구된다.

 

이러한 경우에 TensorRT를 사용하면 딥러닝 모델의 실행 시간을 크게 줄일 수 있다.

 

또한, TensorRT를 통해 여러분은 복잡하고 큰 딥러닝 모델들도 효과적으로 최적화하여 배포할 수 있다.

 

 

위에서의 장점은 엄청나지만 단점으로는 작동하는 NVIDIA GPU의 방식대로 최적화가 되었기에, 모델 시각화 할수 있는 방법이 없다.

반응형

'ML & AI & DL 맛보며 친해지기' 카테고리의 다른 글

Jetson Nano 사용기  (0) 2023.08.30
[Deep Learning] ONNX 란?  (0) 2023.07.26
profile

보람찬 코기의 개발자 블로그

@BoChan

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!