ncnn - ubuntu调用vulkan加速ncnn是的CMakeLists.txt和bashrc配置

2024-01-23 14:04

本文主要是介绍ncnn - ubuntu调用vulkan加速ncnn是的CMakeLists.txt和bashrc配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

ncnn使用vulkan来加速时,需要先安装vulkan,然后再使用vulkan来编译ncnn,最后才是使用编译好的ncnn来推理模型。。

这里的vulkan再Ubuntu中通常是直接解压安装,然后配置环境变量如下:

export VULKAN_SDK=/home/fwq/softs/1.2.182.0/x86_64

1.2.182.0 是我使用的vulkan版本。。

配置完上述路径后,source ~/.bashrc。

这时,编译ncnn 时 依赖 vulkan就成功通过了,但使用CMakeLists.txt 调用ncnn时报错:

CMake Error at /usr/local/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) (foundversion "")Call Stack (most recent call first):/usr/local/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)/usr/local/share/cmake-3.23/Modules/FindVulkan.cmake:159 (find_package_handle_standard_args)/home/fwq/ncnn/lib/cmake/ncnn/ncnnConfig.cmake:18 (find_package)

解决1(失败)

添加环境变量配置:

##vulkan
export VULKAN_SDK=/home/fwq/softs/1.2.182.0/x86_64export Vulkan_LIBRARY=/home/fwq/softs/1.2.182.0/x86_64/libexport Vulkan_INCLUDE_DIR=/home/fwq/softs/1.2.182.0/x86_64/includeexport vulkan_BIN=/home/fwq/softs/1.2.182.0/x86_64/binexport PATH=$PATH:$Vulkan_LIBRARY:$Vulkan_INCLUDE_DIR:$vulkan_BIN

然后重新导入CMakeLIsts.txt,但还是失败

解决2(成功)

这个解决1中的并没有注释-- 后续可以测试一下,注释过后有没有影响

在CMakeLists.txt中添加:

set(Vulkan_LIBRARY /home/fwq/softs/1.2.182.0/x86_64/lib)

set(Vulkan_INCLUDE_DIR /home/fwq/softs/1.2.182.0/x86_64/include)

完整导入ncnn的CMakeLists.txt示例

set(Vulkan_LIBRARY /home/fwq/softs/1.2.182.0/x86_64/lib)
set(Vulkan_INCLUDE_DIR /home/fwq/softs/1.2.182.0/x86_64/include)set(ncnn_DIR "/home/fwq/ncnn/lib/cmake/ncnn")set(ncnn_INCLUDE_DIRS /home/fwq/ncnn/include)
find_package(ncnn REQUIRED)# 添加openmp的编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")link_directories(${ncnn_INCLUDE_DIRS}
)add_library(yolov5lite_ncnn SHARED  ${yolov5lite_ncnn_cpp})
target_link_libraries(yolov5lite_ncnn${OpenCV_LIBS}ncnn)target_include_directories(yolov5lite_ncnn PUBLIC${CMAKE_SOURCE_DIR}/3rdpart${CMAKE_SOURCE_DIR}/3rdpart/ncnn_include${CMAKE_CURRENT_LIST_DIR}/Export${CMAKE_CURRENT_LIST_DIR}/Include)张无门槛流量券(+1000曝光),0点自动发

这篇关于ncnn - ubuntu调用vulkan加速ncnn是的CMakeLists.txt和bashrc配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636609

相关文章

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解