Machine Learning/Edge Device

ONNX & TensorRT & TVM

light_meal 2023. 3. 18. 11:33
728x90

ONNX

ONNX는 확장 가능한 계산 그래프 모델의 정의와 기본 제공 연산자 및 표준 데이터 유형의 정의를 제공합니다.

각 계산 데이터 흐름 그래프는 비순환 그래프를 형성하는 노드 목록으로 구성됩니다. 노드에는 하나 이상의 입력과 하나 이상의 출력이 있습니다. 각 노드는 연산자에 대한 호출입니다. 그래프에는 목적, 작성자 등을 문서화하는 데 도움이 되는 메타데이터도 있습니다.

연산자는 그래프 외부에서 구현되지만 기본 제공 연산자 세트는 프레임워크 간에 이식 가능합니다. ONNX를 지원하는 모든 프레임워크는 적용 가능한 데이터 유형에 대한 이러한 연산자의 구현을 제공합니다.

https://onnx.ai/about.html

 

ONNX | About

Technical Design ONNX provides a definition of an extensible computation graph model, as well as definitions of built-in operators and standard data types. Each computation dataflow graph is structured as a list of nodes that form an acyclic graph. Nodes h

onnx.ai

 

TensorRT

NVIDIA TensorRT는 딥 러닝 추론을 위한 SDK이다. TensorRT는 주요 딥 러닝 프레임워크에서 훈련된 모델을 가져올 수 있는 API 및 파서를 제공한다. 그런 다음 데이터 센터와 자동차 및 임베디드 환경에 배포할 수 있는 최적화된 런타임 엔진을 생성한다.

딥 러닝은 자연어 처리, 추천 시스템, 이미지 및 비디오 분석과 같은 광범위한 애플리케이션에 적용된다. 더 많은 애플리케이션이 프로덕션에서 딥 러닝을 사용함에 따라 정확성과 성능에 대한 요구로 인해 모델 복잡성과 크기가 크게 증가했다.

자동차와 같은 안전에 중요한 응용 프로그램은 딥 러닝 모델에서 예상되는 처리량 및 대기 시간에 대한 엄격한 요구 사항을 적용한다. 추천 시스템을 포함한 일부 소비자 애플리케이션의 경우에도 마찬가지다.

TensorRT는 이러한 사용 사례를 위한 딥 러닝 배포를 지원하도록 설계되었다. 모든 주요 프레임워크를 지원하는 TensorRT는 강력한 최적화, 감소된 정밀도 사용 및 효율적인 메모리 사용을 통해 짧은 지연 시간으로 대량의 데이터를 처리할 수 있도록 지원한다.

https://developer.nvidia.com/blog/speeding-up-deep-learning-inference-using-tensorrt-updated/

 

Speeding Up Deep Learning Inference Using NVIDIA TensorRT (Updated) | NVIDIA Technical Blog

This post was updated July 20, 2021 to reflect NVIDIA TensorRT 8.0 updates. NVIDIA TensorRT is an SDK for deep learning inference. TensorRT provides APIs and parsers to import trained models from all…

developer.nvidia.com

 

TVM

Apache TVM은 CPU, GPU 및 기계 학습 가속기를 위한 오픈 소스 기계 학습 컴파일러 프레임워크다. 기계 학습 엔지니어가 모든 하드웨어 백엔드에서 효율적으로 계산을 최적화하고 실행할 수 있도록 하는 것을 목표로 한다.

TVM의 컴파일 흐름은 다음과 같다.

  1. 프론트엔드 구성 요소는 내부적으로 모델을 나타내는 함수 컬렉션이 포함된 IRModule로 모델을 수집한다.
  2. 컴파일러는 IRModule을 기능적으로 동등하거나 거의 동등한 다른 IRModule로 변환한다.
  3. 컴파일러는 IRModule을 대상에서 지정한 실행 가능한 형식으로 변환한다.
  4. 사용자는 지원되는 런타임 환경에서 컴파일된 함수를 실행한다.

728x90