TensorRT安装指南

目录

    • 前言
    • 摘要
      • 1. 概述
      • 2. 入门
      • 3. 下载TensorRT
      • 4. 安装TensorRT
        • 4.1. Debian 安装
          • 4.1.1. 使用NVIDIA机器学习网络Repo安装Debian
        • 4.2. RPM 安装
          • 4.2.1 使用NVIDIA机器学习网络Repo进行RPM安装
        • 4.3. Tar File安装
        • 4.4. Zip File 安装
        • 4.5. 其他安装方法
      • 5. 升级TensorRT
        • 5.1 Ubuntu和Windows用户
          • 5.1.1. 从TensorRT 6.x.x升级到TensorRT 7.x.x
        • 5.2. RedHat和CentOS用户
          • 5.2.1. 从TensorRT 6.x.x升级到TensorRT 7.x.x
      • 6. 卸载TensorRT
      • 7. 安装 PyCUDA
        • 7.1. 更新CUDA
      • 8. 故障排除
      • A. 附录
    • `----拓展`

前言

本文为TensorRT官网上安装指南的翻译版,原版链接为TensorRT Installation Guide,如果有翻译不对的地方,请评论区留言指正。

摘要

这篇TensorRT 7.0.0文档安装指南提供了安装要求、TensorRT软件包中包含的内容列表以及TensorRT安装的分步说明.对于先前发布的TensorRT安装文档,请参阅TensorRT Archives。

1. 概述

NVIDA TensorRT的核心是一个C++库,它有助于NVIDIA图形处理单元(GPU)的高性能推理,TensorRT采用一个经过训练的网络,该网络由一个网络定义和一组经过训练的参数组成,并生成一个高度优化的运行时引擎,对该网络进行推理。
TensorRT通过由C++Python提供API的帮助,用网络定义API来表达深度学习模型,或者通过允许TensorRT优化以及在NVIDIA GPU上运行的解析器加载预定义模型。TensorRT应用了图形优化、层融合以及其他优化,同时还利用高度优化的内核的不同集合找到了该模型的最快实现。TensorRT还提供了一个运行时,您可以使用它在所有NVIDIAGPU上执行这个网络,从开普勒一代开始。
TensorRT还包括Tegra X1中引入的可选高速混合精度功能,并通过PascalVoltaTuring架构进行了扩展。

2. 入门

确保您熟悉以下安装要求和注意事项。

  • TensorRTWindows zip包不提供Python支持。Python将来可能会得到支持。
  • 如果您使用的是TensorRT Python API,并且系统上还没有安装PyCUDA,请参阅安装PyCUDA。如果您在PyCUDA使用方面遇到任何问题,您可能需要自己重新编译它。有关更多信息,请参阅在Linux上安装PyCUDA
  • 确保您熟悉发行说明。当前版本的发行说明可以在TensorRT发行说明在线上找到 TensorRT Release Notes。
  • 验证是否已安装CUDA工具包;支持版本9.010.010.2
  • TensorFlowTensorRT模型导出需要TensorFlow 1.14.0
  • PyTorch示例已经用PyTorch 1.3.0进行了测试,但是可以使用较旧的版本。
  • 如果目标系统同时安装了TensorRT和一个或多个训练框架,那么最简单的策略是使用与TensorRT附带的相同版本的cuDNN作为训练框架。如果这不可能,或由于某些原因强烈不可取,请小心管理cuDNN在单个系统上的并行安装。在某些情况下,根据所使用的训练框架,如果不修补训练框架源代码,这可能是不可能的。
  • TensorRT 5.0开始, libnvparsers.so以前版本的库功能包含在libnvparsers.so文件中。 libnvcaffe_parser.so安装的符号链接更新为指向新的libnvparsers.so文件库。静态库libnvcaffe\u parser.a也象征性地链接到libnvparsers\u static.a
  • 下面的安装说明假定您想要完整的TensorRTC++TensorRT Python API。在某些环境和用例中,您可能不想安装Python功能。在这种情况下,不要安装标有Pythonwhl文件的DebianRPM包。C++的API功能都不依赖于Python。如果要从TensorFlow模型导出UFF文件,则需要安装UFF whl文件。

3. 下载TensorRT

确保您是NVIDIA开发者计划的成员。如果没有,请按照提示获取访问权限。

  • 进入 https://developer.nvidia.com/tensorrt
  • 单击“立即下载”。
  • 选择您感兴趣的TensorRT版本。
  • 选中复选框以同意许可条款。
  • 单击要安装的软件包。开始下载。

4. 安装TensorRT

