在之前实现了torch转tensorRT加速后,发现推理速度确实大幅加快了,加速效果见
【torch-onnx-tensorRT加速】torch转tensorRT后加速效果
以及使用onnx实现tensorRT速度的方式:
torch转onnx模型加速,onnx模型推理直接达到tensorRT速度,省去onnx转tensorRT的流程
问题
但是,发现在使用深度学习模型基于GPU进行推理过程时,前几个批次格外的慢,正常跑起来后每次循环只要50ms,但第一个批次的时间要好几秒,后续速度逐渐加快,平稳后达到50ms每批次。
所以严重影响了整体的平均速度,通过搜索发现应该是由于GPU或CUDA需要预热,比如一些显存的开辟、数据交换等,解决方法就是在开始正式推理前,先让推理模型运行几次,以python为例
import torch
input = torch.randn((batch, x, y, z), device='cuda')
for _ in range(n_warm):
out = inference_model(input)
使用循环进行模型预热后的验证效果
待更新
参考:
https://blog.youkuaiyun.com/z240626191s/article/details/126291864
https://blog.youkuaiyun.com/qq_40231159/article/details/120901785