Инференс и оптимизация
25 просмотров
TensorRT
TensorRT
TensorRT — SDK от NVIDIA для оптимизации инференса нейронных сетей на GPU. Применяет fusion слоёв, квантизацию и оптимизацию ядер для ускорения в 2-6× по сравнению с PyTorch.
Что такое TensorRT
TensorRT — библиотека NVIDIA для оптимизации и запуска нейросетей на GPU с максимальной производительностью. Принимает модель из PyTorch/ONNX и создаёт оптимизированный «движок» (engine), заточенный под конкретный GPU.
Как работает
PyTorch модель (.pt)
↓
Экспорт в ONNX
↓
TensorRT Optimizer
├─ Layer Fusion (объединение слоёв)
├─ Kernel Auto-Tuning (выбор лучших CUDA-ядер)
├─ Precision Calibration (FP16/INT8/FP8)
└─ Memory Optimization
↓
TensorRT Engine (.plan)
↓
TensorRT Runtime → Inference
Основные оптимизации
| Оптимизация | Что делает | Эффект |
|---|---|---|
| Layer Fusion | Conv+BN+ReLU → одно ядро | Меньше kernel launches |
| Precision | FP32 → FP16/INT8/FP8 | 2-4× ускорение |
| Kernel Tuning | Профилирует варианты | Лучший для GPU |
TensorRT-LLM
Для LLM — TensorRT-LLM: In-flight batching, Paged KV Cache, Tensor Parallelism, Quantization (INT4 AWQ, FP8), Speculative Decoding.
Сравнение
| Метрика | PyTorch | TensorRT | vLLM |
|---|---|---|---|
| Latency | 1× | 0.3-0.5× | 0.4-0.6× |
| Throughput | 1× | 2-5× | 2-4× |
| Гибкость | Максимум | Ограничен | Средняя |
Когда использовать: продакшн-инференс с фиксированной моделью и высокими требованиями к latency.
Связанные термины
Используется в