玩转Jetson nano系列(1):Jetson nano编译安装ncnn

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/hanzy88/article/details/98472947

整个安装流程基本按照官方的步骤
build ncnn for jetson

但是在jetson nano上安装时,遇到了glslang和vulkan引发的问题:
Found glslangValidator: GLSLANGVALIDATOR_EXECUTABLE-NOTFOUND

Could NOT find Vulkan (missing: Vulkan_INCLUDE_DIR)

所以这篇博客主要解决这两个问题,另外glslang按照ncnn的编译安装过程好像也有点问题,所以参考glslang官方的安装。

整个过程如下:

一. 安装Vulkan SDK

官网下载链接:
Nvidia
注册完成就可以下载了,得到如下文件:

Vulkan_loader_demos_1.1.100.tar.gz

传入Jetson nano,并解压得到文件。

/home/username/Vulkanloader_demos_1.1.100

安装Vulkan SDK

cd ~/Vulkanloader_demos_1.1.100
sudo cp loader/libvulkan.so.1.1.100 /usr/lib/aarch64-linux-gnu/
cd /usr/lib/aarch64-linux-gnu/
sudo rm -rf libvulkan.so.1 libvulkan.so
sudo ln -s libvulkan.so.1.1.100 libvulkan.so
sudo ln -s libvulkan.so.1.1.100 libvulkan.so.1
cd ~/

二. 安装Glslang

下载Glslang:

git clone https://github.com/KhronosGroup/glslang.git

安装其他工具

cd <the directory glslang was cloned to, "External" will be a subdirectory>
git clone https://github.com/google/googletest.git External/googletest
./update_glslang_sources.py

配置

# Assume the source directory is $SOURCE_DIR and the build directory is $BUILD_DIR.
mkdir -p $BUILD_DIR
cd $BUILD_DIR

编译安装

# SOURCE_DIR改成glslang目录,如:/home/username/glslang
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE_DIR
# "Release" (for CMAKE_BUILD_TYPE) could also be "Debug" or "RelWithDebInfo"
# for Linux:
make -j4 install

二. 编译安装ncnn

下载ncnn

git clone https://github.com/Tencent/ncnn.git

配置glslang和vulkan环境

# 修改glslang配置,这里主要是文件glslangValidator找不到
cd ncnn
vim src/CMakefile.txt

# 修改6-10行中间find_program部分

 6 if(NCNN_VULKAN)
 7     find_program(GLSLANGVALIDATOR_EXECUTABLE NAMES glslangValidator PATHS /home/username/glslang/build/install/bin)
 8     #find_program(GLSLANGVALIDATOR_EXECUTABLE NAMES glslangValidator PATHS $ENV{VULKAN_SDK}/bin NO_CMAKE_FIND_ROOT_PATH)
 9     message(STATUS "Found glslangValidator: ${GLSLANGVALIDATOR_EXECUTABLE}")
10 endif()


# 配置vulkan环境,这个问题主要出在FindVulkan.cmake中$ENV{VULKAN_SDK}找不到,所以在环境变量中最后添加
vim ~/.bashrc
export VULKAN_SDK="/home/username/Vulkanloader_demos_1.1.100"

接下来就按照官方的步骤编译就行,要是想编译example,可以把ncnn下CMakefile.txt最后的example注释去掉

# while aarch64-linux-gnu.toolchain.cmake would compile Tencent/ncnn as well
# but why not compile with more native features w
cd ncnn && mkdir -p build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/jetson.toolchain.cmake -DNCNN_VULKAN=ON -DCMAKE_BUILD_TYPE=Release ..
make -j`nproc`
sudo make install

OK,到这里等待安装完成就可以了。

猜你喜欢

转载自blog.csdn.net/hanzy88/article/details/98472947