TensorRT | 在多个GPU中指定推理设备

news2024/11/15 13:29:19

        说实话,之前我在笔记本上都一直都是只有一块N卡,所以没有过多关注过这个问题。然而昨天有个人问我,TensorRT怎么在多个GPU中指定模型推理GPU设备?我查了一下,发现官方有几个不同的解决方案,个人总结了一下,主要的做法有两种。

01 配置环境变量支持

        该方法的好处是不需要修改代码,通过配置环境变量就可以实现指定的GPU运行,缺点是缺乏灵活性,特别是想切换不同GPU实现模型推理的时候,这个方法就弊端就比较明显。

   CUDA编程中支持的指定GPU设备的环境变量为:

CUDA_VISIBLE_DEVICES

通过该系统的环境变量可以设置指定的单个GPU编号或者多个GPU编号合集,然后在程序测试与调试环境中使用。通过这种方式指定GPU编号执行模型推理,就无需修改代码,实现在单一指定的GPU上运行TensorRT推理程序。

02 代码指定GPU设备执行

        一台机器上可能有多个GPU设备,通过CUDA编程可以查询机器上所有的GPU设备,查询这些设备的属性以及决定使用哪个GPU设备作为当前设备。

cudaGetDeviceCount

该函数可以查询到当前机器上GPU设备数目,然后遍历查询每个GPU设备的属性。官方教程给出的代码如下:

根据查询的设备数目,GPU编号从0开始,默认情况下当前使用的设备就是编号为0的GPU设备,通过函数cudaSetDevice()可以修改运行时使用GPU设备,在初始化TensorRT之前,先通过cudaSetDevice()函数修改默认的当前设备,然后再初始化就可以把TensorRT的模型绑定到指定编号的GPU设备上推理。以我的笔记本上为例,设置当前的GPU设备,然后初始化TensorRT代码如下:

 在多个GPU设备上执行多个模型推理的初始化代码如下:

关于延时加载

TensorRT8.6支持CUDA Lazy Loading(延时加载),开发者文档上说这种方式可以有效降低GPU显存与内存使用,加速初始化,节省模型初始化时间,可以通过环境变量配置实现延时加载支持,相关环境变量为:

CUDA_MODULE_LOADING=LAZY

参考资料:

https://developer.nvidia.com/blog/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#multi-device

 

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

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

相关文章

面经 | webpack

webpack webpackloader基本语法rules自定义loader 你可以写哪些loader?常见loader pluginwebpack生命周期 [参考](https://blog.csdn.net/qq_17335549/article/details/137561075)常见plugin webpack 一个打包工具,就和npm是一个包管理工具差不多。一般…

聚观早报 | 小米新车规划曝光;北京汽车官宣更换标志

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 9月24日消息 小米新车规划曝光 北京汽车官宣更换标志 转转全资收购红布林 全新岚图梦想家乾崑版上市 微软拟推出…

SpringCloud各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)

目录 1. 各依赖版本选择2. 核心功能与组件3. 创建项目3.1 注意事项3.2 依赖 1. 各依赖版本选择 SpringCloud: 2023.0.1SpringBoot: 3.2.4。参考Spring Cloud Train Reference Documentation选择版本 SpringCloud Alibaba: 2023.0.1.0*: 参考Spring Cloud Alibaba选择版本。同时…

深度学习——线性回归

房价预测 线性模型 单层神经网络 损失函数的均方误差 训练数据 参数学习 显示解 偏导数少了负号 最优解y旁边的X少了转置符号 梯度下降 学习率选择 小批量随机梯度下降 批量规模的选择 总结

【机器学习-无监督学习】k均值聚类

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

ANSYS Workbench随机球体多孔结构三维模型

三维多孔结构广泛存在于材料科学、生物医学工程、土木工程等领域,如泡沫金属、骨组织、过滤介质等,通过ANSYS Workbench对三维多孔结构进行有限元模拟,是对其进行性能分析的有效手段。 在ANSYS内建立多孔结构模型可采用CAD随机球体插件专业…

Linux查看java服务所在目录

1、java服务jar的PID jps -l 2、定位目录 ls -l /proc/[pid]/cwd

关于QSizeGrip在ui界面存在布局的情况下的不显示问题

