CPU環境でdarknetの高速化
CPU環境でdarknetの推論速度を高速化する手順を紹介します。
環境は以下となります。
環境:Raspberry Pi 4、Ubuntu MATE
使用するのは下記URLのdarknetとNNPACKを組み合わせたコードです。
GitHub - digitalbrain79/darknet-nnpack: Darknet with NNPACK
- 推論速度
- 気をつける点
- PeachPy と confu のインストール
- Ninja のインストール
- clang のインストール
- NNPACK 関連のライブラリのバージョン変更
- NNPACK-darknet インストール(2)
- darknet-nnpack のビルド
推論速度
640 x 424の画像に対してpre-trainedモデルを使用し推論速度を比較しました。
YOLOv3-tiny:0.67秒
YOLOv3:5.50秒
PeachPy と confu のインストール
sudo pip install --upgrade git+https://github.com/Maratyszcza/PeachPy sudo pip install --upgrade git+https://github.com/Maratyszcza/confu
Ninja のインストール
cd git clone https://github.com/ninja-build/ninja.git cd ninja git checkout release ./configure.py --bootstrap export NINJA_PATH=$PWD
clang のインストール
sudo apt install clang **NNPACK-darknet インストール(1) >|bash| cd git clone https://github.com/digitalbrain79/NNPACK-darknet.git cd NNPACK-darknet confu setup
NNPACK 関連のライブラリのバージョン変更
NNPACK 関連のライブラリの最新バージョンにNNPACK-darknetが対応していないため、deps フォルダ配下の NNPACK に関連するライブラリのバージョンを2018年11月8日以前に変更します。
cd deps/fp16 git checkout 34d4bf01bbf7376f2baa71b8fa148b18524d45cf cd ../fxdiv git checkout 811b482bcd9e8d98ad80c6c78d5302bb830184b0 cd ../psimd git checkout 3d8bfe7318423462a6d9e0c6537e75efd4822c49 cd ../pthreadpool git checkout 13da0b4c21d17f94150713366420baaf1b5a46f4
NNPACK-darknet インストール(2)
cd ../../ python3 ./configure.py --backend auto $NINJA_PATH/ninja sudo cp -a lib/* /usr/lib/ sudo cp include/nnpack.h /usr/include/ sudo cp deps/pthreadpool/include/pthreadpool.h /usr/include/
darknet-nnpack のビルド
cd git clone https://github.com/digitalbrain79/darknet-nnpack.git cd darknet-nnpack make