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

原文地址:https://www.cnblogs.com/liushengchieh/p/14572620.html