DEBUG.WIKI
V.PS:让项目靠近用户,亚太、欧洲、北美 KVM VPS
IPPeak:从目标地区访问网页,住宅代理、SEO 监测、广告验证
ZgoCloud:多地区部署,按需选节点;日本、美国、香港、德国

Triton 24.06 iGPU 加载 TensorRT 引擎报 236/237 版本不一致,怎么处理?

Triton 24.06 iGPU 的历史兼容问题要求用 TensorRT 24.04 iGPU 容器重建引擎。核对构建和运行镜像,保留原产物,并验证加载、数值及动态输入边界。

Triton 24.06 iGPU 加载 TensorRT 引擎报 236/237 版本不一致,怎么处理?

如果使用的是 Triton 24.06 iGPU 容器,模型又由 TensorRT 24.06 iGPU 容器构建,下面这段日志对应一个已记录的历史兼容问题:

Current Version: 236, Serialized Engine Version: 237

完整日志通常还包含 Version tag does not match。NVIDIA 的 24.06 发布说明给出的处理方式,是用 TensorRT 24.04 iGPU 容器重新构建引擎,再交给 Triton 24.06 iGPU 容器运行。官方发布说明的 Known Issues

这个方案只针对上述历史组合。碰到其他版本、其他硬件或不同的序列化版本号,要重新核对对应发布说明,不能一律降到 24.04。

先确认正在运行的镜像

排查时同时记录构建端和运行端。镜像名称中的年月相同,容易让人漏掉这里的兼容问题。

已有容器可用下面的只读命令检查,把名称换成实际容器名:

docker inspect --format '{{.Config.Image}} {{.Image}}' triton-container

还要从构建日志或流水线中找出 TensorRT 构建镜像的 tag 与 digest,确认使用的是 iGPU 变体。不要仅凭本机 pip show tensorrt 判断容器内构建了什么。

如果信息对不上,先查清引擎由哪个环境生成,再决定是否采用这条工作方案。

重建时保留原始模型和原引擎

按官方建议切换构建环境后,从原始模型重新生成一个单独的引擎文件。保持输入输出定义、精度及动态形状配置可追溯,避免同时改动几项设置后难以比较。

不要覆盖唯一的原引擎,也不要编辑 plan 文件头部把版本数字改成 236。官方方案要求重建,没有提供修改序列化头部的转换步骤。

新引擎先放到测试模型仓库中加载。检查这三件事:

  • 反序列化阶段不再出现相同的版本错误,模型状态变为 READY
  • 使用固定输入时,输出形状正确,数值误差符合项目已有标准
  • 实际需要的 batch 和输入尺寸能够执行,包括动态形状的边界

READY 只能说明模型已加载,后两项仍需单独验收。通过后再替换生产产物,并保存构建镜像、运行镜像和新引擎的哈希,方便回退与复现。