win10 安装TensorRT
1,下载TensorRT 安装包
进入英伟达官网Log in | NVIDIA Developer,选择和自己适配的TensorRT,我选择的是 TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8
注意:EA是提前发布的不稳定版本,GA是经过完备测试的稳定版
2,安装:
解压安装包后得到如下所示图:
安装TensorRT文件夹中 即 的.whl文件*
cd TensorRT-8.6.1.6
# 激活conda环境, 或者本机的Python环境
pip install .\graphsurgeon\graphsurgeon-0.4.6-py2.py3-none-any.whl
pip install .\onnx_graphsurgeon\onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
# 此行根据自己的Python版本选择!!!
pip install .\python\tensorrt-8.6.0-cp38-none-win_amd64.whl
pip install .\uff\uff-0.6.9-py2.py3-none-any.whl
即
C:\Program Files\wk\TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8\TensorRT-8.6.1.6\python
下的.whl文件
pip install tensorrt-8.6.1-cp38-none-win_amd64.whl
安装完成相应的库以后,需要注意将TensorRT-8.6.1.6文件夹下的lib\include中的文件进行如下拷贝工作,防止在运行tensorrt时候无法找到相对应的Nvinfer.dll
TensorRT-8.6.1.6中include文件夹下所有文件拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include
TensorRT-8.6.1.6中lib文件夹下所有lib文件拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64
TensorRT-8.6.1.6中lib文件夹下所有dll文件拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
把tensorRT,TensorRT-8.6.1.6文件下面的bin、include、lib添加到环境变量:
4,验证TensorRT是否安装成功
查看trt的版本
import tensorrt as trt
print(trt.__version__)
运行
进入C:\Program Files\wk\TensorRT-8.6.1.6\samples\python\network_api_pytorch_mnist
运行
python sample.py
如果报错:
File "C:\Program Files\wk\TensorRT-8.6.1.6\samples\python\network_api_pytorch_mnist\..\common.py", line 25, in <module>
from cuda import cuda, cudart
ModuleNotFoundError: No module named 'cuda'
pip install cuda-python
如下所示表示成功
至此,windows安装TensorRT的过程就结束了。
5,测试
使用vs2019打开 sample_onnx_mnist.sln 工程,如果所示:
然后右键sample_mnist项目,右键选择属性。然后再属性页选择“VC++目录——可执行文件目录”,打开“可执行文件目录”,将“C:\Program Files\wk\TensorRT-8.6.1.6\lib”添加进去,然后点击“确定”。
选择“C/C++——附加包含目录,点进去添加“C:\Program Files\wk\TensorRT-8.6.1.6\bin”,然后点击“确定”。
右键“sample_mnist”工程,然后选择“重新生成”。看到如下信息,则表明生成成功。
注意事项
(1)TensorRT是硬件相关的
不同显卡(不同GPU),其核心数量、频率、架构、设计都是不一样的,TensorRT需要对特定的硬件进行优化,不同硬件之间的优化是不能共享的。
(2)TensorRT支持哪几种权重精度
支持FP32、FP16、INT8、TF32等,这几种类型都比较常用。
FP32:单精度浮点型,深度学习中最常见的数据格式,训练推理都会用到;
FP16:半精度浮点型,相比FP32占用内存减少一半,有相应的指令值,速度比FP32要快很多;
TF32:第三代Tensor Core支持的一种数据类型,是一种截短的 Float32 数据格式,将FP32中23个尾数位截短为10bits,而指数位仍为8bits,总长度为19(=1+8 +10)。保持了与FP16同样的精度(尾数位都是 10 位),同时还保持了FP32的动态范围指数位都是8位);
INT8:整型,相比FP16占用内存减小一半,有相应的指令集,模型量化后可以利用INT8进行加速。
原文地址:https://blog.csdn.net/zhaoluruoyan89/article/details/143718797
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!