TensorRT-LLM 深度优化指南:榨干 NVIDIA GPU 的每一滴性能

AI InfraTensorRT-LLMNVIDIA性能优化

如果你的目标是极致性能,且全部使用 NVIDIA GPU,那 TensorRT-LLM 绝对是你的终极选择。

TensorRT-LLM 是什么?

TensorRT-LLM 是 NVIDIA 官方的大模型推理引擎,基于 TensorRT 深度优化:

  • 🚀 比 vLLM 快 20-50%
  • 🎯 极低延迟(首字 <30ms)
  • ⚡ 支持 FP8/INT8 量化
  • 🔄 完整支持张量并行

核心优化技术

1. FP8 量化

FP8(8位浮点)是 H100+ 的独门绝技:

from tensorrt_llm import LLM, SamplingConfig

llm = LLM(
    model="meta-llama/Llama-2-7b-hf",
    precision="fp8",          # FP8 量化
    tensor_parallel_size=2,   # 2卡并行
    max_num_tokens=8192,      # 最大 token 数
)

sampling_params = SamplingConfig(
    temperature=0.8,
    max_tokens=512,
)

2. 张量并行 (Tensor Parallelism)

多卡部署,线性加速:

# 4 卡并行配置
llm = LLM(
    model="meta-llama/Llama-2-70b-hf",
    tensor_parallel_size=4,  # 4张卡
    pipeline_parallel_size=1,
)
模型单卡2卡4卡
LLaMA-2-70B❌ OOM35 tok/s80 tok/s
Qwen-2-72B❌ OOM30 tok/s75 tok/s

3. Inflight Batching

动态批处理,最大化 GPU 利用率:

传统 Static Batching:
[Req1: 128] [Req2: 64] [Req3: 32] → 等待全部完成

Inflight Batching:
[Req1: 128] → 完成 → 加入 Req4
[Req2: 64]          → 完成 → 加入 Req5  
[Req3: 32] → 完成

安装配置

环境要求

  • CUDA 12.1+
  • cuDNN 8.9+
  • TensorRT 9.0+
  • NVIDIA GPU (Ampere 或更新)

安装

# 推荐使用 Docker
docker pull nvcr.io/nvidia/tensorrt:24.03-py3-igpu

# 或 pip 安装
pip install tensorrtllm-backend --extra-index-url https://pypi.nvidia.com

实战:部署 Llama-2-70B

Step 1: 转换模型

# 下载并转换模型
python -m tensorrt_llm._utils \
    --model meta-llama/Llama-2-70b-hf \
    --output_dir ./llama2-70b-trt \
    --quantization fp8 \
    --tensor_parallel 4

Step 2: 启动服务

# 启动 TensorRT-LLM 服务
python -m tensorrt_llm.serving.openai_api_server \
    --model_dir ./llama2-70b-trt \
    --host 0.0.0.0 \
    --port 8000

Step 3: 调用 API

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-2-70b",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 256
  }'

性能对比

框架模型吞吐量首字延迟显存
vLLMLLaMA-2-70B45 tok/s120ms160GB
SGLangLLaMA-2-70B55 tok/s110ms150GB
TensorRT-LLMLLaMA-2-70B80 tok/s35ms140GB

结论:TensorRT-LLM 性能全面领先!


最佳实践

1. 量化选择

量化精度损失性能提升推荐
FP160%1x基线
FP8<1%1.5xH100+
INT8<2%2xA100

2. Batch Size 设置

# 根据延迟要求调整
sampling_params = SamplingConfig(
    max_num_tokens=4096,  # 越大延迟越高,吞吐量越高
    max_batch_size=64,    # 越大并发越高
)

3. Prefix Caching

# 启用前缀缓存
llm = LLM(
    model="...",
    enable_chunked_prefill=False,  # 禁用 chunked 提升缓存命中率
)

适用场景

TensorRT-LLM 最佳场景:

  • 大规模生产部署(100+ QPS)
  • 对延迟极度敏感(<100ms)
  • 全部使用 NVIDIA 硬件
  • 有专业运维团队

不适合场景:

  • 多模型切换需求
  • AMD/Apple Silicon 部署
  • 快速原型验证

总结

TensorRT-LLM 是 NVIDIA 生态的终极性能方案:

  1. FP8 量化:H100+ 独有黑科技
  2. 张量并行:线性扩展多卡性能
  3. Inflight Batching:最大化 GPU 利用率
  4. 专业支持:NVIDIA 官方维护

如果性能是你的首要考量,且全 NVIDIA 硬件,TensorRT-LLM 是不二之选!


下期预告:LMDeploy 量化部署实战