玩玩AI(1)-腾讯ncnn编译安装

参考项目

GitHub - Tencent/ncnn: ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。 ncnn 从设计之初深刻考虑手机端的部署和使用。 无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。 基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行, 开发出人工智能 APP,将 AI 带到你的指尖。 ncnn 目前已在腾讯多款应用中使用,如:QQ,Qzone,微信,天天 P 图等。

编译安装

安装编译依赖软件

sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev -y

获取源码到用户主目录

方法一:如果你可以正常访问Github,可以使用Clone的方式获取源码

cd ~

注:--depth=1参数,只获取最新一次提交的代码,而不clone整个仓库的历史提交,可以加快clone速度

git clone --depth=1 https://github.com/Tencent/ncnn.git
cd ~/ncnn && git submodule update --init 

方法二:使用我提供的压缩包文件

下载源码压缩包文件

ncnn.zip

将压缩包文件拷贝至ubuntu用户主目录中,然后解压

cd ~ && unzip ncnn.zip

编译源代码

创建并跳转到build目录

 mkdir ~/ncnn/build && cd ~/ncnn/build/

为了兼容后续的ROS功能包,这里需要开启NCNN_VULKAN,即编译GPU版本

cmake -DNCNN_SIMPLEOCV=ON  -DNCNN_DISABLE_RTTI=OFF -DNCNN_BUILD_EXAMPLES=ON  -DNCNN_VULKAN=ON ..

建议:在执行前将主板做好良好的散热,避免编译过程中出现过热降频影响编译速度

编译(RK3399耗时约10分钟,RK3588耗时约5分钟,供参考)

make -j$(nproc)

编译安装

make install

安装结果测试验证

跳转到example目录

 cd ~/ncnn/examples/

执行example的squeezenet测试

../build/examples/squeezenet ../images/256-ncnn.png

测试结果(RK3399

 ./benchncnn 4 $(nproc) 0 -1

benchmark网络性能测试(只用于量化性能测试,可跳过,不影响后续例程运行)

拷贝编译后的在可执行文件

cp ~/ncnn/build/benchmark/benchncnn ~/ncnn/benchmark/

 跳转到benchmark目录

cd ~/ncnn/benchmark

执行benchncnn测试

 ./benchncnn 4 $(nproc) 0 -1

测试结果(RK3399

测试结果(RK3588)对于RK3588这类大小核心且大核性能很强的CPU,powersave设置为0(即所有核全开)似乎并不是性能最好的,经过测试,powersave设置为2(即只开大核),num_threads设置为4(大核数量为4)可以跑出更好的测试成绩,下图左为核全开,右边为只开大核的成绩。

测试结果(全志H6

测试结果(树莓派4B-4GB

猜你喜欢

转载自blog.csdn.net/bingda_robot/article/details/128315582