当前位置: 首页 > news >正文

tensorRT安装

官方指导文档:Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

适配很重要!!!! 需要cuda, cuDNN, tensorRT三者匹配。我的cuda11.3 所以对应的cuDNN和tensorRT下载的是如下版本:

cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz

TensorRT-8.0.3.4.Linux.x86_64-gnu.cuda-11.3.cudnn8.2.tar.gz

服务器直接下载,用wget下,但是我没有成功,下了30多k的啥东西我也不知道,所以我是直接本地下载,然后scp传上去的。

解压cuDNN和tensorRT:

tar -xvf cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz
tar -xvf TensorRT-8.0.3.4.Linux.x86_64-gnu.cuda-11.3.cudnn8.2.tar.gz

依次执行下面三行代码:

$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

第一行: 将 cuDNN 库的头文件复制到 CUDA 的包含目录下

第二行:将 cuDNN 库的动态链接库复制到 CUDA 的库目录下

第三行:赋予读取权限给头文件和库文件。

cuDNN就算完事了,查看cuDNN版本:

因为是最新的,所以版本信息在cudnn_version.h里面,不在cudnn.h里

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 这个什么也不会输出

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

下面就是安装tensorRT了。 

查看文件夹:

ls TensorRT-8.0.3.4

先添加环境变量 ,运行成功就ok:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/TensorRT-8.0.3.4/lib

然后进入Python文件夹,我的python是3.8.10:

:~/autodl-tmp/datav/TensorRT-8.0.3.4/python# ls
tensorrt-8.0.3.4-cp35-none-linux_x86_64.whl  tensorrt-8.0.3.4-cp38-none-linux_x86_64.whl
tensorrt-8.0.3.4-cp36-none-linux_x86_64.whl  tensorrt-8.0.3.4-cp39-none-linux_x86_64.whl
tensorrt-8.0.3.4-cp37-none-linux_x86_64.whl

查看对应的文件夹下内置的python文件,cp38就是3.8的 复制对应的文件名:

:~/autodl-tmp/datav/TensorRT-8.0.3.4/python# python3 -m pip install tensorrt-8.0.3.4-cp38-none-linux_x86_64.whl
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Processing ./tensorrt-8.0.3.4-cp38-none-linux_x86_64.whl
Installing collected packages: tensorrt
Successfully installed tensorrt-8.0.3.4

因为我用pytorch,不用tensorflow 所以不用安装uff里面的东西

进入graphsurgeon文件夹安装对应的文件:

(base) root@autodl-container-8f5011bc52-3422f594:~/autodl-tmp/datav/TensorRT-8.0.3.4/graphsurgeon# ls
graphsurgeon-0.4.5-py2.py3-none-any.whl
(base) root@autodl-container-8f5011bc52-3422f594:~/autodl-tmp/datav/TensorRT-8.0.3.4/graphsurgeon# python3 -m pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Processing ./graphsurgeon-0.4.5-py2.py3-none-any.whl
Installing collected packages: graphsurgeon
Successfully installed graphsurgeon-0.4.5

进入onnx_graphsurgeon文件夹安装对应的文件:

(base) root@autodl-container-8f5011bc52-3422f594:~/autodl-tmp/datav/TensorRT-8.0.3.4/onnx_graphsurgeon# ls
onnx_graphsurgeon-0.3.10-py2.py3-none-any.whl
(base) root@autodl-container-8f5011bc52-3422f594:~/autodl-tmp/datav/TensorRT-8.0.3.4/onnx_graphsurgeon# python3 -m pip install onnx_graphsurgeon-0.3.10-py2.py3-none-any.whl
Looking in indexes: http://mirrors.aliyun.com/pypi/simple
Processing ./onnx_graphsurgeon-0.3.10-py2.py3-none-any.whl
Requirement already satisfied: numpy in /root/miniconda3/lib/python3.8/site-packages (from onnx-graphsurgeon==0.3.10) (1.22.4)
Collecting onnxDownloading http://mirrors.aliyun.com/pypi/packages/c4/4a/cb138cbffe65c7c6a4c650e01fbc1c1e1c143797252fc128e4694276c2cc/onnx-1.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.6 MB)|████████████████████████████████| 14.6 MB 5.5 MB/s 
Collecting protobuf>=3.20.2Downloading http://mirrors.aliyun.com/pypi/packages/4c/87/59648989ad7f5ba6fe3c7f8abc555183f28559b6f6cd14ad17a3f0d3094f/protobuf-4.24.1-cp37-abi3-manylinux2014_x86_64.whl (311 kB)|████████████████████████████████| 311 kB 94.7 MB/s 
Requirement already satisfied: typing-extensions>=3.6.2.1 in /root/miniconda3/lib/python3.8/site-packages (from onnx->onnx-graphsurgeon==0.3.10) (4.2.0)
Installing collected packages: protobuf, onnx, onnx-graphsurgeonAttempting uninstall: protobufFound existing installation: protobuf 3.19.4Uninstalling protobuf-3.19.4:Successfully uninstalled protobuf-3.19.4

