使用Intel OpenVINO 與 HDDL-R 深度學習加速卡加速Mobilenet-ssd 模型推論

本範例說明,如何採用Intel OpenVINO tookit 軟體開發套件與HDDL-R 加速卡。範例中,使用已預訓練好的Mobilenet-ssd 模型,比較使用CPU,GPU推論與HDDL-R 加速卡推論效能的差異。這提供,當我們需要一個推論平台時,如何選擇最佳的硬體配置。

硬體與操作系統配置

  • 6th Gen. Intel®Core™ i7-6700TE (3.4GHz, Quad Core)
  • HDDL-R: Mustang-V100-MX8 (Intel® Vision Accelerator Design with Intel® Movidius™ VPU)

Ref: https://www.ieiworld.com/mustang-v100/en/

  • OS: Ubuntu 16.04
  • Intel®Distribution of OpenVINO™ toolkit : Ver. 2019.2.275 

Ref: https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html

註: Intel® Distribution of OpenVINO™ toolkit是免費的套件。可最佳化深度學習模型並提供推論引擎API,將深度模型佈署於CPU、GPU、FPGA、VPU等硬體,提供最佳的工作負載。

 

預準備

 
    編譯範例程式與安裝相關套件 

安裝完Intel distribution of OpenVino toolkit後,可以跑OpenVino toolkit裡面的demo scripts

 cd /opt/intel/openvino/deployment_tools/demo

./demo_squeezenet_download_convert_run.sh

./demo_security_barrier_camera.sh

 
跑完這兩個範例後就會在home directory內產生兩個目錄一個inference Engine sample build另一個是inference engine demos build。並會安裝相關的Python套件.分別在這兩個目錄裡編譯範例應用程式 。


sudo chown -R username.username $HOME/inference_engine_samples_build

cd $HOME/inference_engine_samples_build

make

 

sudo chown -R username.username $HOME/inference_engine_demos_build

cd $HOME/inference_engine_demos_build

make

註: username.username 記得改為您電腦的account name.

 

編譯完後我們會使用inference_engine_samples_build 裡的benchmark_app 來測試硬體推論的效能。



      下載mobilenet-ssd訓練模型


cd /opt/intel/openvino/deployment_tools/tools/model_downloader   

python3 -mpip install --user -r ./requirements.in

sudo python3 downloader.py --name mobilenet-ssd


Download Model

  

到這裡我們預準備的工作已經完成囉!

 

使用Model Optimizer(MO) 最佳化Mobilenet-SSD 模型

     建一個存放IR檔的目錄

cd ~

mkdir -p mobilenet-ssd/FP16


    切換目錄到model_optimizer

cd /opt/intel/openvino/deployment_tools/model_optimizer

    執行mo_caffe.py 最佳化Mobilenet-SSD 模型

python3 mo_caffe.py --input_model /opt/intel/openvino/deployment_tools/tools/model_downloader/object_detection/common/mobilenet-ssd/caffe/mobilenet-ssd.caffemodel -o ~/mobilenet-ssd/FP16 --scale 256 --mean_values [127,127,127]  --data_type FP16



    切換目錄到IR檔目錄及list 目錄內容

cd ~/mobilenet-ssd/FP16

ls -al

IR files

可以看到產生的mobilenet-ssd.bin 與 mobilenet-ssd.xml 兩個IR 檔。


最佳化模型的IR檔產生後,接下來我們使用inference_engine_samples_build 裡的benchmark_app 來測試硬體推論的效能。

使用Mobilenet-SSD 模型與Inference Engine 的benchmark_app 程式

    設定環境變數

source /opt/intel/openvino/bin/setupvars.sh


現在我們來測試看看各個硬體的效能吧!


    使用demo 目錄下的圖檔

cp  /opt/intel/openvino/deployment_tools/demo/car_1.bmp ~

大功告成! 我們來看一下這模型在不同硬體下的效能吧!


    切換目錄到inference_engine_samples_build/intel64/Release

cd ~/inference_engine_samples_build/intel64/Release

CPU

./benchmark_app -i ~/car_1.bmp -m ~/mobilenet-ssd/FP16/mobilenet-ssd.xml -d CPU 



要換GPU 只要改個參數就好了! Intel OpenVino 以幫忙針對不同硬體做好最佳化的程式庫。很棒吧~

GPU

./benchmark_app -i ~/car_1.bmp -m ~/mobilenet-ssd/FP16/mobilenet-ssd.xml -d GPU




換成HDDL 一樣改參數就好。

HDDL

./benchmark_app -i ~/car_1.bmp -m ~/mobilenet-ssd/FP16/mobilenet-ssd.xml -d HDDL



硬體延遲時間推論時間效能
CPU36.13 ms110.44 FPS1
GPU34.38 ms118.98 FPS1.08
HDDL69.40 ms444.85 FPS4.03

可以看到使用HDDL 推論的效能比CPU 要快上四倍!

註: GPU 是Intel® HD Graphics 530 ,如果應用場景不需即時的推論,也可以考慮就用intel core 系列的CPU,內含的graphics chip 也可以用來推論,不須再另外買graphics card。
使用mobilenet-ssd 的模型118.98 FPS 也是很快的了!


實際辨識圖片 -- 黃框框辨識為車子

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論