> 文档中心 > Jetson上如何集成支持使用GPU的NCNN到应用程序

Jetson上如何集成支持使用GPU的NCNN到应用程序

 nccn通过vulkan使用GPU,所以实际上需要集成vulkan和ncnn的头文件和so库。

用于Jetson的JetPack里默认提供了vukan的so文件,例如libvulkan.so.1.2.142以及指向它的链接libvulkan.so.1,但是没有libvulkan.so这个名字的so文件或者链接,所以需要创建一个如下的链接:

ln -s libvulkan.so.1 libvulkan.so

ncnn的源码里包含有vulkan的头文件,所以头文件就不用从 https://github.com/KhronosGroup/Vulkan-Loader.gith

获取对应版本的源码了,直接使用ncnn/layer/vulkan下的头文件即可。

对于ncnn的so库文件,从  https://github.com/Tencent/ncnn ​​​​​​​下载源码编译出libncnn.so.1.0.*这样的so库文件以及链接后,将这些库和链接拷贝到你的应用文件的lib路径下即可:

ncnn的源码组织得有点乱,.h文件和.cpp文件以及其他乱七八糟的文件都放在一起,所以下载源码后,做向应用程序集成时可以自己做裁剪,把ncnn/layer/下的q除了vulkan目录和对应部署硬件平台所需的文件所在目录外,其他的都可以删掉:

 然后把ncnn/和ncnn/layer/以及ncnn/arm/等目录下的所有不是.h头文件的都删掉即可,在编译使用了ncnn的应用程序的Makefile里增加include路径把ncnn和ncnn/layer/vukan目录所在路径都包含进去,并增加-L将libncnn.so*那些库所在路径包含进去(如果没有保持原生系统干净的洁癖,也可以直接将libncnn.so*这些库和链接直接拷贝到系统库路径下去,例如Jetson平台上拷贝到/usr/lib/aarch64-linux-gnu/下去)以及增加 -lncnn -lvulkan即可编译应用程序了。

 

K6漫画书在线商城