当前位置:网站首页>Pytorch GPU模型推理时间探讨
Pytorch GPU模型推理时间探讨
2022-08-10 16:37:00 【pip install USART】
前言
最近对pytorch的模型推理(inference)时间产生了兴趣,于是想着写一个小程序来观察一下现象。遂以此文记之。
实验配置
主要思路:
- 创建多个不同规格的模型,每个模型只有一个简单的卷积层。
- 以卷积的各种不同参数作为模型的区别。
- 以随机数来生成一批数据,用***[B,C,W,H]***来表示。
- 每个模型进行100次推理,分10批次完成,记录这10批次的时间和平均时间。
硬件配置
影响一个模型的推理速度的硬件应该主要就是这些了,还有一个带宽问题。
显卡:RTX 2080ti
内存:16G 2666MHz
CPU:Intel i5-9400F
系统:win10
主板:忘了
实验结果
具体的网络规格这里就略去了,都是随便举的例子,没啥信息量。直接看结果吧。
如上图所示,其中的序号表示模型序号,可以得到几个现象:
1.每个模型的每轮10次推理中,第一轮总是相对来说很慢的
2.这些模型的平均推理时间相差不大,也就是还没达到显卡的算力门槛。
3.平均推理时间相差不大的情况下,to_GPU_cost的区别较大。
解释与猜想
理论上每次推理时间应该是一样的,但就表格数据来看,1-9次的区别有些也很大。
这一现象可能是由于计时方法产生的,所用计时方法是time库的perf_counter方法,该方法是由CPU来执行的,而显卡计算后通知CPU,这之间还有通信差距。
每次的第一轮推理都很慢可能是因为GPU第一次做推理需要进行模型参数的初始化。
中间还有一个小插曲,一开始我是在一个py程序里多次调用testModel这个方法,不同的模型作为参数传递进去,但是发现只有第一次调用时(也就是第一个模型的第一轮10次推理)才会用那么多时间,于是我改了一下代码,将模型参数作为main的参数,重写了一个bat(windows的批处理文件)来依次执行多个模型。
暂时先记录到这里,目前已经有了初步的认识,等后续再进一步研究研究
边栏推荐
- 雷达人体存在感应器,人体感知控制应用,为客户提供真实的感知方案
- Yi Gene|In-depth review: epigenetic regulation of m6A RNA methylation in brain development and disease
- 电力系统潮流计算与PowerWorld仿真(牛顿拉夫逊法和高斯赛德尔法)(Matlab实现)
- Qt 绘图和绘图设备
- v-if指令:操作dom元素(标签)的显示与隐藏
- 神经网络的图像识别技术,神经网络识别图像原理
- 【QT VS项目名称修改】
- C专家编程 第10章 再论指针 10.4 向函数传递一个一维数组
- v-show指令:切换元素的显示与隐藏
- 自助服务知识库是什么?
猜你喜欢
随机推荐
v-if指令:操作dom元素(标签)的显示与隐藏
神经网络有哪些激活函数,卷积神经网络有哪些
leetcode:1137. 第 N 个泰波那契数
1001 A+B Format(字符串处理)
Bitwarden:免费、开源的密码管理服务
How to realize full backup and incremental backup of MySQL database
ahx文件转mav文件 工具分享及说明
聊聊云原生数据平台
PNG如何变gif?教你一招png秒变gif动图的方法
MySQL数据库命令
视频转gif怎样操作?1分钟在线视频转gif制作
shell之正则表达式及三剑客awk命令
【科研】常见火灾数据集
C专家编程 第10章 再论指针 10.5 使用指针向函数传递一个多维数组
How to generate code using the Swift Package plugin
cmake record
易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
LeetCode-1. Two Sum
网页分析和一些基础题目
C专家编程 第10章 再论指针 10.3 在锯齿状数组上使用指针









![PC软件问题二[Win10系统将UltraEdit添加到右键菜单的方法]](/img/4f/f3856e135302bcf5902bf987b7ed4d.png)