TensorRT部署-Windows环境配置

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、安装Visual Studio (2019)
  • 二、下载和安装nvidia显卡驱动
  • 三、下载CUDA
  • 四、下载安装cuDNN
  • 五、安装Anaconda
  • 六、TensorRT安装
  • 七、安装Opencv
  • 八、Cmake 配置
  • 总结


前言

TensorRT部署-Windows环境配置


一、安装Visual Studio (2019)

建议安装2019版本,不然容易和cmake版本不匹配。

下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/

注意:安装时可勾选“Python开发”和“C++开发”

二、下载和安装nvidia显卡驱动

首先要在设备管理器中查看你的显卡型号。打开设备管理器,在显示适配器下查看,如下RTX3050。
在这里插入图片描述
NVIDIA 驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn
在这里插入图片描述

下载安装完成之后在cmd中输入执行

nvidia-smi

如果出现以下显卡信息,说明安装成功。在这里插入图片描述
注:图中的 CUDA Version是当前Driver版本能支持的最高的CUDA版本,不是已经安装的版本

三、下载CUDA

cuda下载地址:https://developer.nvidia.com/cuda-downloads?target_os=Windows
在这里插入图片描述

旧版本的CUDA地址:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述

我的版本是11.6
查看cuda版本命令

nvcc --version

在这里插入图片描述
将cuda运行安装,建议默认路径,安装完成后设置环境变量,系统变量里增加CUDA_PATH和CUDA_PATH_V11_8两个环境变量。
在这里插入图片描述

四、下载安装cuDNN

cudnn下载地址:https://developer.nvidia.com/cudnn(记得先登录nvidia账号)

我的cuDNN版本是cuDNN v8.9.6,查看cuDNN方法如下

先进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include,查找include下的
cudnn_version.h文件。

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 6

里面的这个就代表是8.9.6版本
就版本下载地址:https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述
选第一个zip的就行。

安装cuDNN

复制cudnn文件

对于cudnn直接将其解开压缩包,然后需要将bin,include,lib中的文件复制粘贴到cuda的文件夹下
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6。

注意:对整个文件夹bin,include,lib选中后进行复制粘贴

五、安装Anaconda

下载地址:https://www.anaconda.com/
直接安装即可

安装好之后打开Anaconda Prompt,创建虚拟环境。

conda create -n mypytorch python=3.9

安装完成后激活环境

conda activate mypytorch

在所创建的mypytorch环境下安装pytorch, 执行命令

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

六、TensorRT安装

官网教程:https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html

下载安装包:https://developer.nvidia.com/tensorrt

在这里插入图片描述
在这里插入图片描述
我下的是8.6.1.6,接下来按照以下步骤配置一下就行。

  1. 将下载的压缩文件拷贝进来解压
  2. 解压得到TensorRT-8.6.1.6的文件夹,将里边的lib绝对路径添加到环境变量Path中,即 D:\TensorRT-TensorRT-8.6.1.6\lib
  3. 将TensorRT解压位置 D:\TensorRT-TensorRT-8.6.1.6\lib下的所有dll文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin目录下

如果要使用python接口的tensorrt,则需要安装pycuda。
先进入刚刚创建的虚拟环境,在mypytorch虚拟环境下执行:

pip install pycuda

测试TensorRT示例代码

  1. 配置VS2019
    用VS2022打开sampleMNIST示例sln文件: D:\TensorRT-8.6.1.6\samples\sampleOnnxMNIST
    在这里插入图片描述
    a. 将D:\TensorRT-8.6.1.6\lib加入 项目->属性->VC++目录–>可执行文件目录
    在这里插入图片描述
    b.将D:\TensorRT-8.6.1.6\lib加入 VC++目录–>库目录
    在这里插入图片描述
    c. 将D:\TensorRT-8.6.1.6\include加入C/C++ --> 常规 --> 附加包含目录
    在这里插入图片描述

d.将nvinfer.lib、nvinfer_plugin.lib、nvonnxparser.lib和nvparsers.lib加入链接器–>输入–>附加依赖项,再添加这个D:\TensorRT-8.6.1.6\lib*.lib
在这里插入图片描述
在这里插入图片描述
配置完成后,点击上面的生成->生成解决方案进行编译
在这里插入图片描述

七、安装Opencv

下载地址:https://opencv.org/releases/
我下的是4.7,安装后记得配置系统环境变量,D:\opencv\build\x64\vc16\bin
在这里插入图片描述

八、Cmake 配置

