TensorRT是如何工作的?

  • 2 replies
  • 187 views
*

sisiy

  • *****
  • 147
    • 查看个人资料
TensorRT是如何工作的?
« 于: 七月 23, 2019, 03:41:26 pm »
1.3。TensorRT是如何工作的?

为了优化您的推理模型,TensorRT接受您的网络定义,执行优化,包括特定于平台的优化,并生成推理引擎。这个过程称为构建阶段。构建阶段可能需要相当长的时间,特别是在嵌入式平台上运行时。因此,典型的应用程序将构建引擎一次,然后将其序列化为计划文件供以后使用。

注意:生成的计划文件不能跨平台或TensorRT版本移植。计划是特定于特定的GPU模型,他们是建立在(除了平台和TensorRT版本),必须重新针对特定的GPU,如果你想在不同的GPU上运行他们。

构建阶段对层图执行以下优化:

*消除不使用输出的层
*卷积、偏置和ReLU运算的融合
*具有足够相似的参数和相同的源张量的操作的集合(例如,GoogleNet v5的inception模块中的1x1卷积)
*通过将层输出定向到正确的最终目的地来合并连接层。

如果有必要,构造器还会修改权重的精度。当生成8位整数精度的网络时,它使用一个称为校准的过程来确定中间激活的动态范围,从而确定量化所需的适当比例因子。

此外,构建阶段还在虚拟数据上运行层,以从其内核目录中选择最快的,并在适当的地方执行权重预格式化和内存优化。

*

sisiy

  • *****
  • 147
    • 查看个人资料
Re: TensorRT是如何工作的?
« 回复 #1 于: 七月 23, 2019, 03:47:24 pm »
1.4。TensorRT提供什么功能?
TensorRT允许开发人员导入、校准、生成和部署优化的网络。网络可以直接从Caffe导入,也可以通过UFF或ONNX格式从其他框架导入。还可以通过编程方式创建它们,方法是实例化各个层并直接设置参数和权重。

用户还可以使用插件接口通过TensorRT运行定制层。GraphSurgeon实用程序提供了将TensorFlow节点映射到TensorRT中的自定义层的能力,从而支持使用TensorRT对许多TensorFlow网络进行推理。

TensorRT在所有支持的平台上提供c++实现,在x86、aarch64和ppc64le上提供Python实现。

TensorRT核心库的关键接口为:
网络定义
网络定义接口为应用程序提供了指定网络定义的方法。可以指定输入和输出张量,可以添加层,并且有一个接口用于配置每个受支持的层类型。以及层类型,如卷积层和递归层,以及插件层类型允许应用程序实现TensorRT不支持的功能。有关网络定义的更多信息,请参见网络定义API。
构建器
Builder接口允许从网络定义创建优化的引擎。它允许应用程序指定最大批处理和工作区大小、最小可接受的精度级别、用于自动调优的定时迭代计数,以及一个用于以8位精度运行网络的量化接口。有关构建器的更多信息,请参见构建器API。
引擎
引擎接口允许应用程序执行推理。它支持对引擎输入和输出的绑定进行同步和异步执行、分析、枚举和查询。一个引擎可以有多个执行上下文,允许使用一组经过训练的参数来同时执行多个批。有关该引擎的更多信息,请参见执行API。
TensorRT提供了用于导入经过训练的网络的解析器,以创建网络定义:
Caffe解析器
该解析器可用于解析在BVLC Caffe或NVCaffe 0.16中创建的Caffe网络。它还提供了为定制层注册插件工厂的功能。有关c++ Caffe解析器的详细信息,请参阅nv咖啡因解析器或Python Caffe解析器。
UFF的解析器
此解析器可用于解析UFF格式的网络。它还提供了注册插件工厂和为定制层传递字段属性的功能。有关c++ UFF解析器的详细信息,请参阅NvUffParser或Python UFF解析器。
ONNX解析器
这个解析器可用于解析ONNX模型。有关c++ ONNX解析器的详细信息,请参阅NvONNXParser或Python ONNX解析器。
限制:由于ONNX格式正在快速发展,您可能会遇到模型版本和解析器版本之间的版本不匹配。随TensorRT 5.1一起提供的ONNX解析器。x支持ONNX IR(中间表示)版本0.0.3,opset版本9。
注意:另外,一些TensorRT Caffe和ONNX解析器和插件可以在GitHub上找到。

*

sisiy

  • *****
  • 147
    • 查看个人资料
Re: TensorRT是如何工作的?
« 回复 #2 于: 七月 23, 2019, 03:48:49 pm »
1.5. 如何得到 TensorRT?
TensorRT安装指南,请查看: https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html