版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
整个安装流程基本按照官方的步骤
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,到这里等待安装完成就可以了。