Jetson NX上NCNN编译测试(没有TRT)
在Jetson NX上编译NCNN(没有TRT支持)
记录下自己编译的过程,网上零零碎碎找了一些教程解决了编译的问题。
环境
笔者使用的环境是最新的Jetpack4.6, 但是有找不到CUDA、CUDNN的问题,加了环境变量没解决。(最后找到原因可能是因为自己编译带CUDA的OpenCV导致的,处理起来比较麻烦)最后用NGC的docker如下:
docker pull nvcr.io/nvidia/l4t-ml:r32.5.0-py3
建立docker实例以及clone代码等过程省略了
Vulkan SDK的解决
Jetson上内置了Vulkan支持,但是需要我们编译一部分库。方法如下,官方也给了说明:
我们需要的就是这个vulkan loader的编译结果作为NCNN的requirements之一。
具体方法如下:
sudo apt-get update && sudo apt-get install git build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev cmake
git clone .git
cd Vulkan-Loader && mkdir build && cd build
../scripts/update_deps.py
cmake -DCMAKE_BUILD_TYPE=Release -DVULKAN_HEADERS_INSTALL_DIR=$(pwd)/Vulkan-Headers/build/install ..
#上面这个路径有一点点奇怪,但是照这个这个做
make -j6 #NX最多6个核心
cd Vulkan-Headers
ln -s ../loader lib #链接出来lib
export VULKAN_SDK=#你编译的地方 /home/jedibobo/Vulkan-Loader/build/Vulkan-Headers
NCNN 的编译
之后再上编译NCNN的脚本:
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=ON -DNCNN_SYSTEM_GLSLANG=ON -DNCNN_BUILD_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE=../toolchains/jetson.toolchain.cmake ..
make -j6
如果全部按照我这里做的,应该没啥问题。
结果
应该是5min不到就会弄完
需要注意的是,TRT和NCNN是同类型的推理加速框架,而NCNN通过Vulcan来调用GPU加速而不是CUDA。
发布评论