这就完事了。测试一下:

将头文件路径添加进配置文件去:

"includePath": ["${workspaceFolder}/**","/usr/local/cuda-11.3/targets/x86_64-linux/include/**","/usr/include/opencv4/**","/root/autodl-tmp/datav/TensorRT-8.0.3.4/include/**"  // 添加路径到这里],

头文件和库文件添加到makefile文件的头文件和库文件里去:

include_paths := /usr/local/cuda-11.3/targets/x86_64-linux/include \/usr/include/opencv4 /usr/include/opencv4/opencv \/root/autodl-tmp/datav/TensorRT-8.0.3.4/include/library_paths := /usr/local/cuda-11.3/targets/x86_64-linux/lib \/root/autodl-tmp/datav/TensorRT-8.0.3.4/lib

简单写一下:

#include <NvInfer.h>
#include <cuda_runtime.h>
#include <iostream>
#include <stdio.h>int main(){std::cout << "搞定收工!!" << std::endl;return 0;
}

make一波:

完美。搞定了 直接起飞🛫 

相关文章:

tensorRT安装

官方指导文档&#xff1a;Installation Guide :: NVIDIA Deep Learning TensorRT Documentation 适配很重要&#xff01;&#xff01;&#xff01;&#xff01; 需要cuda, cuDNN, tensorRT三者匹配。我的cuda11.3 所以对应的cuDNN和tensorRT下载的是如下版本&#xff1a; cud…...

电脑重装+提升网速

https://www.douyin.com/user/self?modal_id7147216653720341767&showTabfavorite_collectionhttps://www.douyin.com/user/self?modal_id7147216653720341767&showTabfavorite_collection 零封有哈数的主页 - 抖音 (douyin.com)https://www.douyin.com/user/self?…...

Modelica由入门到精通—为什么要学习Modelica语言

1.为什么要学习Modelica语言 本人正在研究Modelica 多领域统一建模仿真语言&#xff0c;特此做学习入门介绍&#xff0c;希望可以帮助需要的小伙伴。 文章目录 1.为什么要学习Modelica语言一、背景二、系统建模与仿真2.1 系统仿真与系统模型2.2 仿真价值与可靠性 三、物理建模…...

opencv 进阶20-随机森林示例

OpenCV中的随机森林是一种强大的机器学习算法&#xff0c;旨在解决分类和回归问题。随机森林使用多个决策树来进行预测&#xff0c;每个决策树都是由随机选择的样本和特征组成的。在分类问题中&#xff0c;随机森林通过投票来确定最终的类别&#xff1b;在回归问题中&#xff0…...

Spring Boot进阶(58):集成PostgreSQL数据库及实战使用 | 万字长文,超级详细

1. 前言&#x1f525; PostgreSQL是一种广泛使用的开源关系型数据库&#xff0c;具有可靠性高、性能优异、拥有丰富的数据类型和扩展等优点&#xff0c;越来越多的企业和开发者开始使用它来存储和管理数据。而Spring Boot是一种快速开发的框架&#xff0c;可以简化开发过程并提…...

Java | 使用ServerSocket查找TCP可用端口

