Win10用命令行编译带有cuda的opencv

news2025/1/11 4:01:34

0. 环境

笔记本win10
NVIDIA GeForce GTX 1660 Ti


1. 准备x64 Native Tools Command Prompt

1.1 准备Visual Studio Installer

需要安装visual studio 2019

 

1.2 安装工作负荷

为了安装x64 Native Tools Command Prompt,勾上使用C++的桌面开发

安装完毕后,会带有x64这个工具


 

 

2. cuda+cudnn+tensorRT(其实cuda即可)

2.0 环境

笔记本win10
NVIDIA GeForce GTX 1660 Ti
visual studio 2019

2.1 安装cuda tool kit

FastDeploy 1.0要求cuda >= 11.2
cuda >= 11.2
cudnn >= 8.2


https://developer.nvidia.com/cuda-toolkit-archive
选择 11.2下载并安装

确认显卡驱动版本:
到这页面查看cuda driver要求的显卡驱动版本>=461.33:https://docs.nvidia.com/cuda/archive/11.2.2/cuda-toolkit-release-notes/index.html
右键桌面 -> NVIDIA控制面板 -> 系统信息 -> 看到驱动程序版本是 512.78 满足要求

安装cuda_11.2.2_461.33_win10.exe

把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2添加到PATH
右键我的电脑 -> 高级系统设置 -> 环境变量 -> 编辑Path -> 添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

2.2 TensorRT

从Release Notes查找需要的版本
https://docs.nvidia.com/deeplearning/tensorrt/archives/index.html#trt_8

看到TensorRT 8.4.3 适配cuDNN 8.4.1

TensorRT 8.4.3
下载源码
https://developer.nvidia.com/nvidia-tensorrt-8x-download
下载了TensorRT 8.4 GA Update 2 for x86_64 Architecture,TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4.zip

EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
亲亲,这边建议你用TensorRT最新版本的 GA release 呢

解压TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4.zip
把TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4内的TensorRT-8.4.3.1,拷贝到D:\Programs\TensorRT-8.4.3.1

2.3 cudnn

https://developer.nvidia.com/rdp/cudnn-archive
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows

下载了:cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive,下载这个需要登陆。

2.3.1 zlib

下载并解压到D盘:http://www.winimage.com/zLibDll/zlib123dllx64.zip

Add the directory path of zlibwapi.dll to the environment variable PATH.
右键我的电脑 -> 高级系统设置 -> 环境变量 -> 编辑Path -> 添加D:\Programs\zlib123dllx64\dll_x64

2.3.2 安装

解压cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive.zip


解压出来的文件夹cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive中的文件,
复制到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

2.4. 验证

 win+r–>输入cmd–>回车 在命令行下输入nvcc -V
Microsoft Windows [版本 10.0.19044.2251]
(c) Microsoft Corporation。保留所有权利。

C:\Users\qjfen>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_22:08:44_Pacific_Standard_Time_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0

C:\Users\qjfen>


3 opencv

3.0 环境

win10
NVIDIA GeForce GTX 1660 Ti
Visual Studio 2019
cuda 11.2.2
TensorRT-8.4.3.1
cudnn-windows 8.4.1


3.1 准备源码(opencv3.4)

https://opencv.org/releases/
下载了
opencv-3.4.16.tar.gz 

放在E:\Workspaces

解压

3.2. x64 Native Tools Command Prompt for VS 2019

在Windows菜单中,找到x64 Native Tools Command Prompt for VS 2019打开,执行如下命令

E:
cd Workspaces\opencv-3.4.16
mkdir build && cd build

// --------------------------------------------------------------------------------
// no cuda

cmake .. -G "Visual Studio 16 2019" -A x64 ^
         -DBUILD_DOCS=OFF ^
         -DBUILD_EXAMPLES=OFF ^
         -DBUILD_TESTS=OFF ^
         -DBUILD_PERF_TESTS=OFF ^
         -DSOFTFP=OFF ^
         -DCMAKE_INSTALL_PREFIX="E:\Workspaces\opencv-3.4.16\install"


