系统环境:
ubuntu20.04
python3.9
cuda11.8 cudnn8.9.7.29
torch==1.13.1+cu117(pip install torch==1.13.1)
1.针对cuda版本查了一下trt支持版本,发现V10和V8版本都支持
本着用新不用旧标准,果断下载了8.6,torch-->onnx-->engine转换过程均没问题,但测试发现engine输出的结果全为nan!
解决:
1.查看了tensorrt的issues,在这一个下发现解决方法Just one element of a batch is correct in TensorRT 8.6.1.6 · Issue #3689 · NVIDIA/TensorRT · GitHub
即,trt版本高了,不能用8.6,应该是某些算子不支持,V8.5或者V7可用,果断下载重装,测试输出结果正常。
--------------------------------------------------------------------------------------------
2.如果上面的方法依然是nan,可以选择增加公工作空间:
config = builder.create_builder_config()
config.max_workspace_size = 1 << 30 #大部分教程用1G
修改为:
config = builder.create_builder_config()
config.max_workspace_size = 5 << 30 # 可以选择增加工作空间,如5G