关注&#xff1a;CodingTechWork 引言 在项目开发中&#xff0c;有一个程序是专门给服务下发tcp端口占用的&#xff0c;但是tcp端口有时候会被其他服务给占用&#xff0c;此时端口就会冲突。本文提供一个工具类进行端口占用判断并返回可用端口。 代码 工具类 Slf4j public …...

【深入浅出C#】章节 9: C#高级主题:LINQ查询和表达式

C#高级主题涉及到更复杂、更灵活的编程概念和技术&#xff0c;能够让开发者更好地应对现代软件开发中的挑战。其中&#xff0c;LINQ查询和表达式是C#高级主题中的一项关键内容&#xff0c;具有以下重要性和优势&#xff1a; 数据处理和操作&#xff1a; 在现代软件中&#xff…...

【Git】git clone --depth 1 浅克隆

问题 PycharmProjects git clone git Cloning into risk-package... remote: Counting objects: 576, done. error: pack-objects died of signal 947/574) error: git upload-pack: git-pack-objects died with error. fatal: git upload-pack: aborting due to possible r…...

搭建 Gitlab

当设置和配置 GitLab 实例并执行诸如创建群组、项目、用户和上传代码等操作时&#xff0c;涉及到多个步骤&#xff0c;每个步骤都有特定的目的。让我们逐步解释每个步骤并说明其背后的原因&#xff1a; 安装必需的软件&#xff1a; yum install -y curl policycoreutils-python…...

CTFhub-sqli注入-报错注入

用到的函数 updatexml(1&#xff0c; &#xff0c;1) concat(0x7e, ,0x7e) group_concat(目标值) right(&#xff0c;32) 1 1 1 union select updatexml(1,concat(0x7e,database(),0x7e),1) 1 union select updatexml(1,concat(0x7e,(select(group_concat(ta…...

中国人民大学与加拿大女王大学金融硕士让金融界短暂迷茫的你发现新的方向

此刻金融职场的你已经站在了金融金字塔的哪个层级&#xff1f;是正在金融界不断的改变自己&#xff0c;迎接着一个又一个的挑战成为了职场精英&#xff1f;还是转行的想法不断敲打着你&#xff0c;但是又不知道自己该干什么&#xff0c;能干什么&#xff0c;发现自己的职业核心…...

PHPEXCEL 导出excel

$styleArray [alignment > [horizontal > Alignment::HORIZONTAL_CENTER,vertical > Alignment::VERTICAL_CENTER],];$border_style [borders > [allborders > [style > \PHPExcel_Style_Border::BORDER_THIN ,//细边框]]];$begin_date $request->beg…...

Elasticsearch简介及安装

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…...

Python 密码破解指南:10~14

协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【OpenDocCN 饱和式翻译计划】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神&#xff0c;试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 十、加…...

Spring、SpringMVC、SpringBoot三者的区别

目录 Spring是什么&#xff1f; SpringMVC是什么&#xff1f; SpringBoot是什么&#xff1f; Spring、SpringMVC、SpringBoot三者之间的关系 Spring是什么&#xff1f; Spring是一个开源的应用程序框架&#xff0c;它提供了一种简易的开发方式&#xff0c;通过依赖注入和面…...

探索PDF校对:为何这是现代数字文档的关键步骤

在今日的数字化浪潮中&#xff0c;文档的创建与分享从未如此频繁。尤其是PDF&#xff0c;作为一个普遍接受的标准文件格式&#xff0c;其在企业、学术和日常生活中的应用已经无处不在。但随之而来的挑战是如何确保文档的准确性和专业性。让我们深入探索PDF校对的重要性以及它为…...

linux 同时kill杀死多进程实践

使用场景 当程序中有使用到多进程且进程数较多的情况&#xff0c;如下图&#xff0c;且需要通过控制台杀死所有的 GSM_run.py 的进程时&#xff0c;利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的&#xff0c;这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…...

全流程R语言Meta分析核心技术

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…...

打家劫舍00

题目链接 打家劫舍 题目描述 注意点 如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警0 < nums[i] < 400 解答思路 最初想的是使用深度优先遍历&#xff0c;到达任意一个位置时&#xff0c;小偷想要偷窃最高金额&#xff0c;一定要选择后面第2个房…...

​LeetCode解法汇总1267. 统计参与通信的服务器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 这里有一幅…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...