在安装TensorRT时,您可以选择以下安装选项 :DebianRPM软件包、tar文件或zip文件。DebianRPM安装会自动安装任何依赖项,但是:

  • 需要sudoroot权限才能安装
  • 对于TensorRT的安装位置没有灵活性
  • 要求CUDA工具包和cuDNN也已使用DebianRPM包安装。
  • 不允许同时安装多个次要版本的TensorRT
    tar文件提供了更大的灵活性,例如同时安装多个版本的TensorRT。但是,您需要确保已经安装了必要的依赖项,并且必须自己管理LD_LIBRARY_PATH。有关更多信息,请参阅ZIP文件安装
    TensorRT 版本:TensorRT 由不同版本的组件组成的产品。产品上的版本传达了有关重要的新特性的关键信息,而库版本传达了有关API的兼容性或不兼容性的信息。下表显示了TensorRT组件的版本控制。
    TensorRT安装指南_第1张图片

4.1. Debian 安装

本节包含开发人员安装和应用程序服务器安装的说明。此安装方法适用于新用户或希望完整安装(包括示例和文档)的用户。对于已经熟悉TensorRT并希望快速运行应用程序或设置自动化的高级用户,请按照network repo安装说明进行操作(参考:使用NVIDIA机器学习网络Repo进行Debian安装)

开发者安装: 下面的指令用一个示例、文档和C++Python API建立了一个完整的TensorRT开发环境。
注意: 如果只需要C++开发环境,可以修改以下指令,而不必安装Python包。

注: 在开始以下命令之前,您需要将ubuntu1x04cudax.xtrt7.x.x.xyyyymmdd替换为特定的操作系统版本、CUDA版本、TensorRT版本和软件包日期。以下命令是amd64的示例,但是对于ppc64el,这些命令是相同的。

1. 下载TensorRT local repo文件,该文件与您使用的Ubuntu版本和CPU架构相匹配。
2.Debian local repo包安装TensorRT

os=”ubuntu1x04”
tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”
sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-${tag}/7fa2af80.pub

sudo apt-get update
sudo apt-get install tensorrt

如果是用Python2.7

sudo apt-get install python-libnvinfer-dev

将安装以下附加软件包:

python-libnvinfer

如果是用Python3.x

sudo apt-get install python3-libnvinfer-dev

将安装以下附加软件包:

python3-libnvinfer

如果计划将TensorRTTensorFlow结合使用:

sudo apt-get install uff-converter-tf

graphsurgeon tf包也将与上述命令一起安装。

3. 验证安装

dpkg -l | grep TensorRT

您应该会看到类似以下内容:

ii  graphsurgeon-tf	7.0.0-1+cuda10.2	amd64	GraphSurgeon for TensorRT package
ii  libnvinfer-bin		7.0.0-1+cuda10.2	amd64	TensorRT binaries
ii  libnvinfer-dev		7.0.0-1+cuda10.2	amd64	TensorRT development libraries and headers
ii  libnvinfer-doc		7.0.0-1+cuda10.2	all	TensorRT documentation
ii  libnvinfer-plugin-dev	7.0.0-1+cuda10.2	amd64	TensorRT plugin libraries
ii  libnvinfer-plugin7	7.0.0-1+cuda10.2	amd64	TensorRT plugin libraries
ii  libnvinfer-samples	7.0.0-1+cuda10.2	all	TensorRT samples
ii  libnvinfer7		7.0.0-1+cuda10.2	amd64	TensorRT runtime libraries
ii  libnvonnxparsers-dev		7.0.0-1+cuda10.2	amd64	TensorRT ONNX libraries
ii  libnvonnxparsers7	7.0.0-1+cuda10.2	amd64	TensorRT ONNX libraries
ii  libnvparsers-dev	7.0.0-1+cuda10.2	amd64	TensorRT parsers libraries
ii  libnvparsers7	7.0.0-1+cuda10.2	amd64	TensorRT parsers libraries
ii  python-libnvinfer	7.0.0-1+cuda10.2	amd64	Python bindings for TensorRT
ii  python-libnvinfer-dev	7.0.0-1+cuda10.2	amd64	Python development package for TensorRT
ii  python3-libnvinfer	7.0.0-1+cuda10.2	amd64	Python 3 bindings for TensorRT
ii  python3-libnvinfer-dev	7.0.0-1+cuda10.2	amd64	Python 3 development package for TensorRT
ii  tensorrt		7.0.0.x-1+cuda10.2 	amd64	Meta package of TensorRT
ii  uff-converter-tf	7.0.0-1+cuda10.2	amd64	UFF converter for TensorRT package

