OpenVINO on IceLake (番外編)

なんだかスケートをしているようなタイトルの番外編、
いつもはIntelの第10世代CPU IceLakeでOpenVINOを試していますが、今回はMacOSを使用します

前回Dell XPS 13 2in1、搭載されているのは下記のCPU
Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
を使用しました
今回使用するのは、Intel(R) Core(TM) i3-8100B CPU @ 3.60GHz(開発コードはCoffee Lake)搭載のMacMini 2018を使用します

このMacにOpenVINO Toolkit 2020.3をインストールし実行をしますが、なぜMacなのでしょうか?

6/22のWWDCでAppleは今後のMac用CPUにはArmチップを載せることを発表しました(PCWatchの記事
こちらの方向性はAppleの考え方なので別に構わないのですが、OpenVINOがMacOS上でどのような扱いになるのかが気になるところです

と言うことで、現状のMacOSでのOpenVINOの動作をみてみましょう

まずはOpenVINO Toolkitのサポート状況ですが、2020.3現在でHWサポートは下記のようになっています

NOTE: The current version of the Intel® Distribution of OpenVINO™ toolkit for macOS* supports inference on Intel CPUs and Intel® Neural Compute Sticks 2 only.

OpenVINOはMacOS上ではCPUとNCS2のみのサポートとなります
次にCPUのサポート状況を実際に下記のコマンドを実行して検証してみましょう

~/inference_engine_cpp_samples_build/intel64/Release/benchmark_app -m ~/openvino_models/ir/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -i ./images/ -pc

Performance Counterの結果は下記の通りです

 148 jit_avx2_1x1_FP32
  76 jit_avx2_FP32
  64 jit_avx2_dw_FP32

この結果をみると、第4回のCometlakeで実行した結果を同じになります
それはそれで同じ結果が出るのは優秀だと思いますが、この命令をみると気づく点がありませんか?

そうです、AVX2を使用しています
AVX2を使用していると言うことは当然、Arm上では動作しません
同様にArmを使用しているRaspberryPiでのOpenVINO ToolkitはNCS2のみのサポートでした

恐らくですが、今後OpenVINO ToolkitのMacOSサポートはRaspberryPiのサポート同様、NCS2のみになると思います
IntelのGPUを使用した場合には、ひょっとするとGPUサポートも追加される可能性はありますが、今のところAppleがArm+Intel GPUの組み合わせを行う理由が見つかりません

と言うことで、AppleはIntel CPU搭載のMacを並行して販売するとのことですが、Mac好きの開発者の方は今のうちに確保しておくほうが吉かも…
また最新Macを使用してOpenVINOを開発する方は注意が必要ですね

以上、番外編でした