Cap0:TensorRT环境搭建

news2025/4/8 12:53:12

文章目录

  • 1、安装TensorRT
    • 1.1、下载TensorRT压缩包
    • 1.2、配置环境变量
  • 2、测试
    • 2.1、测试源码
    • 2.2、编译源码

1、安装TensorRT

TensorRT是针对NVIDIA显卡设备的加速方案,你要使用TensorRT则证明你有一定的深度学习基础,那么在你的Ubuntu上配置好显卡驱动、CUDA以及cuDNN一定是小菜一碟。

现在假设你已经配置好显卡驱动、CUDA以及cuDNN了,现在让我们来配置TensorRT。其实步骤也很简单:1)下载TensorRT压缩包并解压;2)配置环境变量;

1.1、下载TensorRT压缩包

在NVIDIA TensorRT Download
可以看到很多版本,我们选择最新的8.x的版本。点击进入后勾选I Agree To The ...后就会显示所有的8.x版本。EA即early access抢先体验版,GA是general availability即通用稳定版本。很明显我们优先选择GA版本。
在这里插入图片描述
我们选择TAR包安装方式,可以看到针对Ubuntu(Linux x86_64)有两种选择,区别在于不同的CUDA版本。找到适配自己CUDA版本的TAR Package下载。然后找一个长期存放TensorRT解压文件的地方解压(解压命令:tar -zxvf TensorRT.tar.gz)。
在这里插入图片描述

1.2、配置环境变量

在上文的TensorRT文件夹中,提供了库文件供开发者直接使用,所以我们将其库文件的路径加入到环境变量,方便开发时使用。

解压后的目录结构如下,我们需要设置环境变量指向lib文件夹(其中python是whl文件,可以通过pip安装后在python使用tensorrt):

vim ~/.bashrc
# 在最后添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_tensorrt_path/lib

# 保存退出后
source ~/.bash

或者对当前终端临时变量设置:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_tensorrt_path/lib
在这里插入图片描述

2、测试

2.1、测试源码

在测试环节,我们将尝试使用TensorRT的IBuilder创建一个builder,如果能够创建成功不报错,说明环境配置上没有问题。
代码内容如下:

#include <iostream>
#include "NvInfer.h"

// 实现一个简单的Logger类
class Logger : public nvinfer1::ILogger {
    void log(Severity severity, const char* msg) noexcept override {
        if(severity<=Severity::kWARNING){
            std::cout<<msg<<std::endl;
        }
    }
} gLogger;


int main() {
    // 通过创建一个builder验证TensorRT是否配置成功
    nvinfer1::IBuilder* builder = nvinfer1::createInferBuilder(gLogger);
    if (!builder) {    // 如果builder没有被成功创建
        std::cerr << "Failed to create TensorRT builder" << std::endl;
        return 1;
    }

    // 释放资源
    builder->destroy();
    return 0;
}

2.2、编译源码

编译上面的源码有两种方式:g++或者CMakeLists.txt

  • g++方式
    编译命令如下:
    g++ -o main TensorRT_test.cpp -I/usr/local/cuda/include -L/usr/local/cuda/lib64 -I/home/aistudio/TensorRT-8.6.1.6/include -L/home/aistudio/TensorRT-8.6.1.6/lib -lnvinfer
    
    • -o:上面源码的名称为TensorRT_test.cpp,编译后的文件为main
    • -I/usr/local/cuda/include:指定了cuda的头文件所在
    • -L/usr/local/cuda/lib64:指定了cuda的库文件所在
    • -I/home/aistudio/TensorRT-8.6.1.6/include:指定了TensorRT的头文件所在(指向你解压TensorRT的路径)
    • -L/home/aistudio/TensorRT-8.6.1.6/lib:指定了TensorRT的库文件所在
    • -lnvinfer:在TensorRT_test.cpp使用了lnvinfer这样的库
  • CMakeLists.txt方式
    CMakeLists.txt的内容如下:
    cmake_minimum_required(VERSION 3.5)
    project(tensorrt_test)
    
    # 指定CUDA的头文件和库文件
    include_directories(/usr/local/cuda/include)
    link_directories(/usr/local/cuda/lib64)
    
    # 指定TensorRT的头文件和库文件
    include_directories(/home/aistudio/TensorRT-8.6.1.6/include)
    link_directories(/home/aistudio/TensorRT-8.6.1.6/lib)
    
    # 添加可执行文件
    add_executable(main TensorRT_test.cpp)
    
    # 链接TensorRT库
    target_link_libraries(main nvinfer)
    

编译成功后会产生main文件,通过./main执行后会出现:
在这里插入图片描述
红色框不是报错,而是提示信息:Lazy Loading。TensorRT中提供了很多模块,而我们的程序一般只用到部分,所以没有必要一次性全部加载所有模块。Lazy Loading帮助我们仅加载需要使用到的模块,每个模块将在首次使用该模块中的变量或内核时加载,即延迟加载。上面的信息是告诉我们没有启用Lazy Loading,我们可以通过 export CUDA_MODULE_LOADING=LAZY为当前的终端启用Lazy Loading,后续再执行main就没有提示信息了。

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

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

相关文章

【Unity每日一记】角色控制器Character Contorller

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

Django学习记录——管理员-登录注销的实现

