当前位置:网站首页>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的批处理文件)来依次执行多个模型。
暂时先记录到这里,目前已经有了初步的认识,等后续再进一步研究研究
边栏推荐
- 数据可视化:Metabase
- 推荐几款最好用的MySQL开源客户端,建议收藏!
- Bitwarden:免费、开源的密码管理服务
- 数据库注入提权总结(二)
- Yi Gene|In-depth review: epigenetic regulation of m6A RNA methylation in brain development and disease
- 生成树协议(STP---Spanning Tree Protocol)
- The sword refers to OfferⅡ 045. The bottommost leftmost value of the binary tree dfs
- 烟雾、空气质量、温湿度...自己徒手做个环境检测设备
- 【荣耀智慧服务】快捷服务开发指南
- shell之正则表达式及三剑客awk命令
猜你喜欢
随机推荐
App自动化测试框架设计与实现
一文带你彻底拿下a,b两点间等效电阻
如何搭建知识库,让您的内容更丰富?
取Json中的数组进行遍历
解决mpi4py导入报错ImportError: libmpi.so.40: cannot open shared object file: No such file or directory
电力系统潮流【牛顿-拉夫逊法】(4节点、5节点、6节点、9节点)(Matlab代码实现)
C专家编程 第10章 再论指针 10.3 在锯齿状数组上使用指针
glui.h无法找到描述+解决+测试
MS | 使用小技巧不完全总结
软件工程基础知识--需求分析
I met a 25k+ from Tencent, he let me see what kind of basic ceiling
如何使用Swift Package插件生成代码
网页分析和一些基础题目
为什么某互联网企业开200w年薪大家都支持,但是中金开100w年薪大家都在骂?...
Qt 绘图和绘图设备
【QT VS项目名称修改】
C专家编程 第10章 再论指针 10.5 使用指针向函数传递一个多维数组
docker中安装mysql
本地导入不报错,服务器端报错 No module named xxx
Knox 代理各类组件