Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤

2023-10-31

在 CUDA_Test  工程中,CUDA测试代码之前仅支持在Windows10 + VS2013编译,今天在Ubuntu 14.04下写了一个CMakeLists.txt文件,支持在Linux下也可以通过CMake编译CUDA_Test工程,CMakeLists.txt文件内容如下:

# CMake file for CUDA_Test

# 设定依赖的CMake版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# 指定项目名称
PROJECT(CUDA_Test)

# 搜索指定的OpenCV外部依赖库头文件和库文件位置
FIND_PACKAGE(OpenCV 2)
# 搜索指定的CUDA外部依赖库头文件和库文件位置
FIND_PACKAGE(CUDA)

# 打印相关信息, CMAKE_CURRENT_SOURCE_DIR指的是当前处理的CMakeLists.txt所在的路径
MESSAGE(STATUS "current path: ${CMAKE_CURRENT_SOURCE_DIR}")

# 定义用户自定义变量
SET(PATH_CPP_FILES ./../../demo/CUDA_Test)
#MESSAGE(STATUS "cpp files path: ${PATH_CPP_FILES}")
SET(PATH_CU_FILES ./../../demo/CUDA_Test)

# 递归查询所有匹配的文件:*.cpp和*.cu
FILE(GLOB_RECURSE CPP_LIST ${PATH_CPP_FILES}/*.cpp)
FILE(GLOB_RECURSE CU_LIST ${PATH_CU_FILES}/*.cu)
#MESSAGE(STATUS "cpp list: ${CPP_LIST}")
#MESSAGE(STATUS "cu list: ${CU_LIST}")

# 使CMake支持C++11特性
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu++0x")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")

# 指定CUDA头文件的搜索路径
INCLUDE_DIRECTORIES(/usr/local/cuda-8.0/include)
# 指定OpenCV头文件搜索路径
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#MESSAGE(STATUS "opencv include directory: ${OpenCV_INCLUDE_DIRS}")

# 使CUDA NVCC 编译器支持C++11特性
LIST(APPEND CUDA_NVCC_FLAGS -std=c++11;-O2)
LIST(APPEND CUDA_NVCC_FLAGS -Xcompiler;-fPIC)

SET(CUDA_PROPAGATE_HOST_FLAGS OFF)

LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_50,code=sm_50)
LIST(APPEND CUDA_NVCC_FLAGS -gencode arch=compute_60,code=sm_60)

# 编译可执行程序,即生成可执行文件CUDA_Test
#ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST}) # 不包括编译*.cu文件,需要使用CUDA_ADD_EXECUTABLE命令
CUDA_ADD_EXECUTABLE(CUDA_Test ${CPP_LIST} ${CU_LIST})
# 用来为target添加需要链接的共享库,指定工程所用的依赖库,包括动态库和静态库
TARGET_LINK_LIBRARIES(CUDA_Test ${OpenCV_LIBS})
#MESSAGE(STATUS "opencv libs: ${OpenCV_LIBS}")

MESSAGE(STATUS "**************************************")
操作步骤(prj/linux_cmake/ReadMe.txt)如下:

在Linux下通过CMake编译CUDA_Test中的测试代码步骤:
1. 将终端定位到CUDA_Test/prj/linux_cmake,依次执行如下命令:
	$ mkdir build
	$ cd build
	$ cmake ..
	$ make (生成CUDA_Test执行文件)
	$ ./CUDA_Test
2. 对于有需要用OpenCV参与的读取图像的操作,需要先将对应文件中的图像路径修改为Linux支持的路径格式

GitHub:  https://github.com/fengbingchun/CUDA_Test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤 的相关文章

  • CMake中define_property的使用

    CMake中的define property命令用于定义和记录自定义属性 其格式如下 define property
  • CUDA Samples: matrix multiplication(C = A * B)

    以下CUDA sample是分别用C 和CUDA实现的两矩阵相乘运算code即C A B CUDA中包含了两种核函数的实现方法 第一种方法来自于CUDA Samples v8 0 0 Simple matrixMul 第二种采用普通的方法实
  • CMake中list的使用

    CMake中的list命令用于列表操作 其格式如下 Reading list LENGTH
  • Vcpkg介绍及使用

    Vcpkg用于在Windows Linux Mac上管理C和C 库 极大简化了第三方库的安装 它由微软开源 源码地址 https github com Microsoft vcpkg 最新发布版本为2023 04 15 Release 它的
  • CMake中add_definitions/add_compile_definitions的使用

    CMake中的add definitions命令用于在源文件的编译中添加 D定义标志 其格式如下 add definitions DFOO DBAR 将当前目录中的target的定义添加到编译器命令行 compiler command li
  • windows7 64位机上CUDA7.0配置及在VS2010中的简单使用举例

    1 查看本机配置 查看显卡类型是否支持NVIDIA GPU 选中计算机 gt 右键属性 gt 设备管理器 gt 显示适配器 NVIDIA GeForce GT 610 从https developer nvidia com cuda gpu
  • Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤

    在 CUDA Test 工程中 CUDA测试代码之前仅支持在Windows10 VS2013编译 今天在Ubuntu 14 04下写了一个CMakeLists txt文件 支持在Linux下也可以通过CMake编译CUDA Test工程 C
  • CMake中aux_source_directory的使用

    CMake中的aux source directory命令用于查找目录中的所有源文件 其格式如下 aux source directory
  • CUDA Samples: Streams' usage

    以下CUDA sample是分别用C 和CUDA实现的流的使用code 并对其中使用到的CUDA函数进行了解说 code参考了 GPU高性能编程CUDA实战 一书的第十章 各个文件内容如下 funset cpp include funset
  • windows7 64位机上安装配置CUDA7.5(或8.0)+cudnn5.0操作步骤

    按照官网文档 http docs nvidia com cuda cuda installation guide microsoft windows index html axzz4TpI4c8vf 进行安装 在windows7上安装cud
  • Linux下遍历指定目录的C++实现

    之前在 https blog csdn net fengbingchun article details 51474728 给出了在Windows遍历指定文件夹的C 实现 这里给出在Linux下遍历目录的实现 Windows和Linux下的
  • 灰度图像直方图均衡化公式及实现

    图像的直方图 直方图是图像中像素强度分布的图形表达方式 它统计了每一个强度值所具有的像素个数 直方图均衡化 是通过拉伸像素强度分布范围来增强图像对比度的一种方法 是图像处理领域中利用图像直方图对对比度进行调整的方法 均衡化指的是把一个分布
  • CMake中set_target_properties/get_target_property的使用

    CMake中的set target properties命令用于为targets设置属性 targets can have properties that affect how they are built 其格式如下 set target
  • CUDA Samples: image normalize(mean/standard deviation)

    以下CUDA sample是分别用C 和CUDA实现的通过均值和标准差对图像进行类似归一化的操作 并对其中使用到的CUDA函数进行了解说 各个文件内容如下 关于均值和标准差的计算公式可参考 http blog csdn net fengbi
  • 《GPU高性能编程CUDA实战》中代码整理

    CUDA架构专门为GPU计算设计了一种全新的模块 目的是减轻早期GPU计算中存在的一些限制 而正是这些限制使得之前的GPU在通用计算中没有得到广泛的应用 使用CUDA C来编写代码的前提条件包括 1 支持CUDA的图形处理器 即由NVIDI
  • CMake中cmake_minimum_required的使用

    CMake中的命令cmake minimum required用于设定需要的最低版本的CMake 其格式如下 cmake minimum required VERSION
  • CUDA Samples: 获取设备属性信息

    通过调用CUDA的cudaGetDeviceProperties函数可以获得指定设备的相关信息 此函数会根据GPU显卡和CUDA版本的不同得到的结果也有所差异 下面code列出了经常用到的设备信息 include funset hpp in
  • 在Caffe中调用TensorRT提供的MNIST model

    在TensorRT 2 1 2中提供了MNIST的model 这里拿来用Caffe的代码调用实现 原始的mnist mean binaryproto文件调整为了纯二进制文件mnist tensorrt mean binary 测试结果与使用
  • Ubuntu14.04下配置OpenGL及测试代码

    ubuntu14 04 64位下 默认是没有安装OpenGL相关依赖库的 若安装 则依次执行如下几条命令即可 sudo apt get update sudo apt get install build essential sudo apt
  • TensorRT Samples: GoogleNet

    关于TensorRT的介绍可以参考 http blog csdn net fengbingchun article details 78469551 以下是参考TensorRT 2 1 2中的sampleGoogleNet cpp文件改写的

随机推荐

  • JavaScript基础篇

    JavaScript基础篇 一 介绍 1 JavaScript是一种专门在浏览器编译并执行的编程语言 2 JavaScript主要处理用户与浏览器之间请求问题 3 JavaScript采用 弱类型编程语言风格 对 面向对象思想 来进行实现的
  • Linux基础之常用操作

    这里介绍的是一些非常基本的命令 在linux管理中经常用到 包括用户创建 文件操作 目录操作 vim文本编辑等等 用户切换与创建 whoami命令 用于显示自身用户名称 root linux00 whoami root su命令 用于切换用
  • GIT的使用以及分支的讲解

    文章目录 前言 一 GIT是什么 二 Git的使用 1 在本地初始化一个本地仓库 2 工作区到暂存区 使用流程 3 暂存区到历史区 使用流程 4 文件夹操作 三 Git的分支 1 概述 2 命名规范 3 分支的操作 总结 前言 掌握GIT的
  • 网站存活,ip反查,权重备案查询(方法)

    常用漏洞库 佩奇漏洞文库 https www yuque com peiqiwiki peiqi poc wiki http wiki peiqi tech 白阁漏洞文库 https wiki bylibrary cn E6 BC 8F E
  • 关于CS模式和P2P模式分发文件速度的思考

    cs模式 看到这里我首先想到是 难道不是NF us F min di 吗 然后我想了一会 分发文件并不是先上传再下载 而是一个报文一个报文的上传再一个报文一个报文的下载 也就是说 这边刚上传第一个报文 另一边就开始下载 所以几乎是同时开始上
  • 排序算法(4)----快速排序

    快速排序由C A R Hoare在1962年提出 它的基本思想是 通过一趟排序将要排序的数据分割成独立的两部分 其中一部分的所有数据都比另外一部分的所有数据都要小 然后再按此方法对这两部分数据分别进行快速排序 整个排序过程可以递归进行 以此
  • 基于Java+SpringBoot+vue的租房网站设计与实现(附源码,使用教程)

    基于Java SpringBoot vue的租房网站设计与实现 文章目录 基于Java SpringBoot vue的租房网站设计与实现 一 前言介绍 二 主要技术 三 系统设计 部分 3 1 主要功能模块设计 3 2 系统登录设计 四 数
  • 【Vscode】远程内存占用大

    查看远程服务器上的扩展 依次删除 重新连接后观察内存占用 此扩展占用较高 约2G 前后端项目 依赖较多导致
  • “三天打鱼,两天晒网“的c语言实现

    中国有句俗话叫 三天大鱼 两天晒网 某渔夫从2000年1月1日开始 三天打鱼 两天晒网 问该渔夫在以后的某一天中是在 打鱼 还是在 晒网 需求 用户输入某年某月某日 判断出该日期是在打鱼还是在晒网 思路 1 接收键盘输入的日期 2 计算从2
  • [靶场] SQLi-Labs Less62-Less69

    66 Less62 请求方式 注入方式 备注 GET 盲注 130次语句以内完成 分析 我们需要指定challenges数据库中表名 表名为10个字符 包含数字和小写字母 还需要知道表中的字段名 字段名为secret XX XX为4个字符
  • LDO的原理以及重要指标

    http t csdn cn YaR0G 本文告诉你三件事 LDO的基本原理 LDO都有哪些参数 有什么意义 选型时的注意事项 1 LDO基本原理 LDO是Low Dropout Regulator的缩写 意思是低压差线性稳压器 低压差 是
  • 深度学习中的常用八种卷积运算简介

    参考资料 https towardsdatascience com a comprehensive introduction to different types of convolutions in deep learning 66928
  • iOS 14 自定义画中画悬浮窗 Custom AVPictureInPictureController 实现方案

    iOS 14 基于 AVPictureInPictureController 实现自定义画中画 涵盖所有功能与难点 市面上的各种悬浮钟和提词器的原理都是基于此 Demo源码在文末 使用 iOS 画中画的要求 真机 不能使用模拟器 iOS 1
  • 重构Webpack系列之二 ---- 入口起点

    重构Webpack系列之二 入口起点 一 概念 入口起点 entry point 指示Webpack应该使用哪个模块 来作为构建其内部依赖图的开始 进入入口起点后 Webpack会找出哪些模块和库是跟入口起点 直接或间接 有依赖的关系 默认
  • 开源云原生与行业应用

    ChinaOSC 2022开源云原生与行业应用论坛将于2022年8月21日13 30 17 15在陕西省西安高新国际会议中心召开 本论坛将邀请多位知名开源云原生领域的贡献者 实践者 分享和探讨开源云原生赋能产品迭代 行业应用创新的最佳实践
  • json格式请求http

    例子 JsonObject response postJsonData url gson toJson applyInfo applyInfo 一个java对象 发送 post 请求 param url 地址 return link Jso
  • Python---数据清洗

    首先导入数据 并读取前5行 然后处理店铺数据 清洗comment字段 先筛选出有 条 字的评论 再用spilt分割数据 提取评论条数后转换数据类型 用的是astype转换 并查看前5行 清洗其他字段也是一样的处理 比如清洗人均价格这个字段
  • el-table选中数据勾选状态不清空的做法&&监听拿到勾选的所有数据

    1 el table结合el pagination 在翻页之后再返回勾选的数据状态会消失 解决办法
  • RocketMQ Bug修复记录

    文章目录 1 Bug详情及解决 1 1 Bug 来龙去脉 1 2 验证这真的是一个BUG 1 2 1 BrokerFixedThreadPoolExecutor 1 2 2 FutureTaskExt 1 2 3 RegisterBroke
  • Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤

    在 CUDA Test 工程中 CUDA测试代码之前仅支持在Windows10 VS2013编译 今天在Ubuntu 14 04下写了一个CMakeLists txt文件 支持在Linux下也可以通过CMake编译CUDA Test工程 C