trt多流、多batch、多context

news2024/10/3 0:28:07

(1)一个engine可以创建多个context,一个engine可以有多个执行上下文,允许一组权值用于多个重叠推理任务。例如,可以使用一个引擎和一个上下文在并行CUDA流中处理图像。每个上下文将在与引擎相同的GPU上创建。

(2)engine:引擎。不能跨平台和TensorRT版本移植。若要存储,需要将引擎转化为一种格式,即序列化,若要推理,需要反序列化引擎。引擎用于保存网络定义和模型参数。在特定 config 与硬件上编译出来的计算引擎,且只能应用于特定的 config 与硬件上,支持持久化到本地以便进行发布或者节约下次使用的编译时间。engine 集成了模型结构、模型参数与最优计算 kernel 配置。同时 engine 与硬件和 TensorRT 版本强绑定,所以要求 engine 的编译与执行的硬件与 TensorRT 版本要保持一致。

(3)context:上下文。创建一些空间来存储中间值。一个engine可以创建多个context,分别执行多个推理任务。进行 inference 的实际对象,由 engine 创建,与 engine 是一对多的关系。

(4)看到官网上说
In general TensorRT objects are not thread-safe. The expected runtime concurrency model is that different threads will operate on different execution contexts. The context contains the state of the network (activation values etc) during execution, so using a context concurrently in different threads results in undefined behavior.
同时进行多个模型的并行推理,使用多个engine进行推理,是不是不安全?

在不同的线程上使用相同的execution context:错误,文档说这样导致undefined behavior
在不同的线程上使用相同engine的不同的execution context:正确
在不同的线程上使用不同的engine:正确

并行推理的做法:

就是参照(8)和(9)的做法:就是多个cuda流  并行memcpy和inference以及后处理。一个batch多张图,然后每个流负责一个batch这样。网上说是重叠了推理和memcpy的时间,

 

参考:

(1)https://www.jb51.net/article/221422.htm

(2)https://paddle-inference.readthedocs.io/en/master/api_reference/cxx_api_doc/Config/GPUConfig.html这里有多线程的写法

(3) 极智AI | 谈谈 GPU 并行推理的几个方式 - 掘金

(4)关于TensorRT和TF-TRT的一些事儿 | Bella's Blog

(5)tensorRT(一)| tensorRT如何进行推理加速?(建议收藏) - AI大道理 - 博客园 

(6)多模型并发 · Issue #5 · NVIDIA/trt-samples-for-hackathon-cn · GitHub 

(7)C/C++ TensorRT引擎多线程推理多个rtsp流并显示或保存_highoooo的博客-CSDN博客_tensorrt 多线程 

(8)极智AI | 谈谈 GPU 并行推理的几个方式 - 知乎

(9)CUDA多个流的使用_-牧野-的博客-CSDN博客_cuda多流 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨境电商市场也“内卷”,出海卖家如何破圈?

近些年来,跨境电商从业者都在调侃本行业越来越“卷”,大家需要铆足了劲竞争更有利的资源,以往的流量红利期似乎一去不复返了。事实上,很多跨境电商卖家对这种局势并不陌生,一些人甚至经历了国内电商从流量红利期至流量…

复习计算机网络——第三章记录(1)

数据链路层 功能:通过一些数据链路层的协议,在不太可靠的物理链路上实现可靠的数据传输。 相关基本概念: 1、结点(node):网络中的主机(host)和路由器(router&#xff…

JS实现简易计算器(input表单)

实现效果: 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"></head><body><p>整数1:<input type"text" id"num1"></p><p>整数2:<input type"text&q…

Kamiya丨Kamiya艾美捷抗BCMA单抗,克隆Vicky-2说明书

Kamiya艾美捷抗BCMA单抗化学性质&#xff1a; 同义词&#xff1a;B细胞成熟蛋白&#xff0c;TNFRSF 17&#xff0c;CD269。 特异性&#xff1a;识别鼠标BCMA。 物种反应性&#xff1a;老鼠不与人BCMA发生交叉反应。其他物种未经测试。 Ig同种型&#xff1a;大鼠IgG2a 免疫…

4×30m钢筋混凝土简支T梁桥结构设计与计算

目 录 1设计资料 1 1.1桥面净宽 1 1.2设计荷载 1 1.3主梁跨径和全长 1 1.4材料 1 1.5设计依据 1 1.6参考资料 1 2任务与要求 2 2.1结构尺寸拟定 2 2.2行车道板计算 2 2.3主梁计算 2 2.4横梁的计算 2 3结构尺寸拟定 3 4行车道板计算 4 4.1永久荷载及其效应 4 4.2截面设计、配筋与…

机器视觉计算(一)

本文主要记录像素尺寸映射到实际物理尺寸的计算&#xff0c;并给出一些参考文献。 分辨率 视野(Field of View)/像素(Pixel) 比如我要看的产品大小是30mm*10MM&#xff0c;使用200万像素&#xff08;1600pixel*1200pixel&#xff09;的相机。因为产品是长条形&#xff0c;为了…

[附源码]Python计算机毕业设计SSM酒店客户管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

read-after-write consistency 写后读一致性的解决方法

问题定义 写后读一致即写完数据之后马上读&#xff0c;直接能读到新的数据&#xff0c;而不是老的数据。 导致这个问题主要是数据库之间的同步延时。这里只讨论一主多从的情况。 如下图&#xff1a; 用户添加新评论用户刷新&#xff0c;读请求到从节点1&#xff0c;此时从节…

【Matplotlib绘制图像大全】(十三):甜甜圈饼图

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

Vue2.0开发之——Vue基础用法-vue-cli(30)

一 概述 vue-cli—介绍并安装vue-clivue-cli—基于vue-cli创建vue项目vue-cli—项目预览效果vue-cli—项目目录结构vue-cli—vue项目运行过程vue-cli—组件的基本使用 二 vue-cli—介绍并安装vue-cli 2.1 什么是单页面应用程序 单页面应用程序&#xff08;英文名&#xff1a…

C语言刷题系列——6.(递归)实现顺序输出整数

递归实现顺序输出整数 ❄️一) 题目要求☃️1.函数接口定义&#xff1a;☃️2.裁判测试程序样例&#xff1a;❄️二) 非递归 解法☃️step1.统计位数☃️step2.循环&#xff0c;打印每一位☃️step3.实现❄️三) 递归 解法☃️step1.分析☃️step2.图解流程☃️step3.实现)❄️…

