NCNN Linux 版本编译方法

NCNN Linux 版本编译方法

NCNN Android 版本编译方法可以参考如下文章:

NCNN - 适用于移动端的高性能神经网络前向计算框架

NCNN Linux 版本编译方法有所不同,依赖也不一样。

protobuf

protobuf(Google Protocol Buffer,简称 protobuf) 是 google 推出的混合语言数据标准。类似的技术有: JSON,XML 等。文件后缀为 .proto

protobuf 的主要优点是简单,快。

NCNN 需要支持 protobuf。

下载 protobuf

版本参考:https://github.com/protocolbuffers/protobuf/releases

下载特定版本的源代码

版本 源码包
C++ protobuf-cpp-[VERSION].tar.gz
Java protobuf-java-[VERSION].tar.gz
C# protobuf-csharp-[VERSION].tar.gz
JavaScript protobuf-js-[VERSION].tar.gz
Object-C protobuf-objectivec-[VERSION].tar.gz
PHP protobuf-php-[VERSION].tar.gz
Python protobuf-python-[VERSION].tar.gz
Ruby protobuf-ruby-[VERSION].tar.gz
所有语言 protobuf-all-[VERSION].tar.gz

下面安装只针对 C++ 版本。

# 安装依赖
sudo apt-get install autoconf automake libtool curl make g++ unzip

# 解压

# 进入目录
cd /protobuf-xxx/

# 运行脚本
./autogen.sh

# 编译,检测,安装,更新
./configure
make
make check
sudo make install
sudo ldconfig

vulkan

NCNN Linux 版本可以支持 vulkan(非必须,可以选择添加)

# 下载
wget https://sdk.lunarg.com/sdk/download/1.1.92.1/linux/vulkansdk-linux-x86_64-1.1.92.1.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.1.92.1.tar.gz
# 解压
tar -xf vulkansdk-linux-x86_64-1.1.92.1.tar.gz

# setup env
# 设置环境变量
export VULKAN_SDK=`pwd`/1.1.92.1/x86_64
export VULKAN_SDK=/home/z/desktop/code/1.1.92.1/x86_64

ncnn - linux 版本

装了以上 protobuf 和 valkan 后,可以安装 ncnn (linux)版本了。

# 进入 NCNN 目录
cd 

# 建立 linux 的编译目录
mkdir -p build
cd build

# 可以选择使用 vulkan,设置为 -DNCNN_VULKAN=ON
cmake -DNCNN_VULKAN=OFF ..

# 编译生成 libncnn.a
make -j4

# 安装后,install/ 目录下有 libncnn.a 和 相关的头文件
make install

其它问题

在 Linux 上使用 ncnn 编译程序时,有可能会遇到 error undefined reference toomp_get_num_threads’` 这样的错误。

需要在编译程序(包含 ncnn 功能的程序)时,加入 -lomp-lgomp 关联相关的库。

你可能感兴趣的:(深度学习,Linux,NCNN,Linux,编译)