TensorRT

서동현·2023년 1월 29일
0

What is TensorRT?

tensorRT는 Nvidia에서 개발한 [인공지능 모델을 Serialize(직렬화)하여 최적화시킨 엔진을 Deserialize(역직렬화)하여 Inference]하는 SDK(Software Development Kit)다.

출처 : blogs.nvidia.co.kr/wp-content/uploads/sites/16/2020/02/Figure2-TensorRT-workflow.png

Train된 Model을 Import하여 Optimization, Compressiong과정을 거쳐 만들어낸 Engine을 Binary형태(Blob)으로 저장하여
Inference를 할때마다 Engine을 Deserialize하여 Runtime(인공지능 sw 실행환경)을 Deploy(배포)한다.

Why TensorRT?

학습된 모델을 최적화하여 Nvidia GPU상에서 모델의 Inference 속도를 대폭 향상시켜 인공지능 서비스에 소모되는 비용(TCO:총 소유비용 Total Cost of Ownership)을 줄인다.

Optimizer

일반 Server, Local 환경이랑 다르게 Mobile이나 Embeded환경에서는 Deep Learning Model을 이용한 Inference를 수행하는데 메모리, 프로세서 성능등의 제약이 있다.
모델을 경량화 하기 위해
1. 모델의 구조를 변경하거나, 효율적인 Convolution filter, 경량 모델 자동 탐색등을 도입하는 것으로 경량 알고리즘을 연구할 수 있고,
2. Weight Pruning, Quantization, Binarization, Weight Sharing등의 방법으로 이미 만들어진 모델의 파라미터를 줄이는 모델 압축을 시도할 수 있다.

Quantization & Precision Calibration

Weight, Actication function, Output으로 구성되어있는 NeuralNet모델은 FP32(Float Point 32bit)으로 표현되어있지만, 리소스가 제한된 Mobile, Embeded환경에서 사용이 어려워 비트 수를 줄여 사용가능하게 만든다.

출처 : https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyFgZU%2Fbtrp7HI1pCU%2FyRYqH9o2Lcw6L5MXdfK9v1%2Fimg.png

각 layer의 Weight/Activation function/Output의 Max/Min을 기준으로 다른 메모리공간을 차지하는 자료형으로 매핑하여
NN의 Weight, Activation function, Output을 표현하는데 요구되는 메모리 공간을 감소시킨다.

  1. Quantization은 Inference할 때에만 사용한다.
  2. 구현한 딥러닝 모델의 모든 layer가 항상 Quantization될거라고 보장할 수 없다.
    layer가 민감하거나, Deeplearning Framework이 지원하지 않는 경우
  3. 모든 Layer가 Quantization 되는 것이 항상 가장 효율적인 것은 아니다.
    Layer Fusion을 통해 Quantization 횟수를 줄인다.
  4. Layer의 특성에 따라 Quantization의 효과가 다르게 나타난다.
  5. Quantization이 적용된 연산 중에 반드시 CPU에서만 사용해야하는 경우가 많다.
    *Quantization 적용 6단계
  6. Module Fusion
  7. Formula Definition
  8. Hardware Deployment
  9. Dataset Calibration
  10. Weight Conversion
  11. Dequantization

Graph Optimization

Kernel Auto Tuning

Dynamic Tensor Memory & Multi-Stream execution

Runtime Engine

profile
AI 비즈니스 가치를 고민합니다.

0개의 댓글