TensorRT-LLM의 핵심 구조
TensorRT-LLM은 Python API를 제공하여 언어 모델을 정의하고 TensorRT 엔진을 빌드합니다. 내부적으로 PyExecutor 프로세스가 각 GPU 랭크에서 지속적인 백그라운드 루프를 운영하며, Scheduler, KVCacheManager, ModelEngine, Sampler의 네 가지 주요 컴포넌트로 구성됩니다. KVCacheManager는 자동회귀 텍스트 생성 시 이전에 계산한 어텐션 키-값을 저장하여 성능을 크게 향상시킵니다.
런타임 최적화 기법
CUDA 그래프: GPU 커널 시작의 CPU 오버헤드를 제거하여 최대 22% 종단간 처리량 증가를 달성합니다. 커널 퓨전: LayerNorm, 행렬곱, 활성화 함수를 하나의 최적화된 CUDA 커널로 통합하여 중간 텐서 구체화를 제거합니다. 인플라이트 배칭: 정적 배칭과 달리 실행 중 새로운 요청을 동적으로 추가하여 3~8배 높은 처리량을 달성하고 고시성 환경에서 3~5배 향상을 제공합니다. Paged Attention: KV 캐시를 비연속 메모리 블록으로 할당하여 메모리 단편화를 방지합니다.
양자화 및 컴파일 전략
FP8 양자화는 Hopper/Blackwell GPU에서 최고의 성능/정확도 트레이드오프를 제공하며, INT8 SmoothQuant와 INT4 AWQ가 대안입니다. 모델을 특정 GPU 아키텍처용으로 미리 컴파일하면 최적화된 .engine 파일이 생성되어 네이티브 PyTorch 대비 2~4배 빠른 추론을 보장합니다.