下载tensorrtx https://download.csdn.net/download/m0_70420861/88754757spm=1001.2014.3001.5503
修改CMakeLists.txt,根据自己电脑上的软件位置和GPU架构做相应的修改。如下,改了opencv和Tensorrt的地址还有这个set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-std=c++11;-g;-G;-gencode;arch=compute_86;code=sm_86)架构,查一下自己的是不是86

cmake_minimum_required(VERSION 3.10)project(yolov8)add_definitions(-std=c++11)
add_definitions(-DAPI_EXPORTS)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Release)#change to your own path
##################################################
set(OpenCV_DIR "D:/opencv/opencv/build")
set(TRT_DIR "D:/TensorRT/TensorRT-8.6.1.6")
################################################### setup CUDA
find_package(CUDA REQUIRED)
message(STATUS "    libraries: ${CUDA_LIBRARIES}")
message(STATUS "    include path: ${CUDA_INCLUDE_DIRS}")
include_directories(${CUDA_INCLUDE_DIRS})
include_directories(${Dirent_INCLUDE_DIRS}) #change to your GPU own compute_XX
###########################################################################################
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-std=c++11;-g;-G;-gencode;arch=compute_86;code=sm_86)
###############################################################################################
enable_language(CUDA)  # add this line, then no need to set up cuda path in vs
####include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${TRT_DIR}/include)
include_directories(${TRT_DIR}/samples/common)include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/plugin)
link_directories(${TRT_DIR}/lib)add_library(myplugins SHARED ${PROJECT_SOURCE_DIR}/plugin/yololayer.cu)
target_link_libraries(myplugins nvinfer cudart)find_package(OpenCV)
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")include_directories(${OpenCV_INCLUDE_DIRS})file(GLOB_RECURSE SRCS ${PROJECT_SOURCE_DIR}/src/*.cpp ${PROJECT_SOURCE_DIR}/src/*.cu)
add_executable(yolov8 ${PROJECT_SOURCE_DIR}/main.cpp ${SRCS})target_link_libraries(yolov8 nvinfer)
target_link_libraries(yolov8 cudart)
target_link_libraries(yolov8 myplugins)
target_link_libraries(yolov8 ${OpenCV_LIBS})

安装cmake:https://cmake.org/

  • 执行cmake-gui来配置project
  • 点击 Configure并设置环境
  • 点击Finish,等待Configure done
  • 点击Generate并等待Generate done
  • 点击Open Project

在这里插入图片描述

总结

学习笔记–TensorRT部署-Windows环境配置

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

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

相关文章

nginx+lua配置,一个域名配置https,docker集群使用

没安装kua的先安装lua 没有resty.http模块的,许配置 nginxlua配置,一个域名配置https,docker集群使用,一个域名配置https管理整个集群 lua做转发(方向代理) 1、ad_load.lua文件 ngx.header.content_typ…

Servlet系列两种创建方式

一、使用web.xml的方式配置(Servlet2.5之前使用) 在早期版本的Java EE中,可以使用XML配置文件来定义Servlet。在web.xml文件中,可以定义Servlet的名称、类名、初始化参数等。然后,在Java代码中实现Servlet接口&#x…

基于NLP的恶意网页识别

基于NLP的恶意网页识别 基于NLP的恶意网页识别引言项目目录回顾优化HTML标签提取结果使用预训练模型Fine-tune数据处理和模型训练模型训练与评估模型导出部署与预测总结 基于NLP的恶意网页识别 引言 欢迎阅读《 基于NLP的恶意网页识别》,在前三篇中,我…

VS+QT编译环境中字符乱码问题详解

字符乱码问题详解 1 编码字符集与字符编码方式2 字符乱码原因3 字符乱码解决方案 在解释字符乱码问题之前,我们需要先理清一些基本概念 1 编码字符集与字符编码方式 编码字符集 编码字符集是所有字符以及对应代码值的集合。编码字符集中的每个字符都对应一个唯一的…

npm换源

检查现在的源地址 npm config get registry 使用淘宝镜像 npm config set registry https://registry.npm.taobao.org 使用官方镜像 npm config set registry https://registry.npmjs.org/

jeecgboot 前端bug or 后端 看图

无法显示文本 只能显示value 很恶心 如果用 varchar 就可以 不知道有没有别的方式 用int 解决 ,可能是我没有发现好的方法

渗透测试之如何部署和使用Supershell

环境: Supershell v2.0.0 Centos 7.6 docker v. 21 问题描述: 如何部署和使用Supershell 解决方案: 1、下载最新release源码,解压后进入项目目录 wget https://github.com/tdragon6/Supershell/releases/latest/download/Supershell.tar.gz如果在线下很慢,用浏览…

测试驱动开发:基于Jenkins+GoTest+HTML的持续化集成

