pytorch/TensorRT

PyTorch/TorchScript/FX compiler for NVIDIA GPUs using TensorRT

Torch‑TensorRT — NVIDIA GPU에서의 빠른 PyTorch 추론

이것이 무엇인가

  • PyTorch와 NVIDIA의 TensorRT 추론 엔진을 연결하는 오픈 소스 라이브러리입니다. 모델을 다시 작성하지 않고도 모든 PyTorch 모델을 가져와 TensorRT 수준의 속도로 실행할 수 있습니다.

주요 기능

  • 한 줄 가속 – torch.compile(..., backend="tensorrt") 또는 torch_tensorrt.compile API를 사용하여 일반적인 eager PyTorch에 비해 최대 5배 낮은 지연 시간을 얻을 수 있습니다.
  • 두 가지 배포 경로:
    1. JIT(Just‑in‑time) 컴파일 – torch.compile을 통한 방식으로, 전적으로 Python에서 작동합니다.
    2. AOT(Ahead‑of‑time) 내보내기 – 한 번 컴파일하고 ExportedProgram(.ep) 또는 TorchScript(.ts) 파일로 직렬화한 다음, 프로덕션 환경에서 Python 또는 C++(libtorch)로 로드합니다.
  • 최신 하드웨어 지원 – Linux(x86‑64, ARM aarch64), Windows(Dynamo 백엔드), Jetson 디바이스(GPU/DLA)에서 작동하며, CUDA 13.4 + TensorRT 11.3이 필요합니다.
  • 혼합 정밀도 및 FP8 – 튜토리얼에서 추가 속도를 위해 낮은 정밀도 형식으로 모델을 실행하는 방법을 보여줍니다.

일반적인 워크플로우

import torch, torch_tensorrt
model = MyModel().eval().cuda()
inputs = [torch.randn(1,3,224,224).cuda()]
# 컴파일 및 직렬화
trt_mod = torch_tensorrt.compile(model, ir="dynamo", inputs=inputs)
torch_tensorrt.save(trt_mod, "model.ts", output_format="torchscript", inputs=inputs)

나중에 Python 또는 C++에서:

mod = torch.export.load("model.ep").module()
mod(*inputs)   # 빠른 추론
auto mod = torch::jit::load("model.ts");
auto out = mod.forward({input_tensor});

이것을 사용해야 하는 대상

  • NVIDIA GPU에서 프로덕션급 추론 속도가 필요한 PyTorch 개발자.
  • 대규모 비전 또는 언어 모델(예: Stable Diffusion, Hugging‑Face LLM)을 배포하고 즉시 사용 가능한 속도 향상을 원하는 팀.
  • PyTorch 생태계에 머물면서 TensorRT 수준의 성능이 필요한 엔지니어.

설치

  • 안정 버전: pip install torch-tensorrt
  • 야간 버전(CUDA 13.4): pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu134
  • NVIDIA NGC PyTorch 컨테이너에서도 사용 가능합니다.

리소스

  • 공식 문서: https://nvidia.github.io/Torch-TensorRT/
  • diffusion 모델, Stable Diffusion 및 Hugging‑Face LLM 가속에 대한 블로그 게시물 및 튜토리얼.
  • 더 깊은 아키텍처 세부 사항을 위한 YouTube 기술 강연(GTC ’23).

라이선스

  • BSD‑3‑Clause, 상업 및 연구용으로 허용적입니다.

Torch‑TensorRT는 NVIDIA 하드웨어에서 PyTorch 모델의 고성능 추론을 가능하게 하는 진정한 AI 중심 프로젝트입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트