问题出现得很突然,日志倒是留得挺全。TensorRT-LLM 0.14 在 A100 上构建的 engine 拷到 L20 机器,启动报 Engine does not match the current GPU architecture,两边 TensorRT 都是 10.7。
刚开始盯着「目标机缺少对应的插件库」,折腾了半个多小时,排掉了。
真正麻烦的地方在于,几个原因的现象几乎一样。engine 绑定了构建机的 sm80 架构。另一种情况是TensorRT 小版本不同导致序列化不兼容。
还有一种情况,构建与运行的 world_size 不一致。
动手时先确认目标卡的算力等级
python -c "import torch;print(torch.cuda.get_device_capability())"
再往下在目标机上重新构建 engine
trtllm-build --checkpoint_dir ckpt --output_dir engine --gemm_plugin float16
接着对齐 TensorRT 与 TensorRT-LLM 版本
pip install tensorrt-llm==0.14.0
剩下的就是启动后用一条短请求验证输出
python run_engine.py --engine engine --prompt ping
这类问题以前遇到过,但这次的触发条件和上次不一样。
改完先别撤,确认这几项。engine 在目标机上正常加载,短请求能返回结果,日志里不再出现架构不匹配。
engine 是编译产物,和显卡架构、TensorRT 版本都绑定,跨机型部署要在目标环境重新构建,直接拷贝几乎一定会失败。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