// --------------------------------------------------------------------------------
// with cuda

cmake .. -G "Visual Studio 16 2019" -A x64 ^
         -DBUILD_DOCS=OFF ^
         -DBUILD_EXAMPLES=OFF ^
         -DBUILD_TESTS=OFF ^
         -DBUILD_PERF_TESTS=OFF ^
         -DSOFTFP=OFF ^
         -DCMAKE_INSTALL_PREFIX="E:\Workspaces\opencv-3.4.16\install" ^
         -DCUDA_TOOLKIT_ROOT_DIR="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin" ^
         -DCUDA_ARCH_BIN=7.2 ^
         -DCUDA_ARCH_PTX=7.2 ^
         -DWITH_CUDA=1 ^
         -DENABLE_FAST_MATH=1 ^
         -DCUDA_FAST_MATH=1 ^
         -DWITH_CUBLAS=1

编译

msbuild OpenCV.sln /m /p:Configuration=Release /p:Platform=x64

 

 

安装

msbuild INSTALL.vcxproj /m /p:Configuration=Release /p:Platform=x64


3.3 测试

 

visual studio 2019打开E:\Workspaces\opencv-3.4.16\samples\cpp\example_cmake
修改CMakeList.txt

添加
set(CMAKE_BUILD_TYPE "Release")


find_package(OpenCV REQUIRED)
修改为
# find_package(OpenCV REQUIRED)
set(OPENCV_INSTALL_DIR "E:\\Workspaces\\opencv-3.4.16\\install")
include(${OPENCV_INSTALL_DIR}/OpenCVConfig.cmake)

编译

运行

运行前需要把E:\Workspaces\opencv-3.4.16\install\x64\vc16\bin目录下的dll拷贝到可执行程序opencv_sample.exe的同一目录下。

 opencv-cpu版本:

 opencv-cuda版本:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Latent Class Modeling lca

潜类别模型(Latent Class Modeling) 潜在类别分析(LCA)数据分析流程(详细版) - 简书 (jianshu.com) R数据分析:用R语言做潜类别分析LCA - 知乎 (zhihu.com) About Latent Class Modeling -…

Postman(六): postman定义公共函数

