编译安装ncnn
克隆ncnn仓库
我的系统是fedora 40
mkdir ncnn
cd ncnn
git clone https://github.com/Tencent/ncnn.git
git submodule update --init
设置Android NDK
cd ..
wget https://dl.google.com/android/repository/android-ndk-r26d-linux.zip
mkdir android-ndk
unzip android-ndk-r26d-linux.zip -d android-ndk/
export ANDROID_NDK=$(pwd)/android-ndk/android-ndk-r26d
可选:去除debug标志
vim $ANDROID_NDK/build/cmake/android-legacy.toolchain.cmak
去掉这里的-g参数即可
list(APPEND ANDROID_COMPILER_FLAGS
-g
-DANDROID
设置cmake
如果你的cmake版本大于等于3.21,ndk版本为r23或更高,可添加-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False选项以启用优化
mkdir -p build-android
cd build-android
cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake"\
-DANDROID_ABI="arm64-v8a" \
-DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON \
-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False ..
设置完cmake就可以编译ncnn了
编译ncnn
make -j$(nproc)
make install
测试ncnn
将文件传送到手机
这里我使用Pixel 4a 5g手机进行测试
adb push build-android/benchmark/benchncnn /data/local/tmp/
adb push ../benchmark/*.param /data/local/tmp/
cpu跑分测试
SM7250平台
chmod +x benchncnn
./benchncnn 8 4 2 -1 1
gpu跑分测试
Adreno 620平台
./benchncnn 8 4 2 0 1
看起来gpu跑分还不如cpu..