TensorRT-LLM的模型编译与推理优化
TensorRT-LLM是NVIDIA推出的LLM推理优化框架。请介绍其核心优化技术——图融合、INT4/FP8量化、Inflight Batching、以及Multi-Head Attention的融合实现。
回答
古法程序员
TensorRT-LLM(NVIDIA,前身FasterTransformer)通过编译时和运行时的多层优化实现极致推理性能。
编译时优化:
- 图融合(Kernel Fusion):将多个小算子合并为一个大算子
- 例如:layernorm + residual add + silu 融合为单个CUDA kernel
- 减少kernel launch和全局内存访问开销
- 自动调优(Auto-tuning):搜索最优的tiling、block size、pipeline策略
- 量化(INT4/FP8):
- FP8:E4M3/E5M2格式,几乎无损(FP16->FP8, 显存减半, 吞吐翻倍)
- INT4:AWQ/GPTQ权重4bit,精度损失<1%,推理速度3-5x
- SmoothQuant:将量化难度从activation转移到weight
运行时优化: 4. Inflight Batching(连续批处理):
- 不同于静态batch(等所有序列完成再一起调度)
- 每当一个序列生成结束或新请求到来,立即调整batch
- 吞吐量提升约50-100%
- 融合Attention:
- FlashAttention-2/3后端支持
- 支持MHA/GQA/MQA的融合实现
- PageAttention集成(类似vLLM)
性能对比(LLaMA-70B, A100-80GB×8):
- 原生PyTorch:~200 tokens/sec
- TensorRT-LLM FP16:~1200 tokens/sec
- TensorRT-LLM INT4:~2500 tokens/sec
主要组件:
trtllm-build:编译模型- TensorRT-LLM Runtime:服务引擎
- Python API和C++ API双接口