基于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项目文件并且编译生成代码。

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

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

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

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

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

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

./benchmark_app -m  -i  -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分钟里推理了多少图片,平均每张图片所需的时间。

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

这里重点看Latency和Throughput的值

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

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

 

你可能感兴趣的:(OpenVINO)