本範例說明,如何採用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
到這裡我們預準備的工作已經完成囉!
使用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
可以看到產生的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
硬體 | 延遲時間 | 推論時間 | 效能 |
CPU | 36.13 ms | 110.44 FPS | 1 |
GPU | 34.38 ms | 118.98 FPS | 1.08 |
HDDL | 69.40 ms | 444.85 FPS | 4.03 |
可以看到使用HDDL 推論的效能比CPU 要快上四倍!
註: GPU 是Intel® HD Graphics 530 ,如果應用場景不需即時的推論,也可以考慮就用intel core 系列的CPU,內含的graphics chip 也可以用來推論,不須再另外買graphics card。
使用mobilenet-ssd 的模型118.98 FPS 也是很快的了!
實際辨識圖片 -- 黃框框辨識為車子
評論