高性能神经网络推理框架 ncnn 极简脚本编译安装——适用于Linux下root用户快速极简安装

  • 🥇 版权: 本文由【墨理学AI(人工智能(Artificial Intelligence))】原创、在CSDN首发、各位大佬、开打开打

👋 认识 ncnn


ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。

ncnn 从设计之初深刻考虑手机端的部署和使用。

无第三方依赖(dependency),跨平台,据称 手机端 cpu 的速度快于目前所有已知的开源框架。

基于 ncnn,开发者能够将深度学习(Deep learning)算法轻松移植到手机端高效执行,开发出人工智能(Artificial Intelligence) APP.

0-2

更多不同大厂商推出的深度学习(Deep learning)模型推理部署框架,各位可移步下方博文进行了解


模型推理框架一览 | 模型部署不得不了解的罗马【模型部署框架】


📘 下载


  • 下载方式一
git clone https://github.com/Tencent/ncnn.git
  • 下载方式二

下载 zip,然后 copy 到服务器

1-0

unzip ncnn-master.zip

📔 安装准备


基础 C++ 环境即可、Linux 环境通常具备

0-1

sudo 可快速安装相关依赖(dependency)

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

VULKAN 解压安装、export 环境变量

wget https://sdk.lunarg.com/sdk/download/1.2.189.0/linux/vulkansdk-linux-x86_64-1.2.189.0.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.2.189.0.tar.gz
tar -xf vulkansdk-linux-x86_64-1.2.189.0.tar.gz
export VULKAN_SDK=$(pwd)/1.2.189.0/x86_64

📗 make、make -j 、 make install 一个脚本即可完成安装


🟣 简单分析

ncnn 支持多种平台、安卓端、ios端、以及特定类型的开发板

1-4

ncnn-master/build.sh


该脚本下,包含各个平台的编译安装指令,我们可以根据自己平台选择性安装即可

1-5

🔴 指定 install 路径为 build/install 即可

自定义,撰写的一个 Linux(Ubuntu、centOS)下编译安装脚本如下

set -uex
BUILD_DIR="build"
if [ $# == 1 ]; then
	if [ $1 == "1" ]; then
		rm -rf ${BUILD_DIR}
	fi
fi
if [ ! -d ${BUILD_DIR} ]; then
	mkdir -p ${BUILD_DIR}
fi
pushd ${BUILD_DIR}
rm -rf *
cmake -DCMAKE_INSTALL_PREFIX=./install ..
make -j
make install
popd  # ${BUILD_DIR}

🔵 tree install 查看安装的库和头文件效果如下

我们看一看,make install 安装了什么

cd build
tree install
  • bin 目录下,是相关 可执行 ncnn 工具
  • include 目录下,是相关头文件
  • lib 目录下,是静态库
tree install
install
├── bin
│   ├── caffe2ncnn
│   ├── darknet2ncnn
│   ├── mxnet2ncnn
│   ├── ncnn2int8
│   ├── ncnn2mem
│   ├── ncnn2table
│   ├── ncnnmerge
│   ├── ncnnoptimize
│   └── onnx2ncnn
├── include
│   └── ncnn
│       ├── allocator.h
│       ├── benchmark.h
│       ├── blob.h
│       ├── c_api.h
│       ├── command.h
│       ├── cpu.h
│       ├── datareader.h
│       ├── gpu.h
│       ├── layer.h
│       ├── layer_shader_type_enum.h
│       ├── layer_shader_type.h
│       ├── layer_type_enum.h
│       ├── layer_type.h
│       ├── mat.h
│       ├── modelbin.h
│       ├── ncnn_export.h
│       ├── net.h
│       ├── option.h
│       ├── paramdict.h
│       ├── pipelinecache.h
│       ├── pipeline.h
│       ├── platform.h
│       ├── simpleocv.h
│       ├── simpleomp.h
│       ├── simplestl.h
│       └── vulkan_header_fix.h
└── lib
    ├── cmake
    │   └── ncnn
    │       ├── ncnn.cmake
    │       ├── ncnnConfig.cmake
    │       └── ncnn-release.cmake
    └── libncnn.a
6 directories, 39 files

如果是其他项目需要,那么只需 copy install 目录下的这些文件即可开始使用 ncnn


📙 ncnn 相关博文推荐


本博文是 ncnn 脚本方式、极简安装的整理,如果本博文脚本直接运行安装失败,单独步骤安装分析,适用于普通用(GPU general purpose GPU)户的安装方式可参考如下博文


ncnn 普通用(GPU general purpose GPU)户 逐步编译安装教程 | 示例运行【 onnx2ncnn | caffe2ncnn | mxnet2ncnn | darknet2ncnn 】

博主关于 ncnn 的入门博文,总结如下,仅供参考


9-3

版权声明:本文为博主墨理学AI(人工智能(Artificial Intelligence))原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sinat_28442665/article/details/121337355

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2021年11月22日 下午5:34
下一篇 2021年11月22日 下午6:07

相关推荐