1.管理员案例 1.1管理员数据库 1.1.1 表结构 1.1.2 管理员表的建立 class Admin(models.Model):"""管理员表"""username models.CharField(max_length32, verbose_name"用户名")password models.CharField(max_length64, verbose…

前端AR图像增强 + 图像追踪 + 模型渲染

文章目录 背景介绍技术介绍准备目标图片准备3D模型整合到一起演示代码地址背景介绍 本文实现web端html实现AR识别功能 在日常生活中常常看到AR虚拟现实相结合的案例 如下图的效果匹配到目标图片后展示3D模型 从而提高真实度 AR识别 技术介绍 想要达到效果有以下几步是必须的 准…

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…

西软云XMS operate XXE漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

【Java程序员面试专栏 数据结构】一 高频面试算法题:数组

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊数组,包括数组合并,滑动窗口解决最长无重复子数组问题,图形法解下一个排列问题,以及一些常见的二维矩阵问题,所以放到一篇Blog中集中练习 题目…

ChatGpt 使用fetch-event-source实现sse流式处理

microsoft/fetch-event-source 是一个由微软提供的库&#xff0c;用于在客户端和服务器之间建立基于 EventSource 的连接。EventSource 是一种 HTTP 协议&#xff0c;允许服务器向客户端推送实时事件流。该库提供了对 EventSource 协议的封装&#xff0c;使得在前端 JavaScript…

CCF-A类 IEEE VIS‘24 3月31日截稿!探索可视化技术的无限可能!

会议之眼 快讯 IEEE VIS (IEEE Visualization Conference )即可视化大会将于 2024 年 10月13日 -18日在美国佛罗里达州皮特海滩的信风岛大海滩度假举行&#xff01;圣彼得海滩&#xff0c;以其迷人的日落和和煦的微风&#xff0c;作为激发创造力和促进可视化社区内合作的完美背…

数据结构与算法之美学习笔记:55 | 算法实战(四):剖析微服务接口鉴权限流背后的数据结构和算法

目录 前言鉴权背景介绍如何实现快速鉴权&#xff1f;限流背景介绍如何实现精准限流&#xff1f;总结引申 前言 本节课程思维导图&#xff1a; 微服务是最近几年才兴起的概念。简单点讲&#xff0c;就是把复杂的大应用&#xff0c;解耦拆分成几个小的应用。这样做的好处有很多。…

外汇天眼:Sumsub推出播客,讨论最新的欺诈威胁

Sumsub&#xff0c;一家全球验证平台&#xff0c;今天宣布推出自己的播客&#xff0c;名为《什么是欺诈&#xff1f;》。节目将邀请来自各行各业的专业嘉宾&#xff0c;包括人工智能、网络安全、金融科技、加密货币和互联网游戏等领域的专家。对话将集中讨论数字欺诈如何影响企…

服了,阿里云服务器价格和腾讯云1元之差,如何选择?

2024年阿里云服务器和腾讯云服务器价格战已经打响&#xff0c;阿里云服务器优惠61元一年起&#xff0c;腾讯云服务器62元一年&#xff0c;2核2G3M、2核4G、4核8G、8核16G、16核32G、16核64G等配置价格对比&#xff0c;阿腾云atengyun.com整理阿里云和腾讯云服务器详细配置价格表…

Apache Paimon Append Queue表解析

a) 定义 在此模式下&#xff0c;将append table视为由bucket分隔的queue。 同一bucket中的每条record都是严格排序的&#xff0c;流式读取将完全按照写入顺序将record传输到下游。 使用此模式&#xff0c;无需特殊配置&#xff0c;所有数据都将作为queue进入一个bucket&…

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…

【vue3学习笔记】Suspense组件;vue3中的其它改变

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P167节 《Suspense组件》笔记 想要学习suspense&#xff0c;先来了解静态组件与异步组件。 静态引入与异步引入&#xff1a; 在network中将网速调慢&#xff0c;观察在静态引入和异步引入模式下&#xff0c;两个组件的加载…

Programming Abstractions in C阅读笔记:p306-p307

《Programming Abstractions in C》学习第75天&#xff0c;p306-p307总结&#xff0c;总计2页。 一、技术总结 1.Quicksort algorithm(快速排序) 由法国计算机科学家C.A.R(Charles Antony Richard) Hoare&#xff08;东尼.霍尔&#xff09;在1959年开发(develop), 1961年发表…

力扣每日一题 使二叉树所有路径值相等的最小代价 满二叉树 贪心

Problem: 2673. 使二叉树所有路径值相等的最小代价 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 灵神题解 复杂度 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public int minIncrements(int …

瑞_23种设计模式_外观模式

文章目录 1 外观模式&#xff08;Facade Pattern&#xff09;1.1 介绍1.2 概述1.3 外观模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 jdk源码解析 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《23种设计模式》的外观模式篇。本文中的部分…

一篇关于,搬运机器人的介绍

搬运机器人是一种能够自动运输和搬运物品的机器人。它们通常配备有传感器和导航系统&#xff0c;可以在工厂、仓库、医院或其他场所自主移动&#xff0c;并且可以根据预先设定的路径或指令进行操作。 搬运机器人可以用于搬运重物、物料搬运、装卸货物、仓库管理等任务。它们可以…

Git自动忽略dll文件的问题

检查了半天发现是sourcetreee的全局忽略文件导致&#xff0c; 从里面删除dll即可。 我是干脆直接删了全局忽略&#xff0c;太恶心了&#xff0c;如下&#xff1a; #ignore thumbnails created by windows Thumbs.db #Ignore files build by Visual Studio *.exe .vsconfig .s…

如何在Windows部署TortoiseSVN客户端并实现公网连接内网VisualSVN服务端

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…