tensorRT还提供了一套可用于engine
生成过程中debug
的工具,包括Polygraphy
、ONNX GraphSurgeon
和PyTorch-Quantization
。这些小工具用处很大,值得花时间进一步研究。
Debug方法示例
polygraphy
Polygraphy是TensorRT官方提供的一系列小工具合集,是一个非常强大的Debug工具。
可以使用Polygraphy检查ONNX或TRT的网络结构,可以debug engine,还可以利用Polygraphy查看ONNX与TRT模型的输出差异等。
例如利用Polygraphy查看ONNX与TRT模型的输出差异
# 使用默认参数
polygraphy run polygraphy_debug.engine --trt
# 加载onnx推理得到的结果,并设置绝对误差
polygraphy run polygraphy_debug.engine --trt --load-outputs onnx_res.json --abs 1e-4
# 使用fp16和cublas策略库生成engine,并与onnx推理得到的结果作比较
polygraphy run net_bs8.onnx --trt --onnxrt