构建引擎时报错,提示目标显卡的 sm 版本不在支持列表内,或编译时间超长后失败。
一开始怀疑是「显存不足以完成构建」,查了一圈,方向不对。
真正麻烦的地方在于,几个原因的现象几乎一样。显卡架构过旧,不被当前版本支持。少数情况下是编译时的目标架构与实际显卡不一致。
还有一种情况,依赖的 TensorRT 版本不匹配。
上来先确认显卡算力与版本要求
nvidia-smi --query-gpu=name,compute_cap --format=csv
接着按实际架构指定构建目标
trtllm-build --checkpoint_dir ./ckpt --output_dir ./engine --gemm_plugin float16
显存不足时降低最大批大小
trtllm-build --checkpoint_dir ./ckpt --output_dir ./engine --max_batch_size 4
剩下的就是用最小配置验证构建链路
python -c "print('build smoke test')")
同一份数据我导出了两份,一份留底,一份拿来试。
别只看报错消失,验证要多做一步。引擎构建成功并能加载推理,吞吐相比原生实现明显提升。
构建非常耗时且吃内存,先在最小配置上验证链路通不通,再上完整参数,避免几个小时白跑。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。