jetson arm

在jetson nano上配置ncnn

by nineone, 2022-03-04


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

以上的描述来自官方,我们知道一般手机不提供CUDA的支持,所以使用CUDA在手机上来加速神经网络的推理就无法达成了。

但是大多数Android手机使用Vulkan API来对其GPU进行低级访问,所以ncnn框架可以使用Vulkan SDK来加速深度学习模型的卷积。


接下来进行ncnn的配置:

更新一下环境

$ sudo apt-get update
$ sudo apt-get upgrade

配置jetson nano时候应该已经更换源了。老生常谈;

安装依赖项

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

安装一些依赖项,cmake、protobuf、vulkan等等;

下载ncnn源码

$ git clone --depth=1 https://github.com/Tencent/ncnn.git

用git clone --depth=1的好处是限制 clone 的深度,不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度

下载glslang

$ cd ncnn
$ git submodule update --depth=1 --init

克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行git submodule update完成子模块的下载
ncnn中的submodule指的是glslang(我并不知道它是个什么东东。。An OpenGL and OpenGL ES shader front end and validator)

开始编译

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/jetson.toolchain.cmake \
        -DNCNN_BUILD_EXAMPLES=ON \
        -DNCNN_VULKAN=ON \
        -DCMAKE_BUILD_TYPE=Release ..
$ make -j4
$ sudo make install
jetson

作者: nineone

2025 © typecho & elise 28 ms