ChatTTS 显存占用分析——为什么至少要 4 GB VRAM
官方测试结论
ChatTTS 作者在 GitHub FAQ 里给出了一个关键数据:生成 30 秒音频至少需要 4 GB GPU 显存。
显存占用拆解
虽然 ChatTTS 只有 ~300M 参数,但推理时显存不只是加载模型权重:
| 成分 | 大致占用 |
|---|---|
| 模型权重 | ~1.2 GB(FP32 精度) |
| tokenizer + config | < 50 MB |
| 推理中间缓存 | 1~2 GB(取决于生成长度) |
| PyTorch runtime + CUDA context | ~0.5 GB |
| 预留安全余量 | ~1 GB |
| 合计 | ~4 GB |
显存不足怎么办
| 现象 | 原因 | 解决方案 |
|---|---|---|
CUDA out of memory 报错 | 总显存不够 | 换 CPU 模式或更高显存 GPU |
| 批量推理时 OOM | 多条文本同时推理占用更多缓存 | 减小批量大小 |
| 首次加载 OOM | 模型权重 + CUDA context 占满 | 清理其他显存占用(关闭浏览器等) |
CPU 降级方案
chat.load(compile=False, device='cpu')
速度慢 5~10 倍但能跑通。适合测试验证。
低显存 GPU 技巧
如果显存只有 3~4 GB:
- 单条推理(不要批量)
- 减少输入长度(单条文本不要太长)
- 清理显存:推理前
torch.cuda.empty_cache() - 避免同时开其他 GPU 程序(浏览器、IDE 等)
推荐显卡选型
| 显卡 | 显存 | 适合场景 |
|---|---|---|
| RTX 3060(12GB) | 12 GB | 主力生产卡,性价比高 |
| RTX 4090(24GB) | 24 GB | 追求速度和大规模批量推理 |
| RTX 4070(12GB) | 12 GB | 消费级首选 |
| GTX 1660(6GB) | 6 GB | 勉强能跑,批量要小心 |
| 集成显卡 | 共享内存 | 只能 CPU 模式 |