IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【模型推理】T4 上商汤 OpenPPL vs TensorRT7 vs TensorRT8 测评 -> 正文阅读

[人工智能]【模型推理】T4 上商汤 OpenPPL vs TensorRT7 vs TensorRT8 测评

?? 本文对商汤 OpenPPL 和 英伟达 TensorRT7、TensorRT8 在 T4 平台上对一些经典网络进行了性能测试对比。

?? 商汤 OpenPPL 传送:点击到达OpenPPL

?? 英伟达 TensorRT 传送:点击到达TensorRT

?? 我的测试环境:NVIDIA TESLA T4CUDA11.3Cudnn8.2.1

?? 关于 ppl.nn 的量化说几句,查阅 github 上沟通得到信息:ppl.nn 输入 onnx model 精度为 fp32,执行前会自动进行精度转换,目前在 CUDA 上仅支持 fp16(也只是针对 conv 和 gemm),所以意思是我们在执行 ./pplnn 传参时不需要传精度相关的配置。不过这里有一点比较迷,看 pplnn.cc 源码中对于 ./pplnn 的传参保留有 --quantization,猜测可能用于Int8量化,传送类似 TRT int8 校准表的东西吧。
在这里插入图片描述

1、小试牛刀

?? 拿官方 ppl.nn中的示例 demo 试试(商汤开放了两个框架:ppl.nn 和 ppl.cv,我看了一下 nn 主要用于深度学习模型推理,cv 主要图像预处理)。

?? demo 在 ppl.nn/tests/testdata/conv.onnx,这是只有一个卷积算子的model,如下:
在这里插入图片描述
?? 可以看到 input_data Layout 是(1, 3, 4, 4),用 ppl.nn 对如上的 conv 算子进行一波测试:

./pplnn-build/tools/pplnn --onnx-model ./tests/testdata/conv.onnx --in-shapes 1_3_4_4 --dims 1_3_4_4  --warmuptimes 100 --runningtimes 100

在这里插入图片描述

?? 如上测得 ppl.nn 的推理耗时为:0.0230100 ms

?? 接下来我们测试一波 TRT7.2:

# 将 conv.onnx 转换为 tensorrt engine 
trtexec --onnx=./tests/testdata/conv.onnx --fp16 --saveEngine=trtEngine/conv.engine

在这里插入图片描述
?? 开测:

trtexec --loadEngine=trtEngine/conv.engine

在这里插入图片描述
?? 看下 TRT 的推理时间:0.024178 ms (看样子 ppl.nn 还可以啊)

?? 接下来看看一些经典网络的 PK。


2、测评姿势

?? 以下所有测评的网络均来自 pytorch model zoo,ppl.nn 和 tensorrt 的测试方法如1中介绍。

?? 我转换 onnx 的姿势是:torchvision 加载 pytorch model zoo 中的模型,利用 torch.onnx.export 导出 onnx,这个时候需要注意指定 opset 版本,我测试了 opset 为 11 或12 都可以,不然你在用 ppl.nn 推理的时候可能会遇到下面的报错:
在这里插入图片描述
?? 我的 ppl 的执行姿势是:

pplnn-build/tools/pplnn --onnx-model ./xxx.onnx -–in-shapes 1_3_224_224 --dims 1_3_224_224 --warmuptimes 400 --enable-profiling

?? TRT7 的执行姿势是:

TensorRT-7.2.1.6/bin/trtexec --loadEngine=./xxx_TRT7.engine

?? TRT8 的执行姿势是:

TensorRT-8.0.1.6/bin/trtexec --loadEngine=./xxx_TRT8.engine

3、数据分析

?? 下面给出我测评的具体数据:
在这里插入图片描述

?? 个人分析:

?? (1)从测试数据可以看出,TRT8 应该对 inception 结构的推理进行了优化,对于googlenet 和 inception_v3 的推理性能,TRT8 比 TRT7 提升一倍;

?? (2)TRT8 相对于 TRT7,测试的网络中,除 inception 结构网络外,其他网络算子应该没做更多优化,性能相当;

?? (3)OpenPPL 对于密集连接网络 densenet 进行了更好的优化,densenet的推理性能相比TRT都要更好;

?? (4)除了密集连接网络之外,商汤 OpenPPL 大多网络的性能都落后于 TRT,且不能接受的一点是,对于大 batch 的推理,OpenPPL 贼慢;


? 以上只是我个人的测试数据及分析,若有不妥的地方欢迎指正~



扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:26:17  更:2021-07-24 11:29:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:51:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码