Ubuntu18.04、CUDA11.1安装TensorRT

news2024/11/24 14:21:00

最近想试试推理加速,因为跑的预测有点慢,一开始是打算从数据处理上实现,采用并行数据处理,但是这个有所难度,而且有几张显卡可用,就想着怎么把显卡利用上。而且了解到推理加速后,就先尝试一下看看效果,这里尝试的是tensorrt,暂记一下设置过程。

首先是tensorrt的安装,有很多教程,但是版本不一定匹配,这里大家可以找到根据自己的软件版本进行安装的方法。

1、TensorRT版本匹配

明确从哪里去安装,官方安装包在哪,怎么装对的版本,怎么办版本匹配上,不排除非官方匹配版本存在兼容情况,但是根据官方版本问题会少很多。
TensorRT是英伟达提出的,用来加速数据处理,
官网介绍:https://docs.nvidia.com/deeplearning/tensorrt/index.html
在这里插入图片描述
tensorRT的安装和操作系统 windows还是Linux,CUDA版本,cudnn版本,gcc版本有关联,要根据自己已经装了的软件或想要的版本下载正确的tensorRT版本。下面是最新的版本的版本匹配查询网站。
版本查询网站:https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html
在这里插入图片描述
继续下滑鼠标,可以看到对具体系统的安装版本需求:
在这里插入图片描述
如果要查询其他版本,在当前页面找到如下点击:
在这里插入图片描述
打开后可以看到多个版本的系列tensorRT:
在这里插入图片描述找到想要的版本,确定安装的相关软件的版本进行下载安装,比如我是Ubuntu18.04,装了cuda11.1,我要找到合适的tensorrt版本,我就从里面点开来看,找到合适的版本,最终我找到了tensorrt7.2.3

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
按照上面的方法。基本可以确定安装版本不会搞错。

2、TensorRT下载安装

接下来是下载安装,这个有点复杂,需要注册,答题,填问卷啥的,随便填就行了,填完了可以下载到需要的版本。

如下页面可进入下载,网址是:https://developer.nvidia.com/tensorrt

在这里插入图片描述
进入后界面如下:

在这里插入图片描述
在这里插入图片描述
我下载的是压缩包文件,下载之后解压就行,解压命令:

tar xzvf TensorRT-${version}.${os}.${arch}-gnu.${cuda}.${cudnn}.tar.gz

在这里插入图片描述
解压之后,进入里面的文件夹,通过pip install xxx.whl 命令,安装相关内容。
在这里插入图片描述

3、验证及相关bug解决

至此基本上装完了TensorRT,可以在python命令行里验证一下能不能导入库

import tensorrt
import uff

这两个导入一下,我是第二个导入时碰到了 找不到tensorflow模块的错误,自己又装了一个tensorflow2.6.0,然后就可以正常导入这两个库了。

注意:解压tensorRT后尽量把里面的 libinclude文件夹中的内容拷贝到 /usr/lib//usr/include/ 文件夹下,避免系统找不到相关库,不然就用export的办法,把这两个库的路径加到系统里。
碰到的bug:
1、ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory
第一个就是把tensorRT里面的 lib和include文件夹中的内容拷贝到 /usr/lib/ 和 /usr/include/ 文件夹下,在里面直接找到这个文件夹拷到/usr/lib/就行
2、libnvrtc.so.11.1: cannot open shared object file: No such file or directory 这个不太一样,解决办法

find -name libnvrtc.so.11.1

找到了一并拷贝到 /usr/lib/ 就可以解决,

基本上这就完成了在Ubuntu18.04、CUDA11.1安装TensorRT7.2.3,后面也成功用起来了,用的框架是yolov5,不过还没有对比速度是否有提升。

另外还涉及到pycuda的安装,我不确定这个的安装是否是必须的,官方说要装,但我没装,可能我现在是onnx导出的engine文件运行并不需要这个。
在这里插入图片描述

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

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

相关文章

Github项目推荐:在线rename

项目地址 GitHub - JasonGrass/rename: 在线文件批量重命名 项目简介 一个开源的在线重命名文件工具。利用了新的浏览器API获取文件句柄,在不上传文件的情况下对文件进行重命名。可以作为前端文件操作api学习范例。 项目截图

HTML5刷题笔记

在 HTML5 中,onblur 和 onfocus 是:事件属性 onblur 和 onfocus 属于焦点事件: onblur:失去焦点 onfocus:获取焦点 HTML5事件window 事件属性 针对 window 对象触发的事件: onafterprint script 文档…

【Chrome】ERR_SSL_PROTOCOL_ERROR问题

文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后,有的https访问不了,报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错,顺着这个思路接着查看到大佬的结论:服务器nginx使用的openssl版本过低&#…

新下载的Redis启动任务管理器不显示服务

