You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写trtexec命令编译支持动态输入形状的TensorRT引擎?

编译支持动态形状的TensorRT引擎正确命令

要让TensorRT引擎支持动态输入形状,仅使用--shapes参数无法生效,必须明确指定输入形状的最小值、最优值、最大值三个范围——TensorRT需要这三个参数完成跨不同形状的优化逻辑。

针对你的场景(批量大小固定为1,token数量动态变化),可使用如下命令:

trtexec \
--onnx=model.onnx \
--minShapes=input_ids:1x1,attention_mask:1x1 \
--optShapes=input_ids:1x128,attention_mask:1x128 \
--maxShapes=input_ids:1x512,attention_mask:1x512 \
--saveEngine=model.plan

参数说明:

  • --minShapes:输入允许的最小形状,这里设置为单token场景(对应日志默认的1x1)
  • --optShapes:引擎优化时针对的核心形状,建议设为业务中最常用的token数量(示例为128)
  • --maxShapes:输入允许的最大形状,设为业务场景中可能出现的最大token数(示例为512)

编译完成后,推理阶段即可输入1xN(N介于1到512之间)的input_ids和attention_mask数据,引擎会正常处理动态形状输入。

注意事项:

  • 三个参数中每个输入的维度数量必须与ONNX模型定义一致,动态维度的位置要统一
  • 最优形状(--optShapes)的选择会影响引擎的推理性能,建议贴近实际业务的主流输入尺寸

内容的提问来源于stack exchange,提问作者happygrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:42:37