举个栗子~Tableau 技巧(245):用辅助标识快速查看标靶图

我们经常会使用 标靶图&#xff08;靶心图&#xff09;来参照目标评估指标的表现。例如&#xff1a;销售配额评估、实际花费与预算的比较情况、绩效优劣范围&#xff08; 优/良/差&#xff09;等等。 指标不多的情况&#xff0c;标靶图其实是较直观的。但如果指标很多&#xf…

面试官:请问如何提升TCP三次握手的性能?

本文主要分享在 Linux 操作系统下&#xff0c;如何优化 TCP 的三次握手流程&#xff0c;提升握手速度。 TCP 是一个可以双向传输的全双工协议&#xff0c;所以需要经过三次握手才能建立连接。三次握手在一个 HTTP 请求中的平均时间占比在 10% 以上&#xff0c;在网络状况不佳、…

请问财务管理的作用有哪些?

财务管理作为企业管理的一个重要组成部分&#xff0c;如何在当前企业经营方式转变过程中发挥出更大的作用&#xff0c;如何进一步促进财务管理理论和方法的改革与发展&#xff0c;从而使财务管理更具有适应性和有效性&#xff0c;是企业管理理论与实务工作者一个共同关心的话题…

常用数据结构 ——— 队列(环形队列和顺序队列)

目录 一、队列简介 二、顺序队列 三、环形队列 四、环形队列代码 1、队列结构体 2、队列初始化 3、判断队列是否为满 4、判断队列是否为空 5、将数据插入到队列中 6、读取队列中的数据 7、释放队列空间 8、功能测试 一、队列简介 队列只允许在队列头&#xff08;fr…

_Linux(共享内存)

文章目录0. 共享内存1. 共享内存示意图2. 共享内存函数2.1 shmget函数2.2 shmat函数2.3 shmdt函数2.4 shmctl函数2.5 查看共享内存指令2.6 删除共享方法2.6.1 指令删除2.6.2 代码删除3. 实例代码3.0 log.hpp打印日志信息3.1 comm.hpp(shmServer.cc和shmClicent.cc共有文件)3.2 …

Java 17的这些新特性,Java迈入新时代

前言 2021年9月14日Java 17发布&#xff0c;作为新时代的农民工&#xff0c;有必要了解一下都有哪些新东西。 Java 17是Java 11以来又一个LTS&#xff08;长期支持&#xff09;版本&#xff0c;Java 11 和Java 17之间发生了那些变化可以在OpenJDK官网找到JEP&#xff08;Java…

Unity中用Natrue Renderer做自己的地形Terrain.

效果图 一、下载与导入Nature Renderer Nature Renrderer是个强大的插件&#xff0c;它本身就可以作为地形编辑的工具取代Unity的地形细节和树木的渲染系统。 nature-renderer官网 1.下载链接 推荐&#xff08;已经购买的许可证&#xff0c;可直接使用&#xff09;&#xf…

设计原则和设计模式01

一&#xff1a;软件设计原则 1.单一职责原则&#xff1a; 有且只有一个原因引起类的变化(类或者接口的职责单一化) 2.里氏替换原则&#xff1a; 子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则&#xff1a; 1.高层模块不应该依赖于底层模块&#xff0c…

Java注解

Java注解&#xff08;Annotation&#xff09; Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。 注解也叫元数据&#xff0c;一种代码级别的说明&#xff0c;说明程序的是给计算机看的&#xff0c;与类&#xff0c;接口…