遇到问题:刚刚下载的Redis解压后启动,在任务管理器无法找到Redis服务 但是Redis确实是启动的 解答: 那是因为还需要使用管理员的身份打开终端运行安装一次 命令如下: redis-server.exe --service-install redis.windows.conf --…

Ubuntu 常用命令之 reboot 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 reboot命令在Ubuntu系统中用于重新启动系统。这个命令通常需要管理员权限才能执行。 reboot命令的参数如下 -f 或 --force:强制重启,不调用shutdown -r进行友好重启。-p 或 --poweroff:在重启…

7-1 单身狗(PTA - 数据结构)

由于这道题在留的作业中,排序和查找都有,所以我先写这道题(图的先放放) “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。 输入格式: 输入第一行…

【Earth Engine】协同Sentinel-1/2使用随机森林回归实现高分辨率相对财富(贫困)制图

目录 1 简介与摘要2 思路3 效果预览4 代码思路5 完整代码6 后记 1 简介与摘要 最近在做一些课题,需要使用Sentinel-1/2进行机器学习制图。 然后想着总结一下相关数据和方法,就花半小时写了个代码。 然后再花半小时写下这篇博客记录一下。 因为基于多次拍…

二叉搜索树(AVL树,红黑树)+封装

就像学习其他的东西一样,首先我们要知道二叉搜索树的作用和定义是什么! 首先顾名思义,二叉搜索树肯定是被用来为搜索服务的数据结构。 并且它的搜索效率可以达到logN,也就是一百万的数据也只用查找几十次(AVL树可以控制在20次左…

日常工作中常用的抓包工具都有哪些呢?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

电子合同的分类有哪些?

1、从电子合同订立的具体方式的角度,可分为利用电子数据交换订立的合同和利用电子邮件订立的合同; 2、从电子合同标的物的属性的角度,可分为网络服务合同、软件授权合同、需要物流配送的合同等; 3、从电子合同当事人的性质的角度…

使用Gitee中的CI/CD来完成代码的自动部署与发布(使用内网穿透把本地电脑当作服务器使用)

📚目录 📚简介:⚙️ 所需工具:💨内网穿透配置💭工具介绍✨命令安装🎊配置Cpolar🕳️关闭防火墙🥛防火墙端口放行规则(关闭防火墙可以忽略)🍬小章总…

【python】作用域与闭包 || global与nonlocal

python作用域 其他语言的作用域:块级、函数、类、模块、包等由小到大的级别但是python没有块级(if语句块、for语句块),所以if中定义的变量,相当于普通语句 >>> if True: # if语句块没有作用域x …

华为云之ECS云产品快速入门

华为云之ECS云产品快速入门 一、ECS云服务器介绍二、本次实践目标三、创建虚拟私有云VPC1.虚拟私有云VPC介绍2.进入虚拟私有云VPC管理页面3.创建虚拟私有云4.查看创建的VPC 四、创建弹性云服务器ECS——Linux1.进入ECS购买界面2.创建弹性云服务器(Linux)——基础配置步骤3.创建…

如何使用 templ 在 Go 中编写 HTML 用户界面?

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 简介 templ 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件&#xff0c…

基于改进YOLOv7的绝缘子缺陷检测算法

摘要 现有的检测方法面临着巨大的挑战,在识别绝缘子的微小缺陷时,针对输电线路图像与复杂的背景。为保证输电线路的安全运行,提出一种改进的YOLOv 7模型,以提高检测结果。 首先,基于K-means对绝缘子数据集的目标盒进…

Redis“垃圾”过期死键管理与优化

【作者】付磊 Redis死键的定义不尽相同,通常有两种: 写到Redis里后,由于过期时间过长或者压根没有过期时间,加之长期不访问,这类key可以被称为死键。 明明已经过了过期时间,但还占用Redis内存&#xff08…

利用tf-idf对特征进行提取

TF-IDF是一种文本特征提取的方法,用于评估一个词在一组文档中的重要性。 一、代码 from sklearn.feature_extraction.text import TfidfVectorizer import numpy as npdef print_tfidf_words(documents):"""打印TF-IDF矩阵中每个文档中非零值对应…

Nacos-服务发现与配置管理v1.0

Nacos - 服务发现和配置管理 教学目标 1)能够理解微服务架构的特点 2)能够理解服务发现的流程 3)能够说出Nacos的功能 4)掌握Nacos的安装方法 5)掌握RESTful服务发现开发方法 6)掌握Dubbo服务发现开…

AIGC绘画关键词 - 神兽类(一)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

JNI学习(二)

静态注册 接着上篇博客学习 JNI函数 JNIEXPORT void JNICALL Java_com_example_jnidemo_TextDemo_setText(JNIEnv *env, jobject this, jstring string){ __android_log_print(ANDROID_LOG_ERROR, "test", "invoke set from C\n");char* str (char*)(*e…