ONNX
ONNX는 확장 가능한 계산 그래프 모델의 정의와 기본 제공 연산자 및 표준 데이터 유형의 정의를 제공합니다.
각 계산 데이터 흐름 그래프는 비순환 그래프를 형성하는 노드 목록으로 구성됩니다. 노드에는 하나 이상의 입력과 하나 이상의 출력이 있습니다. 각 노드는 연산자에 대한 호출입니다. 그래프에는 목적, 작성자 등을 문서화하는 데 도움이 되는 메타데이터도 있습니다.
연산자는 그래프 외부에서 구현되지만 기본 제공 연산자 세트는 프레임워크 간에 이식 가능합니다. ONNX를 지원하는 모든 프레임워크는 적용 가능한 데이터 유형에 대한 이러한 연산자의 구현을 제공합니다.
TensorRT
NVIDIA TensorRT는 딥 러닝 추론을 위한 SDK이다. TensorRT는 주요 딥 러닝 프레임워크에서 훈련된 모델을 가져올 수 있는 API 및 파서를 제공한다. 그런 다음 데이터 센터와 자동차 및 임베디드 환경에 배포할 수 있는 최적화된 런타임 엔진을 생성한다.
딥 러닝은 자연어 처리, 추천 시스템, 이미지 및 비디오 분석과 같은 광범위한 애플리케이션에 적용된다. 더 많은 애플리케이션이 프로덕션에서 딥 러닝을 사용함에 따라 정확성과 성능에 대한 요구로 인해 모델 복잡성과 크기가 크게 증가했다.
자동차와 같은 안전에 중요한 응용 프로그램은 딥 러닝 모델에서 예상되는 처리량 및 대기 시간에 대한 엄격한 요구 사항을 적용한다. 추천 시스템을 포함한 일부 소비자 애플리케이션의 경우에도 마찬가지다.
TensorRT는 이러한 사용 사례를 위한 딥 러닝 배포를 지원하도록 설계되었다. 모든 주요 프레임워크를 지원하는 TensorRT는 강력한 최적화, 감소된 정밀도 사용 및 효율적인 메모리 사용을 통해 짧은 지연 시간으로 대량의 데이터를 처리할 수 있도록 지원한다.
https://developer.nvidia.com/blog/speeding-up-deep-learning-inference-using-tensorrt-updated/
TVM
Apache TVM은 CPU, GPU 및 기계 학습 가속기를 위한 오픈 소스 기계 학습 컴파일러 프레임워크다. 기계 학습 엔지니어가 모든 하드웨어 백엔드에서 효율적으로 계산을 최적화하고 실행할 수 있도록 하는 것을 목표로 한다.
TVM의 컴파일 흐름은 다음과 같다.
- 프론트엔드 구성 요소는 내부적으로 모델을 나타내는 함수 컬렉션이 포함된 IRModule로 모델을 수집한다.
- 컴파일러는 IRModule을 기능적으로 동등하거나 거의 동등한 다른 IRModule로 변환한다.
- 컴파일러는 IRModule을 대상에서 지정한 실행 가능한 형식으로 변환한다.
- 사용자는 지원되는 런타임 환경에서 컴파일된 함수를 실행한다.
'Machine Learning > Edge Device' 카테고리의 다른 글
Install Apache TVM (0) | 2023.03.18 |
---|---|
ONNX Quantization Test (0) | 2023.03.18 |
경량화 기법 원리 ( 가지치기, 지식증류, 양자화 ) (0) | 2023.03.18 |
Docker에서 TensorRT 설치 (0) | 2022.09.02 |