直接重写resizeEvent你会发现:grip并没有显示 void XXXXX::resizeEvent(QResizeEvent *event) {QWidget::resizeEvent(event);this->m_sizeGrip->move(this->width() - this->m_sizeGrip->width() - 3,this->height() - this->m_sizeGrip->…

[spring]MyBatis介绍 及 用MyBatis注解操作简单数据库

文章目录 一. 什么是MyBatis二. MyBatis操作数据库步骤(使用注解)创建工程创建数据库创建对应实体类配置数据库连接字符串写持久层代码单元测试 三. MyBatis基础操作 使用注解打印日志参数传递增删改查 一. 什么是MyBatis 简单来说 MyBatis 是更简单完成程序和数据库交互的框架…

langchain的构成

1.简介 langchain的构成其包含langchain-core,langchain-community,langchain,langgraph,langserve,langSmith。 2,构件的详解 ‌LangChain Core‌ ‌LangChain Core‌是LangChain框架的核心组成部分,它包含了不同组件的基本抽象以及将它们组合在一起…

ruoyi-flowable流程设计配置的表单时,级联选择如何配置??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

为什么自学python那么难?

在科技日新月异的今天,编程能力已成为一项备受追捧的技能。仿佛一夜之间,各种编程学习资源如雨后春笋般涌现,让人眼花缭乱。然而,许多人投身于自学编程的行列,却往往在半路折戟沉沙。究竟是什么原因让自学编程变得如此…

如何重置企业/媒体/组织/个体户类型管理员微信号

请您通过浏览器打开该网页https://mp.weixin.qq.com/acct/findacct?actionscan重置公众号绑定邮箱和管理员微信号, 在申请找回帐号的页面填写的对公账户信息和运营者信息可以和注册不一致,完成找回后,管理员微信号会同步更新; …

【小程序】微信小程序课程 -3 快速上手之常用方法

目录 1、 对话框 1.1 模态对话框 1.2 消息对话框 2、 存储 2.1 同步 2.1.1 同步保存数据 2.1.2 同步获取数据 2.1.3 同步删除数据 2.1.4 同步清空数据 2.2 异步 2.2.1 异步保存数据 2.2.2 异步获取数据 2.2.3 异步删除数据 2.2.4 异步清空数据 3、 上拉加载更多…

代码随想录算法训练营第三十八天 | 322. 零钱兑换,279.完全平方数,139.单词拆分,多重背包

322.零钱兑换 题目链接 解题过程 递推公式写对了&#xff0c;但对于特殊情况的案例没有想清楚&#xff0c;如不能凑成则需返回-1dp[i] min(dp[i], dp[i - coin] 1); 完全背包 class Solution { public:int coinChange(vector<int>& coins, int amount) {vector…

SSM影院订票系统—计算机毕业设计源码35370

摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个SSM影院订票系统&#xff1b;订票系统的管理工作系统化、规范化&#xff0c;也会提高平台形象&#xff0c;提高管理效率。 本影院订票系…

11周年 | 初心不改,焕新前行,奔赴下一个10年!

2024年8月13日&#xff0c;爱加密正式迎来了11岁生日&#xff0c;在爱加密肩负着崇高使命踏浪而行的10年间&#xff0c;蓝绿色的品牌标识一直伴于左右。随着时代的变迁以及市场需求的不断变化&#xff0c;企业同样也需要在品牌上做出创新递进&#xff0c;从而更加适应市场竞争的…

AI知识库助力电商企业打造精准营销策略

在数字化时代&#xff0c;电商行业的竞争日益激烈&#xff0c;消费者需求的多样化和个性化趋势愈发明显。为了在这场没有硝烟的战争中脱颖而出&#xff0c;电商企业纷纷借助人工智能技术&#xff0c;特别是AI知识库&#xff0c;来打造更加精准、高效的营销策略。本文将深入探讨…

【运维自动化-作业平台】如何使用全局变量之命名空间类型?

命名空间类型的全局变量主要适用场景是同一批主机在多个步骤间需要传递独立的变量值&#xff0c;比如内网ip、hostame&#xff0c;每台主机都是不同的变量值。而字符串变量是全局针对所有主机所有步骤都是一样的变量值。实操演示 例&#xff1a;定义一个local_ip的命名空间变量…

单利复利计算器使用方法

单利复利计算器使用方法 背景 这个工具主要是小部分人用&#xff0c;因为以前要算个单利复利的时候&#xff0c;搜索出来的工具上来就要获取你的手机号&#xff0c;进去之后再收费。如果使用频繁的话&#xff0c;可以购买他们的更多服务&#xff0c;产品功能更多更完善。偶尔…