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安装
官方指导文档:Installation Guide :: NVIDIA Deep Learning TensorRT Documentation 适配很重要!!!! 需要cuda, cuDNN, tensorRT三者匹配。我的cuda11.3 所以对应的cuDNN和tensorRT下载的是如下版本: 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 多领域统一建模仿真语言,特此做学习入门介绍,希望可以帮助需要的小伙伴。 文章目录 1.为什么要学习Modelica语言一、背景二、系统建模与仿真2.1 系统仿真与系统模型2.2 仿真价值与可靠性 三、物理建模…...

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

Spring Boot进阶(58):集成PostgreSQL数据库及实战使用 | 万字长文,超级详细
1. 前言🔥 PostgreSQL是一种广泛使用的开源关系型数据库,具有可靠性高、性能优异、拥有丰富的数据类型和扩展等优点,越来越多的企业和开发者开始使用它来存储和管理数据。而Spring Boot是一种快速开发的框架,可以简化开发过程并提…...
Java | 使用ServerSocket查找TCP可用端口
关注:CodingTechWork 引言 在项目开发中,有一个程序是专门给服务下发tcp端口占用的,但是tcp端口有时候会被其他服务给占用,此时端口就会冲突。本文提供一个工具类进行端口占用判断并返回可用端口。 代码 工具类 Slf4j public …...
【深入浅出C#】章节 9: C#高级主题:LINQ查询和表达式
C#高级主题涉及到更复杂、更灵活的编程概念和技术,能够让开发者更好地应对现代软件开发中的挑战。其中,LINQ查询和表达式是C#高级主题中的一项关键内容,具有以下重要性和优势: 数据处理和操作: 在现代软件中ÿ…...
【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 实例并执行诸如创建群组、项目、用户和上传代码等操作时,涉及到多个步骤,每个步骤都有特定的目的。让我们逐步解释每个步骤并说明其背后的原因: 安装必需的软件: yum install -y curl policycoreutils-python…...

CTFhub-sqli注入-报错注入
用到的函数 updatexml(1, ,1) concat(0x7e, ,0x7e) group_concat(目标值) right(,32) 1 1 1 union select updatexml(1,concat(0x7e,database(),0x7e),1) 1 union select updatexml(1,concat(0x7e,(select(group_concat(ta…...
中国人民大学与加拿大女王大学金融硕士让金融界短暂迷茫的你发现新的方向
此刻金融职场的你已经站在了金融金字塔的哪个层级?是正在金融界不断的改变自己,迎接着一个又一个的挑战成为了职场精英?还是转行的想法不断敲打着你,但是又不知道自己该干什么,能干什么,发现自己的职业核心…...

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简介及安装
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

Python 密码破解指南:10~14
协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神,试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 十、加…...
Spring、SpringMVC、SpringBoot三者的区别
目录 Spring是什么? SpringMVC是什么? SpringBoot是什么? Spring、SpringMVC、SpringBoot三者之间的关系 Spring是什么? Spring是一个开源的应用程序框架,它提供了一种简易的开发方式,通过依赖注入和面…...

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

linux 同时kill杀死多进程实践
使用场景 当程序中有使用到多进程且进程数较多的情况,如下图,且需要通过控制台杀死所有的 GSM_run.py 的进程时,利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的,这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…...
全流程R语言Meta分析核心技术
Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…...

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

LeetCode解法汇总1267. 统计参与通信的服务器
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 这里有一幅…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...