编译安装ncnn

克隆ncnn仓库

我的系统是fedora 40

mkdir ncnn
cd ncnn
git clone https://github.com/Tencent/ncnn.git
git submodule update --init

设置交叉工具链

cd ..
wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
mkdir riscv-milkv
tar -zxvf host-tools.gz -C riscv-milkv/
export RISCV_ROOT_PATH=$(pwd)/riscv-milkv/host-tools/gcc/riscv64-linux-x86_64

设置cmake

cd ncnn
mkdir build-milkv/
cd build-milkv
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/c906-v240.toolchain.cmake -DCMAKE_BUILD_TYPE=release -DNCNN_BUILD_TESTS=ON -DNCNN_OPENMP=OFF -DNCNN_THREADS=OFF -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=ON -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON ..

设置完cmake就可以编译ncnn了

编译ncnn

make -j$(nproc)

将benchncnn和param文件传送到milkv duo s开发版

开发版上是linux系统,这里我使用scp传送,将my_ip和/path/to/替换成自己的

make install
scp duan@my_ip:/path/to/ncnn/build-milkv/benchncnn .
scp duan@my_ip:/path/to/ncnn/benchmark/*.param .

跑分测试

milkv duo s的SG2000有一个ARM核(1 x Cortex-A53@1GHz)和一个RISCV核(1 x C906@1GHz + 1 x C906@700MHz),有点难为这块开发板了x

riscv核跑分

chmod +x benchncnn
./benchncnn 4 1 2 -1 0

arm核跑分

明天在更