问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

NCNN入门之编译与安装

创作时间:
作者:
@小白创作中心

NCNN入门之编译与安装

引用
CSDN
1.
https://blog.csdn.net/qq_53144843/article/details/141742689

NCNN是一个为手机端极致优化的高性能神经网络前向计算框架。它从设计之初就深刻考虑手机端的部署和使用,具有无第三方依赖、跨平台、计算速度快等特点。目前,NCNN已在腾讯多款应用中使用,如QQ、Qzone、微信、天天P图等。本文将详细介绍NCNN的编译与安装过程。

一、NCNN介绍

功能概述

  1. 支持卷积神经网络,支持多输入和多分支结构,可计算部分分支
  2. 无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架
  3. 纯 C++ 实现,跨平台,支持 Android / iOS 等
  4. ARM Neon 汇编级良心优化,计算速度极快
  5. 精细的内存管理和数据结构设计,内存占用极低
  6. 支持多核并行计算加速,ARM big.LITTLE CPU 调度优化
  7. 支持基于全新低消耗的 Vulkan API GPU 加速
  8. 可扩展的模型设计,支持 8bit量化和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型
  9. 支持直接内存零拷贝引用加载网络模型
  10. 可注册自定义层实现并扩展

总之,NCNN是一个专门为移动设备和嵌入式系统设计的高效神经网络推理框架,以其轻量级、高性能、跨平台和易用性赢得了广泛的应用。它特别适合那些需要在资源有限的环境中部署深度学习模型的场景。

二、NCNN编译

使用以下命令安装所有必需的依赖项:

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

NCNN源码下载:

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

进入 NCNN 源码目录后,使用 CMake 配置和编译项目:

#在ncnn主目录下
mkdir build && cd build
cmake .. -DNCNN_BENCHMARK=ON -DNCNN_VULKAN=ON
make -j8

这部分代码是ncnn的主目录下CMakeLists.txt里的内容,用于控制构建选项,设置NCNN_BENCHMARK=ON可以打印出每个算子的耗时,NCNN_VULKAN=ON可以开启vulkan加速。

成功编译,对编译后的库进行安装,默认安装的根目录是:

your_dir/ncnn/build/install/

,也就是会在build目录下新建一个install目录来安装。

sudo make install

三、NCNN测试

安装成功后检查是否环境是否正确。

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

运行结果:至此ncnn的编译与安装已经完成。

四、参考文档

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号