はじめに
「第 11 世代インテル® Core™ プロセッサーを用いて YOLOv3 のベンチマークを測定してみた!(結果編)」は、準備編の続きとなっています。
準備編については、下記URLリンクよりご確認ください。
https://www.macnica.co.jp/business/semiconductor/articles/intel/137003/
では、さっそく測定方法と結果についてご報告します!
第 11 世代インテル® Core™ プロセッサーを用いた Yolo-v3 のベンチマーク測定の方法と結果
操作手順
インテル® 公式サイトより、インテル® OpenVINO™ ツールキットをダウンロードし、インストールします。
インストールに際して、私は以下リンクを参考にしました。この記事を作成した先輩方ありがとう。と思いながら楽をさせて頂きました!
Mustang-F100 (インテル® Arria® 10 FPGA 搭載カード) で OpenVINO™ を実行する方法
インストールが正しく動作しているか以下のコマンドを実行することで確認可能です!
下図のような車の画像が識別できたら、正しくインテル® OpenVINO™ ツールキットがインストールされています。
$ cd /opt/intel/openvino_2021/deployment_tools/demo
$ ./demo_squeezenet_download_convert_run.sh
$ ./demo_security_barrier_camera.sh

次に弊社で準備したyolo-v3-tf のFP32とINT8モデルを実行して、パフォーマンスを確認します。
FP32 と INT8 モデルへの変換方法などは、下記補足に参考リンク先を記載したので、ご参考いただければと思います!
./benchmark_app -m FP32/yolo-v3-ft.xml
./benchmark_app -m FP32/yolo-v3-ft.xml -d GPU
./benchmark_app -m INT8/yolo-v3-ft.xml
./benchmark_app -m INT8/yolo-v3-ft.xml -d GPU
FP32 と INT8 モデルへの変換についての補足
FP32 と INT8 モデルへの変換については、以下リンクが大変参考になりましたので、出し惜しみせずご報告します。
YOLOv3 を OpenVINO™ ツールキットで使用する IR 形式へ変換してみよう
OpenVINO™ ツールキット Open Model Zoo のパブリックモデルの 量子化 (INT8) を試してみた
※記事作成にあたり、実際のモデル変換作業は先輩にやってもらったことはここだけの秘密です。
上記コマンドについての補足
「benchmark_app」と記載がありますが、こちらはインテル® OpenVINO™ ツールキットをインストールしたときに一緒にインストールされる推論を実行するツールとなります。
「-m」以降にネットワークモデル"のファイルパスを指定します。「-d」は推論するターゲットデバイスを指定することができます。
「-d GPU」があるコマンドはGPUを使用します。「-d GPU」がないコマンドはCPUを使用しています。
パフォーマンスの確認・結果
ようやくここまでたどり着いた、これが正直な感想ですが、振り返ってみると基本的なことを自習しつつ、いくつかのリンクを見ながら自力でたどり着けたので、初心者でも使うことは出来る!というのが感想です。
ということで、早速 yolo-v3-tf の FP32 と INT8 のそれぞれのパフォーマンスを CPU と GPU の両方で確認しました!
結果は以下のようになりました。
結果からの考察として、やはり GPU を利用すると CPU 単体と比較して FP32 および INT8 どちらも2倍以上の FPS を得ることができました。
また FP32 と INT8 を比較すると、INT8 の方が量子化されているため、よりスループットを出せる結果を得られました。
- CPU を使った yolo-v3-tf のパフォーマンス
FP32 |
INT8 |
|
Throughput (FPS) |
6.28 |
23.89 |
Latency (ms) |
688.35 |
180.36 |
- GPU を使った yolo-v3-tf のパフォーマンス
FP32 |
INT8 |
|
Throughput (FPS) |
15.42 |
59.25 |
Latency (ms) |
263.63 |
67.69 |
まとめ
第 11 世代インテル® Core™ プロセッサー である Core i7-1185G7 搭載の ADLINK 社 cExpress-TL を使って yolo-v3-tf の FP32 と INT8 のパフォーマンスを確認しました。
CPU と GPU 両方とも INT8 が FP32 より3~4倍良いスループットが得られることが確認できました。
また、結果を得るにあたり yolo-v3-tf を FP32 に変換する方法や、INT8 への量子化方法など実設計に必要な作業を学ぶことができました。
準備編からご拝読頂きまして誠にありがとうございます!
何も知らないところから業務の合間に作業をしましたが、進めていくうちにわかったこととして、既にある情報や常日頃更新されていく情報の蓄積から色々なことを勉強できました。
私のような初心者でも 「AI」を体感することは比較的容易になってきたと強く感じると共に、改めて 「AI」 への興味がわいてきましたので、ご拝読頂きました皆様に微力ながらお力になれればと考えております。何か気になることやご不明なことがありましたら、以下のお問い合わせボタンからご連絡を頂戴できればと思っておりますので、何卒よろしくお願い致します!