TensorRT는 엔비디아가 개발한 소프트웨어 개발 키트(SDK)이자 추론 최적화 런타임으로, 훈련된 딥러닝 및 머신러닝 모델을 그래픽 처리 장치(GPU)에 배포하기 위해 사용된다. PyTorch, TensorFlow, ONNX와 같은 프레임워크에서 모델을 가져와 저지연 및 고처리량 추론을 위한 최적화된 런타임 엔진으로 컴파일할 수 있다. 현재 엔비디아 문서에서 TensorRT라는 이름은 핵심 TensorRT SDK, TensorRT-LLM, TensorRT-RTX를 포함하는 더 넓은 제품군을 가리키기도 한다.
핵심 SDK는 주로 엔비디아의 독점 제품이지만, 엔비디아는 Apache 라이선스의 오픈소스 TensorRT 저장소와 관련 보조 프로젝트도 유지 관리한다. TensorRT는 컴퓨터 비전부터 대규모 언어 모델에 이르는 AI 추론 작업을 위한 프로덕션 환경에서 널리 사용되며, 엔비디아 딥러닝 소프트웨어 스택의 핵심 구성 요소이다.
역사
TensorRT는 2017년까지 엔비디아 딥러닝 소프트웨어 스택의 일부로 제공되었으며, 당시 엔비디아 GPU에서 훈련된 신경망을 배포하기 위한 고성능 추론 엔진으로 설명되었다. 2018년, 구글은 TensorFlow 1.7과 엔비디아 TensorRT의 통합을 발표했으며, TensorRT를 추론을 위해 딥러닝 모델을 최적화하고 프로덕션 환경의 GPU에 배포하기 위한 런타임을 생성하는 라이브러리로 설명했다. 이 통합은 TensorRT를 엔비디아 하드웨어에서 머신러닝 추론을 위한 표준 도구로 만드는 초기 단계를 표시했다.
개요
TensorRT의 핵심은 네트워크 정의와 훈련된 매개변수로 구성된 훈련된 네트워크를 받아 엔비디아 GPU에서 추론을 위한 고도로 최적화된 런타임 엔진을 생성하는 C++ 라이브러리이다. TensorRT는 C++ 및 Python API를 모두 제공하며, 모델은 네트워크 정의 API를 통해 직접 표현하거나 ONNX 파서를 통해 가져올 수 있다. 이러한 유연성 덕분에 개발자는 다양한 딥러닝 프레임워크의 모델로 작업할 수 있다.
엔비디아 문서에 따르면, TensorRT는 레이어 융합 및 지원되는 연산에 대한 효율적인 구현 선택과 같은 그래프 수준 및 커널 수준 최적화를 수행한다. 이러한 최적화는 지연 시간을 줄이고 처리량을 높여 TensorRT를 실시간 애플리케이션에 적합하게 만든다. 현재 문서는 동적 형태 지원, FP32, FP16, BF16, FP8, INT8을 포함한 혼합 정밀도 실행 모드, 그리고 트랜스포머 및 대규모 언어 모델 워크로드에 대한 특수 최적화도 설명한다. 여기에는 성능을 더욱 향상시키기 위한 모델 가지치기 및 양자화와 같은 기법이 포함된다.
TensorRT 엔진은 TensorRT API 또는 trtexec 명령줄 유틸리티를 통해 생성할 수 있다. 엔비디아의 빠른 시작 문서는 ONNX 변환, 런타임 API, C++ 및 Python 애플리케이션을 위한 직접 엔진 역직렬화에 기반한 배포 워크플로우를 설명한다. 이러한 워크플로우는 종종 아마존 웹 서비스 또는 구글 클라우드와 같은 클라우드 서비스와 함께 프로덕션 시스템에 원활하게 통합할 수 있게 한다.
라이선스 및 오픈소스 구성 요소
TensorRT 주변의 라이선스 모델은 독점 핵심 SDK와 오픈소스 저장소 및 도구 세트로 나뉜다. 엔비디아가 배포하는 패키지된 TensorRT 소프트웨어는 엔비디아 소프트웨어 라이선스 계약에 따라 관리된다. 동시에 엔비디아는 Apache License 2.0에 따라 GitHub에 공개 TensorRT 저장소를 유지 관리하여 특정 구성 요소에 대한 커뮤니티 기여와 투명성을 허용한다.
공식 TensorRT 문서는 또한 사용자를 빠른 시작 코드와 샘플을 위한 TensorRT 오픈소스 소프트웨어 저장소로 안내한다. 아키텍처 문서는 디버깅 및 상수 폴딩을 위한 Polygraphy와 TensorRT로 배포하기 전에 ONNX 그래프를 수정하기 위한 ONNX-GraphSurgeon과 같은 관련 도구를 설명한다. TensorRT는 또한 사용자 정의 레이어 및 지원되지 않는 연산을 위한 플러그인 메커니즘을 지원하여 개발자가 특수 요구 사항에 맞게 기능을 확장할 수 있게 한다.
제품군
엔비디아의 현재 문서는 여러 추론 제품을 TensorRT 이름 아래에 그룹화한다. 해당 문서에서 핵심 SDK는 TensorRT(Enterprise)로 구분되며, 관련 제공 항목에는 대규모 언어 모델 추론을 위한 TensorRT-LLM과 소비자용 RTX GPU를 위한 TensorRT-RTX가 포함된다. 이러한 제품군 접근 방식은 AI 워크로드와 하드웨어 대상의 다양성이 증가하는 것을 반영한다.
TensorRT-LLM
TensorRT-LLM은 엔비디아 GPU에서 대규모 언어 모델을 최적화하고 서빙하기 위한 관련 오픈소스 툴킷이다. 엔비디아는 이를 LLM을 정의하고 LLM 워크로드에 최적화된 TensorRT 엔진을 구축하기 위한 Python API를 제공하는 것으로 설명한다. 이 툴킷은 높은 메모리 대역폭과 효율적인 어텐션 메커니즘이 필요한 생성형 AI 모델의 고유한 과제를 해결하도록 설계되었다.
엔비디아의 제품군 문서에 따르면, TensorRT-LLM은 멀티 GPU 및 멀티 노드 실행, 인플라이트 배칭, 페이징된 KV 캐싱, 그리고 더 높은 처리량의 모델 서빙을 위한 FP8, INT8, INT4와 같은 양자화 방법을 지원한다. 이러한 기능은 OpenAI 또는 Anthropic의 모델과 같은 것을 프로덕션에서 효율적으로 배포할 수 있게 한다. TensorRT-LLM 코드베이스는 Apache License 2.0에 따라 GitHub에 게시되어 개발자 커뮤니티를 조성한다.
엔비디아가 TensorRT-LLM을 TensorRT 제품군의 별도 구성원으로 문서화하기 때문에, 이는 기본 TensorRT SDK의 단일 기능이 아니라 관련되지만 별개의 소프트웨어 프로젝트로 취급된다. 이러한 구분은 전통적인 신경망과 다른 성능 특성을 가진 대규모 언어 모델에 대한 집중적인 개발과 최적화를 가능하게 한다.
같이 보기
- llama.cpp
- SGLang
- vLLM
- 오픈소스 인공지능 소프트웨어 목록
- 딥러닝 소프트웨어 비교
- 머신러닝 소프트웨어 비교