Postman(11): postman定义公共函数 postman定义公共函数 在postman中,如下面的代码: 1、返回元素是否与预期值一致 var assertEqual(name,actual,expected)>{tests[${name}:实际结果: ${actual} , 期望结果&…

PDF转Excel怎么转?这些方法值得收藏

在我们的工作生活中,避免不了Excel表格的使用,当我们遇到想要将PDF文件中的信息转换制作成表格的时候,要怎么做呢?毕竟,PDF文件是一个不易编辑的格式,我们想复制其中的内容就较为的麻烦。一般这种时候&…

何止一个惨字形容,水滴 Java 面试一轮游,壮烈了,问啥啥不会,数据库血崩

static 关键字是用来干什么的,static 修饰的方法里面可以使用非静态的成员变量吗,为什么呢 private 修饰的方法是否可以被子类覆盖 覆盖和重载有什么区别 进程跟线程的区别 Java 中创建线程有几种方式 a. 反思:讲完三种方式之后&#xff…

Python——文件

文件 概念 我们常见的txt,jpg,mp4等等都是文件,存储在硬盘中的内容,就是文件,而文件夹是一种特殊的文件——目录文件 路径 一层一层文件夹组成的字符串就是路径,每一个文件的路径都是唯一的,相当于身份证号&#x…

卷积、自相关函数、功率谱密度

文章目录1、自相关函数和卷积2、自相关函数的傅里叶变换最近我在思考为什么: 为什么随机过程的自相关函数和其功率谱密度是一对傅里叶变换?1、自相关函数和卷积 这俩跟孪生兄弟似的,经常一起出现,我们先来看看自相关函数和卷积的…

【读书笔记】曾国藩的正面与侧面(二)

本书为全集的第二册,针对曾国藩的整个家族进行了介绍。包括他的兄弟,父母,和子女。 曾国藩的兄弟: 曾国潢:比曾国藩小9岁 是几个兄弟中读书天分最差的一个,但是有一个优点就是勤奋实在,所以在…

案例故事丨老虎国际 x TiDB ,降低架构复杂性,保障全球用户安全可靠投资

券商是一个古老的行业,发展至今已经历了三个时代:第一代券商为传统券商,在线下交易大厅进行买卖;第二代券商开始了电子化进程,从线下到线上进行了浅层服务的转移,改善了用户体验,提高了金融服务…

复习计算机网络——第四章习题记录

1、一台交换机具有24个100Mbps的全双工端口和2个1000Mbps的全双工端口,如果所有的端口都工作在全双工状态,那么交换机总带宽等于: 交换机知识点: (1)交换机具有24个10或者100Mbps全双工端口连接一般的用户计算机&…

python脚本系列——批量下载清华开源依赖包

一、脚本展示 1.流水线编译过程,执行apk --update add --no-cache xxx 2.报错ERROR: xxx package mentioned in index not found (try apk update) 3.内网环境缺依赖包,需要从清华源下载对应的包,但是需要根据报错一个个找&#x…

[附源码]计算机毕业设计教学辅助系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

1558_AURIX_TC275_RCU模块中的ESR管脚

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) CPU的安全状态,如果有bit为0说明SRAM等内容可能是不可靠的。 1. ESR的管脚是可以实现对外输出复位提示信息功能的。 2. ESR管脚的几种用法:作为输入触发复位、作为…

双重预防体系智能管理系统助力集团施工企业落实双重预防机制建设

安全警钟长鸣,为何事故仍不时发生?说明“安全网”织得不够密。当前我国建筑施工安全生产方面存在诸多薄弱环节和突出问题,强化安全生产主体责任落实,全面构建安全风险分级管控和隐患排查治理双重预防工作机制,坚决防范和遏制较大…

如何应对项目上线前出现Bug?

当你在测试阶段最后两天,发现测试执行情况不理想,和预估的进度相差较大时,是否会焦虑到不知所措?当你在上线前发现一个严重的问题,修复后需要重新执行一些验证测试及增加回归测试,此时你是否会惊慌&#xf…

使用nvm管理(切换)node版本

使用nvm切换node版本1. 完全删除之前的node及npm(清理干净Node: 应用程序,缓存的文件,环境变量 )2. 使用管理员身份安装nvm,下载如下3. 安装完nvm之后找到nvm下载路径对应的文件4. 使用管理员身份打开cmd,n…

β-葡聚糖偶联超顺磁纳米氧化铁颗粒|紫杉醇-二十二碳六烯酸—右旋糖酐偶联物

β-葡聚糖偶联超顺磁纳米氧化铁颗粒 中文名称:β-葡聚糖偶联超顺磁纳米氧化铁颗粒 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体 包装:瓶装/袋装 溶解性:溶于大部分有机溶剂&am…

Jenkins集成appium自动化测试(Windows篇)

目录:导读 一,引入问题 二,搭建思路 三,具体步骤 1,搭建Jenkins 2,新建节点 3,配置节点 4,启动代理 5,新建任务 6,配置任务 7,调试 四…

谁说菜鸟不会数据分析 | 学习笔记

一.前言 数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 数据分析的目的是把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。在实际工作中,数据分析能够帮助管理者进行判断和决策&…

WebDAV之葫芦儿•派盘+麻雀记

麻雀记 支持WebDAV方式连接葫芦儿派盘。 想要一款非常小巧的笔记软件?占用设备内存小,功能非常丰富。比如写便签、清单、图片、倒数日、名片、纪念日、心情、绘图、地址、等等,并且你还可以使用看板、标签以及四象限等功能来帮助你更好地将所写内容归纳整理,快来体验下麻…

不删除分区的情况下怎么合并分区?如何合并磁盘分区

不删除分区的情况下怎么合并分区??本文将向您展示使用 Diskpart 命令和分区管理工具合并磁盘分区的可靠解决方案。请继续阅读,以获得合并磁盘分区的相关信息。 一、合并磁盘分区 也许你的磁盘上,有一个空间很大的分区&#xff0c…