应用程序服务器安装: 在设置将承载TensorRT供电的应用程序的服务器时,您只需安装以下任何一项:

  • libnvinfer7包(C++),再加上您需要的任何附加库包
  • python libnvinfer包(python 2.7
  • python3 libnvinfer包(python3.x

如果要运行使用Debian软件包使用TensorRT构建的应用程序,请执行以下命令,例如:

os=”ubuntu1x04”
tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”
sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-${tag}/7fa2af80.pub

sudo apt-get update
sudo apt-get install libnvinfer7
4.1.1. 使用NVIDIA机器学习网络Repo安装Debian

此安装方法适用于已经熟悉TensorRT并希望快速运行应用程序或设置自动化的高级用户。

新用户或需要完整安装(包括示例和文档)的用户应遵循本地repo安装说明(请参阅Debian安装)。

注意: 建议您先设置NVIDIA CUDA网络存储库,然后再设置NVIDIA机器学习网络存储库以满足包依赖性。下面我们供一些示例命令来完成此任务。有关更多信息,请参阅NVIDIA CUDA Linux安装指南

1. 安装NVIDIA CUDA网络存储库安装包。

os=”ubuntu1x04”
cuda=”x.y.z”
wget https://developer.download.nvidia.com/compute/cuda/repos/${os}/x86_64/cuda-repo-${os}_${cuda}-1_amd64.deb
sudo dpkg -i cuda-repo-*.deb

其中:

  • OS version: ubuntu1x04 is 1604 or 1804
  • CUDA version: x.y.z is 9.0.176, 10.0.130 or 10.2.89

2. 安装NVIDIA机器学习网络存储库安装包。

os=”ubuntu1x04”
wget https://developer.download.nvidia.com/compute/machine-learning/repos/${os}/x86_64/nvidia-machine-learning-repo-${os}_1.0.0-1_amd64.deb

sudo dpkg -i nvidia-machine-learning-repo-*.deb
sudo apt-get update

3. 安装适合您特殊需要的TensorRT软件包。

  a. 只运行TensorRT C++ 应用程序:

sudo apt-get install libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7

  b. 也用于构建TensorRT C++ 应用程序:

sudo apt-get install libnvinfer-dev libnvonnxparsers-dev
 libnvparsers-dev libnvinfer-plugin-dev

  c. 用于运行TensorRT Python 应用程序:

sudo apt-get install python-libnvinfer python3-libnvinfer

4. 当使用NVIDIA机器学习网络存储库时,Ubuntu将默认安装最新CUDA版本的TensorRT。以下命令将为较旧的CUDA版本安装libnvinfer7,并在此版本中保留libnvinfer7包。将7.x.x替换为TensorRT版本,将cudax.x替换为CUDA版本以供安装。

version=”7.x.x-1+cudax.x”
sudo apt-get install libnvinfer7=${version} libnvonnxparsers7=${version} libnvparsers7=${version} libnvinfer-plugin7=${version} libnvinfer-dev=${version} libnvonnxparsers-dev=${version} libnvparsers-dev=${version} libnvinfer-plugin-dev=${version} python-libnvinfer=${version} python3-libnvinfer=${version}

sudo apt-mark hold libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev python-libnvinfer python3-libnvinfer

如果您想升级到TensorRT的最新版本或CUDA的最新版本,那么可以使用以下命令解除libnvinfer7包的绑定。

sudo apt-mark unhold libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev python-libnvinfer python3-libnvinfer

您可能需要对libcudnn7重复这些步骤,以防止cuDNN更新到最新的CUDA版本。请参阅TensorRT发行说明,了解使用您的TensorRT版本测试的cuDNN的特定版本。在升级TensorRT中可以找到降级和保持cuDNN版本的示例命令。有关更多信息,请参阅《cuDNN安装指南》。
如果同时启用NVIDIA机器学习网络存储库和TensorRT本地存储库,您可能会发现与TensorRTcuDNN的包冲突。您将需要配置APT,以便它更喜欢本地包而不是网络包。您可以通过在/etc/apt/preferences.d/local-repo中创建一个新文件来实现这一点,该文件包含以下行:

Package: *
Pin: origin ""
Pin-Priority: 1001

注意 : 此首选项更改将影响的不仅仅是TensorRT,如果您有其他未通过HTTP下载的存储库,则不太可能。要恢复APT的原始行为,只需删除新创建的文件。

4.2. RPM 安装

本节包含从RPM软件包安装TensorRT的说明。此安装方法适用于新用户或希望完整安装(包括示例和文档)的用户。
对于已经熟悉TensorRT并希望快速运行应用程序或设置自动化的高级用户,请按照network repo安装说明进行操作

  • 在执行以下命令之前,您需要将cudax.xtrt7.x.x.xyyyyymmdd替换为特定的CUDA版本、TensorRT版本和包日期。
  • 如果要安装python3rpm包,必须首先启用EPEL存储库。有关启用EPEL的更多信息,请参阅CUDA快速入门指南中的RPM软件包说明。
  • 下面的命令示例适用于x86_64,但对于ppc64le,这些命令应该是相同的

1. 下载与您使用的RHEL/CentOS版本和CPU体系结构匹配的TensorRT本地repo文件。
2.RPM local repo包安装TensorRT

tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”
sudo rpm -Uvh nv-tensorrt-repo-rhel7-${tag}-1-1.x86_64.rpm
sudo yum clean expire-cache

可以安装的软件包包括:

graphsurgeon-tf.x86_64
libnvinfer-bin.x86_64
libnvinfer-devel.x86_64
libnvinfer-doc.x86_64
libnvinfer-plugin-devel.x86_64	
libnvinfer-plugin7.x86_64
libnvinfer-samples.x86_64
libnvinfer7.x86_64
libnvonnxparsers-devel.x86_64
libnvonnxparsers7.x86_64
libnvparsers-devel.x86_64
libnvparsers7.x86_64
python-libnvinfer.x86_64
python-libnvinfer-devel.x86_64	
python3-libnvinfer.x86_64
python3-libnvinfer-devel.x86_64
tensorrt.x86_64
uff-converter-tf.x86_64

然后安装TensorRT:

sudo yum install tensorrt

如果使用Python2.7

sudo yum install python-libnvinfer-devel

将安装以下附加软件包:

python-libnvinfer

如果使用Python 3

sudo yum install python3-libnvinfer-devel

将安装以下附加软件包:

python3-libnvinfer

对于UFF转换器(仅当您计划将TensorRTTensorFlow一起使用时才需要):

$ sudo yum install uff-converter-tf

3 验证安装
  a. 运行:

rpm -qa | grep tensorrt

您应该会看到类似以下内容:

tensorrt-7.0.0.x-1.cuda10.2.x86_64

  b. 运行:

rpm -qa | grep -e libnvinfer -e libnv.*parsers

您应该会看到类似以下内容:

libnvinfer-doc-7.0.0-1.cuda10.2.x86_64
libnvinfer-plugin7-7.0.0-1.cuda10.2.x86_64
libnvinfer-devel-7.0.0-1.cuda10.2.x86_64
libnvinfer-bin-7.0.0-1.cuda10.2.x86_64
libnvinfer7-7.0.0-1.cuda10.2.x86_64
libnvinfer-samples-7.0.0-1.cuda10.2.x86_64
libnvinfer-plugin-devel-7.0.0-1.cuda10.2.x86_64
libnvonnxparsers7-7.0.0-1.cuda10.2.x86_64
libnvonnxparsers-devel-7.0.0-1.cuda10.2.x86_64
libnvparsers7-7.0.0-1.cuda10.2.x86_64
libnvparsers-devel-7.0.0-1.cuda10.2.x86_64
python3-libnvinfer-7.0.0-1.cuda10.2.x86_64
python3-libnvinfer-devel-7.0.0-1.cuda10.2.x86_64
python-libnvinfer-7.0.0-1.cuda10.2.x86_64
python-libnvinfer-devel-7.0.0-1.cuda10.2.x86_64

  c. 运行:

rpm -qa | grep graphsurgeon-tf

您应该会看到类似以下内容:

graphsurgeon-tf-7.0.0-1.cuda10.2.x86_64

  d. 运行:

rpm -qa | grep uff-converter-tf

您应该会看到类似以下内容:

uff-converter-tf-7.0.0-1.cuda10.2.x86_64
4.2.1 使用NVIDIA机器学习网络Repo进行RPM安装

当只需要C++库和头文件时,可以从英伟达机器学习网络存储库安装TensorRT。此安装方法适用于已经熟悉TensorRT并希望快速运行应用程序或设置自动化的高级用户。
新用户或需要完整安装(包括示例和文档)的用户应遵循本地repo安装说明(请参阅RPM安装)。

:建议您先设置NVIDIA CUDA网络存储库,然后再设置NVIDIA机器学习网络存储库以满足包依赖性。下面我们提供一些示例命令来完成此任务。有关更多信息,请参阅NVIDIA CUDA Linux安装指南。

1. 安装NVIDIA CUDA网络存储库安装包

cuda=”x.y.z”
wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-${cuda}-1.x86_64.rpm
sudo rpm -Uvh cuda-repo-*.rpm

其中
CUDA version: x.y.z is 9.0.176, 10.0.130 or 10.2.89
2. 安装NVIDIA机器学习网络存储库安装包。

wget https://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/nvidia-machine-learning-repo-rhel7-1.0.0-1.x86_64.rpm

sudo rpm -Uvh nvidia-machine-learning-repo-*.rpm

3. 安装适合您特殊需要的TensorRT软件包。
  a. 用于运行TensorRT C++应用程序:

sudo yum install libnvinfer7 libnvparsers7 libnvonnxparsers7 libnvinfer-plugin7

  b. 也用于构建TensorRT C++应用程序:

sudo yum install libnvinfer-devel libnvparsers-devel libnvonnxparsers-devel libnvinfer-plugin-devel

  c. 用于运行TensorRT Python应用程序:

sudo yum install python-libnvinfer python3-libnvinfer

4. 使用NVIDIA机器学习网络存储库时,RHEL将默认安装最新CUDA版本的TensorRT。以下命令将为较旧的CUDA版本安装libnvinfer7,并在此版本中保留libnvinfer7包。将6.x.x替换为TensorRT版本,将cudax.x替换为CUDA版本以供安装。

version=”7.x.x-1.cudax.x”
sudo yum downgrade libnvinfer7-${version} libnvparsers7-${version} libnvonnxparsers7-${version} libnvinfer-plugin7-${version} libnvinfer-devel-${version} libnvparsers-devel-${version} libnvonnxparsers-devel-${version} libnvinfer-plugin-devel-${version} python-libnvinfer-${version} python3-libnvinfer-${version}
 

sudo yum install yum-plugin-versionlock
sudo yum versionlock libnvinfer7 libnvparsers7 libnvonnxparsers7 libnvinfer-plugin7 libnvinfer-devel libnvparsers-devel libnvonnxparsers-devel libnvinfer-plugin-devel python-libnvinfer python3-libnvinfer

如果您想升级到TensorRT的最新版本或CUDA的最新版本,那么可以使用以下命令解除libnvinfer7包的绑定。

sudo yum versionlock delete libnvinfer7 libnvparsers7 libnvonnxparsers7 libnvinfer-plugin7 libnvinfer-devel libnvparsers-devel libnvonnxparsers-devel libnvinfer-plugin-devel python-libnvinfer python3-libnvinfer

您可能需要对libcudnn7重复这些步骤,以防止cuDNN更新到最新的CUDA版本。请参阅TensorRT发行说明,了解使用您的TensorRT版本测试的cuDNN的特定版本。在升级TensorRT中可以找到降级和保持cuDNN版本的示例命令。有关更多信息,请参阅《cuDNN安装指南》。

4.3. Tar File安装

本节包含从tar文件安装TensorRT的说明。
注意:在执行以下命令之前,您需要用特定的TensorRT版本替换7.x.x.x。以下命令是示例。
1. 安装以下依赖项(如果尚未存在):

  • CUDA 9.0, 10.0, 10.2
  • cuDNN 7.6.5
  • Python , Python 3 (Optional)

2. 下载与您正在使用的Linux发行版匹配的TensorRT tar文件。
3. 选择要安装TensorRT的位置。这个tar文件将把所有内容安装到一个名为TensorRT-7.x.x.x的子目录中。
4. 解压缩tar文件

version=”7.x.x.x”
os=””
arch=$(uname -m)
cuda=”cuda-x.x”
cudnn=”cudnn7.x”
tar xzvf TensorRT-${version}.${os}.${arch}-gnu.${cuda}.${cudnn}.tar.gz

其中

  • 7.x.x.x is your TensorRT version
  • is:
  • Ubuntu-16.04
  • Ubuntu-18.04
  • CentOS-7.6
    - cuda-x.x is CUDA version 9.0, 10.0, or 10.2.
  • cudnn7.x is cuDNN version 7.6.

这个目录将有像libincludedata等子目录…

ls TensorRT-${version}
bin  data  doc  graphsurgeon  include  lib  python  samples  targets  TensorRT-Release-Notes.pdf  uff

5.TensorRT lib目录的绝对路径添加到环境变量LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:

6. 安装Python TensorRT wheel文件。

cd TensorRT-${version}/python

如果使用Python 2.7

sudo pip2 install tensorrt-*-cp27-none-linux_x86_64.whl

如果使用Python 3.x

sudo pip3 install tensorrt-*-cp3x-none-linux_x86_64.whl

7. 安装Python UFF wheel文件。只有在计划将TensorRTTensorFlow一起使用时,才需要此选项。

cd TensorRT-${version}/uff

如果使用Python 2.7

sudo pip2 install uff-0.6.5-py2.py3-none-any.whl

如果使用Python 3.x

sudo pip3 install uff-0.6.5-py2.py3-none-any.whl

在这两种情况下,请检查安装情况:

which convert-to-uff

8. 安装Python graphsurgeon wheel文件。

cd TensorRT-${version}/graphsurgeon

如果使用Python 2.7

sudo pip2 install graphsurgeon-0.4.1-py2.py3-none-any.whl

如果使用Python 3.x

sudo pip3 install graphsurgeon-0.4.1-py2.py3-none-any.whl

9. 验证安装

  a. 确保安装的文件位于正确的目录中。例如,运行tree-d命令检查lib、include、data等目录中是否有所有支持的安装文件。

  b. 在安装目录中生成并运行一个附带的示例,例如sampleMNIST。您应该能够编译和执行示例,而不需要额外的设置。有关更多信息,请参阅TensorRT(sampleMNIST)的“Hello World”。

  c. Python示例位于samples/Python目录中。

4.4. Zip File 安装

本节包含从zip文件安装TensorRT的说明。确保已安装以下依赖项。

  • CUDA 9.0, 10.0, or 10.2
  • cuDNN 7.6.5
    本节包含在Windows10上从zip包安装TensorRT的说明。
    1. 下载与您使用的Windows版本匹配的TensorRT zip文件。
    2. 选择要安装TensorRT的位置。zip文件将把所有内容安装到一个名为TensorRT-7.x.x.x的子目录中。在下面的步骤中,这个新的子目录将被称为
    3.TensorRT-7.x.x.x.Windows10.x86\u 64.cuda-x.x.cudnnx.x.zip文件解压缩到您选择的位置。替换:
       a. 7.x.x.x with the TensorRT version
       b. cuda-x.x with the CUDA version,
       c. cudnnx.x with the cuDNN version for your particular download
    4. 将TensorRT库文件添加到系统路径。有两种方法可以完成此任务:
       a.DLL文件放在解压缩的位置,并将/lib添加到系统路径中。您可以使用以下步骤将新路径添加到系统路径。
         i.Windows键并搜索“环境变量”,它将显示“编辑系统环境变量”选项,然后单击它。
         ii. 单击窗口底部的环境变量。
         iii. 在“系统变量”下,选择“路径”,然后单击“编辑…”…。
         iv. 单击“新建”或“浏览”添加包含/lib的新项。
         v. 继续单击“确定”,直到关闭所有新打开的窗口。
         vi. 如果您的cuDNN库没有复制到CUDA安装目录,而是放在解压的地方,那么对cudnbin目录重复上述步骤。
       b.DLL文件从/lib复制到CUDA安装目录,例如C:\Program files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\bin,其中vX.YCUDA版本。CUDA安装程序应该已经将CUDA路径添加到您的系统路径中。
    5. 要验证您的安装是否正常工作,您应该打开其中一个示例中的visualstudio解决方案文件,例如TensorRT(sampleMNIST)“Hello World”,并确认您能够生成和运行该示例。如果要在自己的项目中使用TensorRT,请确保Visual Studio解决方案项目属性中存在以下内容:
       a. /lib已添加到PATH变量中,并显示在VC++目录>可执行目录下。
       b. <安装路径> /包含在C/C++ >一般>附加目录下。
       c. nvinfer.lib文件项目所需的任何其他LIB文件都位于Linker>Input>Additional Dependencies下。
    : 为了构建包含的示例,您应该使用VisualStudio2017(https://visualstudio.microsoft.com/downloads/)已安装。社区版足以构建TensorRT示例。

6. 如果您使用的是TensorFlow,请安装uffgraphsurgeon wheel软件包。在安装uffgraphsurgeon之前,必须准备Python环境。

如果使用是的Python 2.7:

python -m pip install \graphsurgeon\graphsurgeon-0.4.1-py2.py3-none-any.whl
python -m pip install \uff\uff-0.6.5-py2.py3-none-any.whl

如果使用的是 Python 3.x:

python3 -m pip install \graphsurgeon\graphsurgeon-0.4.1-py2.py3-none-any.whl
python3 -m pip install \uff\uff-0.6.5-py2.py3-none-any.whl

4.5. 其他安装方法

除了从产品包安装TensorRT外,还可以从以下位置安装TensorRT

TensorRT集装箱
TensorRT容器提供了一种简单的方法来部署TensorRT,容器中已经打包了所有必要的依赖项。有关通过容器安装TensorRT的信息,请参阅TensorRT容器发行说明。
JetPack
JetPack捆绑了所有Jetson平台软件,包括TensorRT。使用它来闪存您的Jetson开发工具包与最新的操作系统映像,安装nvidiasdk,并启动您的开发环境。有关通过JetPack安装TensorRT的信息,请参阅JetPack文档。
有关JetPack下载,请参阅开发:JetPack。
NVIDIA DriveWorks
TensorRT的每一个版本都提供了一些功能,使驱动开发平台成为一个优秀的自动驾驶计算平台。有关通过DriveWorks安装TensorRT的更多信息,请参阅文档DriveWorks。
有关DriveWorks下载,请参阅NVIDIA Developer:Drive downloads。

5. 升级TensorRT

仅当当前安装的TensorRT版本等于或高于上两个公共版本时,才支持将TensorRT升级到最新版本。例如,TensorRT 7.x.x支持从TensorRT 5.1.xTensorRT 6.0.x升级。如果要从不受支持的版本升级,则应增量升级,直到达到TensorRT的最新版本。

5.1 Ubuntu和Windows用户

以下部分提供了为UbuntuWindows用户升级TensorRT的分步说明。/

5.1.1. 从TensorRT 6.x.x升级到TensorRT 7.x.x

这些升级说明仅适用于UbuntuWindows用户。从TensorRT 6.x.x升级到TensorRT 7.x.x时,请确保您熟悉以下内容。
使用Debian文件

  • Debian软件包旨在升级您的开发环境,而不删除其他软件包和程序可能依赖的任何运行时组件。如果您通过Debian软件包安装了TensorRT 6.x.x,并升级到TensorRT 7.x.x,那么您的文档、示例和标题都将更新为TensorRT 7.x.x内容。下载新的本地repo后,使用apt get将系统升级到新版本的TensorRT
os=”ubuntu1x04”
tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”
sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb

sudo apt-get update
sudo apt-get install tensorrt libcudnn7
  • 如果使用是的Python 2.7:
sudo apt-get install python-libnvinfer-dev
  • 如果使用的是 Python 3.x:
sudo apt-get install python3-libnvinfer-dev
  • 如果您使用的是uff转换器和/graphsurgeon,那么您还应该将这些Debian包升级到最新版本。
sudo apt-get install uff-converter-tf graphsurgeon-tf
  • 升级之后,请确保您有一个/usr/src/tensorrt目录,并且dpkg-l tensorrt命令显示的相应版本是7.x.x.x
  • 在使用:sudo apt get autoremove之前,不会删除libnvinfer6
  • 如果在以前安装的版本来自tar文件的系统上安装Debian包,请注意Debian包不会删除以前安装的文件。除非需要并行安装,否则最好在安装新版本之前删除旧版本,以避免针对过时的库进行编译。
  • 如果您当前或以前正在使用NVIDIA机器学习网络存储库,则它可能与预期从本地存储库安装的TensorRTlibcudnn7版本冲突。以下命令将libcudnn7更改为7.6.x.x版本,该版本受TensorRT 7.x.x的支持和测试,并将libcudnn7包保存在此版本。将cudax.x替换为适合您安装的CUDA版本。
version=”7.6.x.x-1+cudax.x”
sudo apt-get install libcudnn7=${version} libcudnn7-dev=${version}
sudo apt-mark hold libcudnn7 libcudnn7-dev

使用 tar file

  • 如果使用tar文件安装方法进行升级,请将TensorRT安装到新位置。Tar文件安装可以支持多个用例,包括完整安装TensorRT 6.x.x,并附带头文件和文档,以及完整安装TensorRT7.x.x。如果打算让新版本的TensorRT替换旧版本,则应在验证新版本后删除旧版本。
  • 如果在以前安装的版本来自Debian软件包的系统上安装tar文件,请注意tar文件安装不会删除以前安装的软件包。除非需要并行安装,否则最好删除以前安装的libnvinfer6、libnvinferdevlibnvinfersamples包以避免混淆。

使用zip file

  • 如果要使用zip文件安装方法进行升级,请将TensorRT安装到新位置。Zip文件安装可以支持多种用例,包括完整安装TensorRT 6.x.x(带标题)和文档,并与完整安装TensorRT 7.x.x并排安装。如果打算让新版本的TensorRT替换旧版本,则应在验证新版本后删除旧版本。
  • 解压缩新版本的TensorRT后,您需要更新PATH环境变量以指向新的安装位置,或者将DLL文件复制到以前安装TensorRT库的位置。有关设置PATH环境变量的更多信息,请参阅Zip文件安装

5.2. RedHat和CentOS用户

以下部分提供了为RedHat和CentOS用户升级TensorRT的分步说明。

5.2.1. 从TensorRT 6.x.x升级到TensorRT 7.x.x

这些升级说明仅适用于Red Hat Enterprise Linux(RHEL)CentOS用户。从TensorRT 6.x.x升级到TensorRT 7.x.x时,请确保您熟悉以下内容。
Using an RPM file

  • RPM包的设计目的是升级开发环境,而不删除其他包和程序可能依赖的任何运行时组件。如果您通过RPM软件包安装了TensorRT 6.x.x,并且希望升级到TensorRT 7.x.x,那么您的文档、示例和标题都将更新为TensorRT 7.x.x内容。下载新的本地repo后,执行:
tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”
sudo rpm -Uvh nv-tensorrt-repo-rhel7-${tag}-1-1.x86_64.rpm
sudo yum clean expire-cache
sudo yum install tensorrt libcudnn7
  • 如果使用是的Python 2.7:
sudo yum install python-libnvinfer-devel
  • 如果使用的是 Python 3.x:
sudo yum install python3-libnvinfer-devel
  • 如果您使用的是uff转换器和/graphsurgeon
sudo yum install uff-converter-tf graphsurgeon-tf
  • 升级之后,请确保看到/usr/src/tensorrt目录,并且使用rpm-qa tensorrt命令显示的相应版本是7.x.x.x
    -如果您当前或以前正在使用NVIDIA机器学习网络存储库,则它可能与预期从本地存储库安装的TensorRTlibcudnn7版本冲突。以下命令将libcudnn7更改为7.6.x.x版本,该版本受TensorRT 7.x.x的支持和测试,并将libcudnn7包保存在此版本。将cudax.x替换为适合您安装的CUDA版本。
version=”7.6.x.x-1.cudax.x”
sudo yum downgrade libcudnn7-${version} libcudnn7-devel-${version}
sudo yum install yum-plugin-versionlock
sudo yum versionlock libcudnn7 libcudnn7-devel

6. 卸载TensorRT

本节提供有关卸载TensorRT方法的分步说明。
要使用untarred文件卸载TensorRT,只需删除tar文件并将LD_LIBRARY_PATH 重置为其原始值。
要使用zip文件卸载TensorRT,只需删除解压缩的文件并从path环境变量中删除新添加的路径。
要使用DebianRPM软件包卸载TensorRT,请执行以下步骤:
1. 卸载使用DebianRPM软件包安装的libnvinfer7

sudo apt-get purge "libnvinfer*"
Or
sudo yum erase "libnvinfer*"

2. 卸载uff converter tfgraphsurgeon tf,它们也是使用DebianRPM包安装的。

sudo apt-get purge graphsurgeon-tf
Or
sudo yum erase graphsurgeon-tf

uff-converter-tf也将通过上述命令移除。
您可以使用以下命令卸载uff-converter-tf 而不删除graphsurgeon tf,然而,它不再是必需的。

sudo apt-get purge uff-converter-tf
Or
sudo yum erase uff-converter-tf

以后也可以使用autoremove卸载graphsurgeon tf

sudo apt-get autoremove
Or
sudo yum autoremove

3. 卸载Python TensorRT wheel文件。

如果使用是的Python 2.7:

sudo pip2 uninstall tensorrt

如果使用的是 Python 3.x:

sudo pip3 uninstall tensorrt

4. 卸载Python UFF wheel 文件。

如果使用是的Python 2.7:

sudo pip2 uninstall uff

如果使用的是 Python 3.x:

sudo pip3 uninstall uff

5. 卸载Python GraphSurgeon wheel 文件。

如果使用是的Python 2.7:

sudo pip2 uninstall graphsurgeon

如果使用的是 Python 3.x:

sudo pip3 uninstall graphsurgeon

7. 安装 PyCUDA

本节提供有关PyCUDA的有用信息,包括如何安装。
注意:如果你必须在你的系统上更新你的CUDA版本,现在不要安装PyCUDA。先执行更新CUDA中的步骤,然后安装PyCUDA
PyCUDAPython包装器中用于访问NVIDIAcudaapiPyCUDA的一些关键功能包括:

  • 将所有CUDA映射到Python中。
  • 为灵活、快速、自动调整的代码启用运行时代码生成(RTCG)。
  • 增加了健壮性:对象生命周期的自动管理,自动错误检查。
  • 额外的便利:带有现成的GPU上线性代数,减少,扫描。
  • 提供FFTLAPACK的附加软件包。
  • 快速。几乎为零。
    要安装PyCUDA,请首先确保nvcc位于您的路径中,然后执行以下命令:
pip install 'pycuda>=2019.1.1'

如果在使用上述命令安装PyCUDA后遇到任何PyCUDA使用问题,您可能需要自己重新编译它。有关更多信息,请参阅在Linux上安装PyCUDA

7.1. 更新CUDA

现有的PyCUDA安装不会自动与新安装的CUDA工具包一起工作。这是因为在安装PyCUDA时,PyCUDA只能与目标系统上已经存在的CUDA工具箱一起工作。这要求在安装CUDA工具包的更新版本后更新PyCUDA
下面的步骤是最可靠的方法,可以确保在升级系统上的CUDA工具包后,一切都以兼容的方式工作。

  • 卸载现有的PyCUDA安装。
  • 更新CUDA。有关更多信息,请参阅CUDA安装指南
  • 安装PyCUDA。要安装PyCUDA,执行以下命令:
pip install 'pycuda>=2019.1.1'

8. 故障排除

有关疑难解答支持,请咨询您的支持工程师或将您的问题发布到NVIDIA开发人员论坛上。
NVIDIA Developer Forum

A. 附录

(略)

如果错误,欢迎批评指正

          翻译不易,欢迎关注收藏转载,转载请注明出处,感谢

#############################################################################

----拓展

另推荐一门深蓝学院开设讲解TensorRT模型加速的线上课程,可以对TensorRT整体框架的细节理解和运用都能起到很好的帮助:

链接:深度神经网络加速 cuDNN 与 TensorRT

你可能感兴趣的:(深度学习,tensorflow,深度学习,pytorch,cuda,nvidia)