在一个 GPU 上加载 TRT 引擎以进行两次推理的最佳方法是啥?

Posted

技术标签:

【中文标题】在一个 GPU 上加载 TRT 引擎以进行两次推理的最佳方法是啥?【英文标题】:What is the best way to load TRT engine for two inference on one GPU?在一个 GPU 上加载 TRT 引擎以进行两次推理的最佳方法是什么? 【发布时间】:2020-06-28 06:49:09 【问题描述】:

我用的是TRT6.0.1.5和2080Ti GPU,想加载一个引擎文件

由于我有两个摄像头进行实时检测,以下是我尝试过的

    加载一次引擎并使用相同的反序列化引擎来检测 它最终会崩溃

    将引擎分别加载到两个变量 第一个摄像头运行正常,也能正常检测物体 但是第二个摄像头什么也没检测到,但它没有崩溃。

如何正确加载一个引擎文件并在一台机器上单独运行推理? 或者可能创建不同的执行上下文?

【问题讨论】:

【参考方案1】:

您需要在两个单独的视频流上运行检测,对吗? 如果我是你,我只会在你序列化为 TensorRT 时更改网络上的批量大小,在本例中为两个。 然后在运行两个流时,您只能使用一个具有不同批量大小的网络。比如:

tContext->execute(batch_size, inference_buff.data())

您的inference_buff 将包含两个图像流的数据。

【讨论】:

以上是关于在一个 GPU 上加载 TRT 引擎以进行两次推理的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

模型推理ubuntu 配置和使用 torch2trt

移动端 GPU 推理性能提升 2 倍!TensorFlow 推出新 OpenCL 后端

MNN 2.0 发布——移动端推理引擎到通用深度学习引擎

技术分享 | 浅谈TensorRT

使用 Keras 在 GPU 上进行推理

无法使用 Python 在 GPU (Jetson Nano) 上运行 tflite 模型