使用TensorRT集成推理inference

news/2025/3/27 10:34:07/

使用TensorRT集成推理inference

使用TensorRT集成进行推理测试。

使用ResNet50模型对每个GPU进行推理,并对其它模型进行性能比较,最后与其它服务器进行比较测试。

  1. ResNet-50 Inference
    performance: Throughput vs Batch size

在每个GPU上使用不同的批处理大小(从1到32)运行带有预训练的ResNet50模型的吞吐量测试。

图1显示了吞吐量(帧/秒)的结果。

结果在gpu和潜伏期(在右纵轴上表示)上是一致的。

在这里插入图片描述

Figure 1. Resnet_50 Inference on each GPU. Server with 6 GPU’s

上面的曲线图显示,使用Batchsize为1-8的批处理可以达到7ms的延迟,并且从y轴来看,当Batchsize为4时,在7ms延迟窗口内我们可以得到670个帧/秒。

在运行测试时,我们发现默认情况下推理inference是在设备0上进行的,这意味着当前的TensorRT™ 推理引擎不能与GPU-GPU通信一起工作以最大限度地利用服务器中可用的GPU。如果目标是在多个GPU中运行同一个图形来提高吞吐量,Nvidia建议现在使用原生TensorFlow。

另一方面,TensorRT推理服务器(TRTIS)支持多个GPU,但不支持运行分布在多个GPU上的单个推理。TRTIS可以在多个GPU上运行多个模型(和/或同一模型的多个实例)以提高吞吐量。

2.All Models:
Images/sec vs batch size vs Neural models

在这里插入图片描述

Figure 2. Throughput Inference Performance with Several Neural Models and Batch Sizes

使用不同的神经模型在不同的Batchsize中进行推理测试。

以Batchsize大小1、2、4、8、26和32显示运行推理inference的吞吐量和延迟。ResNet50以最低的延迟产生最高的吞吐量(图像/秒)。

在这里插入图片描述

Figure 3. Latency Inference Performance
with Several Neural Models and Batch Sizes
在这里插入图片描述

3 All Models - R7425-T4-16GB versus Other servers and NVIDIA GPU

在这里插入图片描述

Figure 4. Throughput Inference Performance on R7425-T4-16GB Server versus Other Servers

在这里插入图片描述

Figure 5. Latency Inference performance on
R7425-T4-16GB Server versus other servers

使用几种模型在服务器R740-P4和R7245-P4上进行了推理测试,并将它们的结果与R7425-T4-16GB的结果进行了比较。服务器R7425-T4-16GB的性能比ResNet50型号上的其它服务器快1.8倍,延迟只有一半。


http://www.ppmy.cn/news/611413.html

相关文章

Java this 关键字使用

this 引用就是本类的一个对象 理解这句话看下面一段代码 package me; public class Me {String name; //成员变量int age;public Me(String name, int age) { //这里name和age 是构造方法里面的局部变量this.name name; // 把构造方法里面的局部变量赋值给 成员变量 this.a…

Jmeter连接数据库并进行操作

一:加一个JDBC组件 二、填写连接信息: 三:添加JDBC请求 四、填写sql并运行

《OpenCV3编程入门》学习笔记5 Core组件进阶(四)图像对比度、亮度值调整

第5章 Core组件进阶 5.4 图像对比度、亮度值调整 5.4.1 理论依据 1.算子:一般图像处理算子都是一个函数,接受一个或多个输入图像,并产生输出图像 2.算子一般形式: 3.点操作(point operators)&#xff1a…

npm修改淘宝原

//修改之前查看一下npm config get registry https://registry.npmjs.org/ //设置源npm config set registry https://registry.npm.taobao.org //确认npm config get registry 转载于:https://www.cnblogs.com/huochaihe/p/10562132.html

用户自定义协议client/server代码示例

用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc client.cc 关于user_defined_protocol 本示例设计一个简单的通信协议,并在协议上构建server和client。server将client发送…

Java 静态变量,静态方法,静态常量(java static 关键字)

Java 静态变量,静态方法,静态常量 就是变量 ,方法,常量前面添加了static 关键字 为什么要使用静态的呢 有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main 类中用到一个 NAME常量 而 有一个Book类中也用到了NAME常量,这时就没有必要在2个类中都…

《OpenCV3编程入门》学习笔记5 Core组件进阶(五)离散傅里叶变换(DFT)

第5章 Core组件进阶 5.5 离散傅里叶变换(Discrete Fourier Transform,DFT) 5.5.1 离散傅里叶变换原理 1.对一张图像使用傅里叶变换就是把它分解成正弦和余弦,将图像从空间域(spatial domain)转换到频域&…

sklearn.model_selection.train_test_split随机划分训练集和测试集

1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test cross_validation.train_test_split(train_data,train_target,test_size0.4, random…