基于openvino的推理性能优化的学习与分析 (一) 官方参考源码benchmark_app的编译运行

很久以前就看了这么一篇文章 "使用英特尔®GPU的性能调优达到153帧MobileNet-SSD目标检测", 作者是在Intel CPU的集成显卡上实现的。一直想亲手实践一下,无奈这些年患了很严重的拖延症和懒癌。最近病情有所好转,索性努力研究一下。

 

首先安装VS2017, 接着从官网下载安装最新的openvino版本2019 R3. 按照官网的Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10教程安装下载必须的依赖库和Model zoo的各种模型文件。

安装好之后就可以编译openvino自带的sample例程了。

OpenVINO很贴心的提供了一个batch文件(如下图所示),在文件管理器里双击运行该bat文件,可以根据当前系统安装的VS2015/VS2017/VS2019的版本自动生成对应的VC项目文件并且编译生成代码。

生成的项目文件Samples.sln在Documents\Intel\OpenVINO\inference_engine_samples_build目录下。

其中benchmark_app项目就是官方提供的测试OpenVINO推理性能的参考项目。可以通过学习官方代码了解如何最大程度的挖掘硬件性能,获得更高的推理能力

benchmark的用法可以参考官网 Benchmark C++ Tool的说明,如果要测CPU的性能,最简单的命令就是

./benchmark_app -m <model> -i <input> -d CPU

-m 后面带模型的文件名, -i 后面跟一个目录名,目录里放一些需要推理的图片

我这里用mobilenet-ssd来测试。

benchmark_app.exe -m c:\temp\cvt_model\mobilenet-ssd-fp32\mobilenet-ssd.xml -i c:\temp\ssd_img

测试程序会默认自动跑一分钟模型推理,统计1分钟里推理了多少图片,平均每张图片所需的时间。

这里重点看Latency和Throughput的值

Latency指平均推理一张图片所需的时间。Throughput指每秒钟可以同时推理多少张图片。

在实际场景中,如果我们想用最快的速度来推理一张图片得到推理结果的话,需要将Latency尽可能的变小;如果我们想充分挖掘硬件的潜力,在单位时间里尽可能多的处理数据的话,需要将Throughput尽可能的变大。这2个参数指标通常是互相对立的,如果要Lantency变小,就需要将所有的硬件资源集中起来做一件事;如果要Throughput变大,就需要将所有的硬件资源都最大限度的调动起来做事,不让每一块电路空闲下来,这也就意味着同时跑很多件事,但是每件事的处理时间会变长。

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值