目录 前言 一、项目框架 1.项目迭代 2.项目时序图 3.项目测试执行 二、项目具体实现 1.创建流水线 2.拉取代码 3.执行测试代码 4.生成测试报告 5.报告内容解读 6.数据统计 7.邮件通知 8.企业微信通知 三、项目遇到的问题 1.go test -args 2.go test生…

【Qt】Qt配置

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt SDK下载 二、配置环境变量 三、新建工程(QWidget) 四、QWidg…

Kafka-消费者-KafkaConsumer分析-SubscriptionState

KafkaConsumer从Kafka拉取消息时发送的请求是FetchRequest(具体格式后面介绍),在其中需要指定消费者希望拉取的起始消息的offset。 为了消费者快速获取这个值&#xff0c;KafkaConsumer使用SubscriptionState来追踪TopicPartition与offset对应关系。 图展示了SubscriptionSta…

物联网与智慧城市的无界未来:如何打破传统束缚,开启智能生活新篇章

目录 一、物联网&#xff1a;连接万物的技术革命 1、物联网的发展历程 2、物联网的核心技术 二、智慧城市&#xff1a;未来城市的蓝图与挑战 1、智慧城市的蓝图 2、智慧城市建设面临的挑战 3、应对挑战的措施 三、物联网与智慧城市的融合&#xff1a;打破传统束缚&…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin

Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin 在 Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图的圆切图&#xff0c;Kotlin&#xff08;4&#xff09;-CSDN博客 的…

使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA

目前基于大模型的信息检索有两种方法&#xff0c;一种是基于微调的方法&#xff0c;一种是基于 RAG 的方法。 信息检索和知识提取是一个不断发展的领域&#xff0c;随着大型语言模型&#xff08;LLM&#xff09;和知识图的出现&#xff0c;这一领域发生了显着的变化&#xff0…

全球移动通信市场,正在经历哪些新变化?

2023年已经结束了。回顾这一年的全球移动通信市场&#xff0c;如果让我用一个词来总结&#xff0c;那就是——“厚积薄发”。 从表面上来看&#xff0c;似乎并没有什么大事情发生。但实际上&#xff0c;平静的湖面之下&#xff0c;却是一片波涛汹涌、风云激荡。 无论是消费互联…

Zookeeper启动报错常见问题以及常用zk命令

Zk常规启动的命令如下 sh bin/zkServer.sh start 启动过程如果存在失败&#xff0c;是没办法直接看出什么问题&#xff0c;只会报出来 Starting zookeeper … FAILED TO START 可以用如下命令启动&#xff0c;便于查看zk启动过程中的详细错误 sh bin/zkServer.sh start-for…

ros2 基础学习16 - RQT:模块化可视化工具

RQT&#xff1a;模块化可视化工具 ROS中的Rviz功能已经很强大了&#xff0c;不过有些场景下&#xff0c;我们可能更需要一些简单的模块化的可视化工具&#xff0c;比如只显示一个摄像头的图像&#xff0c;使用Rviz的话&#xff0c;难免会觉得操作有点麻烦。 此时&#xff0c;我…

nexus3 npm-hosted仓库迁移

迁移背景&#xff1a; 从nexus 3.33 升级到 nexus 3.64 过程中&#xff0c;私服 npm-hosted 无法上传。由于这个 npm-hosted 和 npm-proxy 放的同一个 blob存储&#xff0c;无法单独拆除去&#xff0c;所以采用迁移的方式 迁移思路&#xff1a; down下来 npm-hosted 仓库&am…

pytest学习和使用-pytest如何进行分布式测试?(pytest-xdist)

1 什么是分布式测试&#xff1f; 在进行本文之前&#xff0c;先了解些基础知识&#xff0c;什么是分布式测试&#xff1f;分布式测试&#xff1a;是指通过局域网和Internet&#xff0c;把分布于不同地点、独立完成特定功能的测试计算机连接起来&#xff0c;以达到测试资源共享…

C——语言内存函数

目录 一、memcpy的使用和模拟实现 1.memcpy函数原型 2.memcpy函数的使用 3.memcpy函数的模拟实现 二、memmove的使用和模拟实现 1.memmove函数原型 2.memmove函数的使用 3.memmove函数的模拟实现 三、memset的使用 1.memset函数原型 2.memset函数的使用 四、memcmp…

蓝桥杯备赛 day 3 —— 高精度(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 高精度的概念 &#x1f4c1; 高精度加法和其模板 &#x1f4c1; 高精度减法和其模板 &#x1f4c1; 高精度乘法和其模板 &#x1f4c1; 高精度除法和其模板 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文…