NCNN性能测试笔记
NCNN 性能测试笔记
作者:Shengjie
更新时间:2019/12/31
编译:Linux/Android
Linux 编译
1、克隆仓库
git clone git@github.com:liushengjiezj/perf_test_ncnn.git
2、设置编译选项为“Clang”
**安装clang和libomp**
sudo apt-get install clang
sudo apt-get install libomp-dev
---
sudo dnf install clang
sudo dnf install libomp-devel
**设置环境变量**
export CC=/usr/bin/clang;export CXX=/usr/bin/clang++
3、编译
cd op_per_test_ncnn
mkdir build
cd build
cmake ..
make -j4
TO-DO:
hi3516cv500Linux编译
Android 编译
1、克隆仓库
git clone git@github.com:liushengjiezj/perf_test_ncnn.git
2、编译
**Android ARM64**
export ANDROID_NDK=/root/peter/android-ndk-r18b/;export VULKAN_SDK=/root/peter/autoTest/sj/1.1.92.1/x86_64
mkdir build-android-arm64
cd build-android-arm64
$ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_PLATFORM=android-21 ..
# if you want to enable vulkan, platform api version >= android-24 is needed
$ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON ..
make -j20
make install
**Android ARM32**
export ANDROID_NDK=/root/peter/android-ndk-r18b/;export VULKAN_SDK=/root/peter/autoTest/sj/1.1.92.1/x86_64
mkdir build-android-arm32
cd build-android-arm32
$ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \
-DANDROID_PLATFORM=android-14 ..
# if you want to enable vulkan, platform api version >= android-24 is needed
$ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \
-DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON ..
make -j20
make install
运行测试:Linux/Android
Linux 性能测试
**env init**
cd op_perf_test_ncnn
cd build
cd benchmark
cp ../../benchmark_op/models/* .
**start testing**
taskset -c 0,1,2,3 ./benchncnn 10 4 1
Android 性能测试
**env init**
cd op_perf_test_ncnn
cd build-android-arm32/build-android-arm64
cd benchmark
cp ../../benchmark_op/models/* .
cd ..
adb -s 10.11.5.* push benchmark /data/local/tmp/
**start testing**
adb -s 10.11.5.* shell < tmp > log 2>&1
tmp file:
cd /data/local/tmp/benchmark
chmod +x benchncnn
./benchncnn 10 1 2
./benchncnn 10 2 2
./benchncnn 10 1 1
./benchncnn 10 4 1
收集&整理结果
1、将所有 Log 保存到本机
2、运行以下命令提取时间
grep "min" ./raw_data.txt | awk '{print $4"/",$7"/",$10}' | tr -d "[:blank:]" > ooo
3、将提取出的时间写入到 Excel