tensorRT的完整安装以及常见错误 export failure: [WinError 127] 找不到指定的程序。

news/2025/2/21 4:24:11/

安装CUDA

查看本机适配的CUDA 版本
要想安装TensorRT必须要先安装CUDA和cudnn,那么首先需要去查看自己电脑的英伟达驱动程序程序,位置如下:

NVIDIA控制面板->帮助->系统信息->组件,如下图所示本机适配CUDA版本为11.7

在window桌面右击打开控制面板
在这里插入图片描述

在这里插入图片描述
下载CUDA安装包
通过关键字 cuda 11.7 download 在谷歌上搜索下载链接,进入CUDA 安装包的下载地址如下:

CUDA Toolkit 11.7 Downloads | NVIDIA Developer

按照机器适配版本,下载好安装包;如果没有帐户,需要先进行注册
在这里插入图片描述
下载cuDNN安装包
进入英伟达官方网站,选择和自己适配的cuDNN版本,地址如下:

cuDNN Download | NVIDIA Developer

如果没有帐户,需要先进行注册
在这里插入图片描述
下载TensorRT安装包
进入英伟达官网,选择和自己机器适配的TensorRT,地址如下:

NVIDIA TensorRT 8.x Download | NVIDIA Developer

在这里插入图片描述
流程化安装软件包
(1)安装CUDA
双击exe文件解压
在这里插入图片描述

NVIDIA安装->仅需一路点击确下一步然后结束

安装成功的标志:
在这里插入图片描述

安装cuDNN

解压与拷贝
在这里插入图片描述
因cuDNN属于是CUDA的一个补丁包,因此不要安装,仅需要将上述三个bin\include\lib文件夹中的相关文件拷贝到CUDA安装位置的bin,include,lib\x64文件夹中。

本电脑默认CUDA路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6

验证

分别运行如下两个命令,若均为pass验证通过,则表示安装成功。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite>bandwidthTest.exe

在这里插入图片描述

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite>deviceQuery.exe

在这里插入图片描述

安装TensorRT

解压安装包后得到如下所示图:
在这里插入图片描述

从官网下载tensorrt window版本,安装完成tensorrt以后再pip install python对应的whl文件。

pip install TensorRT-8.6.1.6\python\tensorrt_dispatch-8.6.1-cp37-none-win_amd64.whl
pip install TensorRT-8.6.1.6\python\tensorrt_lean-8.6.1-cp37-none-win_amd64.whl
pip install TensorRT-8.6.1.6\python\tensorrt-8.6.1-cp37-none-win_amd64.whl
pip install TensorRT-8.6.1.6\graphsurgeon\graphsurgeon-0.4.6-py2.py3-none-any.whl
pip install TensorRT-8.6.1.6\onnx_graphsurgeon\onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl

在python中执行import tensorrt as trt代码会出现如下错误

错误1:

export failure: [WinError 127] 找不到指定的程序。

我们需要把D:\tensorrt\TensorRT-8.6.1.6\lib对应的目录放到window环境变量即可。
在这里插入图片描述

错误2:还是同样的错误,参考链接2,把trt和torch的顺序互调,先import tensorrt,问题解决。产生该问题的原因是windows安装的cuda的版本和pytorch安装的cuda版本不一致。我的windows安装的cuda版本是11.7,而pytorch安装的版本是11.3,当更新pytorch的本到11.7后,问题便可以解决。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
@feiyuhuahuo I think your OSError problem is due to the different cuda version of your C:\Users\feiyuhuahuo\python_base\lib\site-packages\torch\lib\ and C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x.
When your import tensorrt, it will load soma cuda dll from NVIDIA GPU Computing Toolkit, while the torch load dll from torch/lib, you can check this.While even if I hide the NVIDIA GPU Computing Toolkit path from system and add torch/lib in the PATH to let the tensorrt load dll from torch/lib, I also meet some problems.Don't know if this problem only happens on windows.
import tensorrt as trt
import torch

在这里插入图片描述

问题思考

至此,tensorrt已经顺利安装,最大的心得是
cuda的版本,cudnn的版本,tensorrt的版本,pytorch的版本一定要一致或者相互兼容,否则会有各种奇奇怪怪的问题。

软件版本
cudacuda_11.7.0_516.01_windows.exe
cudnncudnn-windows-x86_64-8.9.1.23_cuda11-archive.zip
tensorrtTensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8.zip
pytorch1.13.1+cu117

参考文章

  1. https://blog.csdn.net/caobin_cumt/article/details/125579033

  2. https://github.com/NVIDIA/TensorRT/issues/1693


http://www.ppmy.cn/news/59915.html

相关文章

CLion开发工具 | 05 - 使用CLion开发ESP32

专栏介绍 一、准备工作 电脑上安装好ESP-IDF环境本文参考Jetbrains官方视频教程:在 Windows 上用 CLion 开发 ESP32 | CLion教程 | 嵌入式开发 | IDE 二、打开工程 复制一份新的helloworld工程。 使用CLion打开该工程。 选择信任该工程。 CLion打开后自动打开…

ARM汇编语言(2)

ARM汇编语言 一、引言 ARM汇编语言是一种低级别的计算机指令集架构(ISA)语言,它是ARM处理器上的一种指令集架构,用于编写底层的系统软件,例如操作系统、驱动程序和嵌入式系统应用程序。 ARM汇编语言使用基于寄存器的…

牛客网HJ31 单词倒排

HJ31 单词倒排 描述示例解题思路以及代码 描述 对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果…

应用层开发想转Android framework开发要从何开始

前言 现如今,由于市面上应用App的更新逐渐变少,很多Android移动应用开发者都开始转型做系统开发,这比开发应用有趣多了,因为你可以探索系统模块的运行原理,从框架层面去了解它。 在应用层,你只需要配置好…

老王的自动驾驶决策和规划第一章

文章目录 自动驾驶决策规划算法序章第一章(1) 细说五次多项式(2) 凸优化与非凸优化(3) 直角坐标与自然坐标转换(上, 下) 自动驾驶决策规划算法 序章 课程链接:序章 第一章 (1) 细说五次多项…

shell脚本

expr命令 优点:可以直接输出 缺点:计算表达式里面引用变量使用$,特数字符需要转义 只能计算一个表达式 计算 expr \( 10 10 \) \* 2 100 计算字符串长度 expr length 字符串 截取字符串 expr substr 字符…

线上FullGC问题排查实践——手把手教你排查线上问题 | 京东云技术团队

作者:京东科技 韩国凯 一、问题发现与排查 1.1 找到问题原因 问题起因是我们收到了jdos的容器CPU告警,CPU使用率已经达到104% 观察该机器日志发现,此时有很多线程在执行跑批任务。正常来说,跑批任务是低CPU高内存型&#xff0c…

[Leetcode] 0697.数组的度

697. 数组的度 点击上方标题跳转至leetcode 题目描述 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 示例 1&…