【TensorRT】关于8.6版本开始的硬件兼容性的一些试错

有关tensorRT8.6版本的硬件兼容性的笔记

  • 1、背景
  • 2、说明书解读
  • 3、api调用说明
    • c++ api说明

1、背景

在工业应用中,边缘端的部署通常需要发布到不同的硬件,在自己的电脑上生成的模型,往往会因为与其他设备的显卡型号不同架构不同的问题,导致其他设备无法部署主机上导出的engine模型或者trt模型。因此,8.6版本的tensorRT发布了一项新的可能,可以支持基于不同显卡设备之间的兼容。
TensorRT官方文档-第六章

2、说明书解读

打开英伟达开发文档的第六部分第二节Hardware Compatibility,默认情况下,TensorRT引擎只与构建它们的设备类型兼容。通过构建时配置,可以构建与其他类型设备兼容的引擎。目前,硬件兼容性仅支持Ampere及以后的设备架构,不支持NVIDIA DRIVE OS或JetPack。

这里需要说明的是,这个兼容特性并不是兼容所有的英伟达显卡设备,而是兼容基于Ampere架构及以后的架构的显卡,笔者案例中的情况是使用3060显卡的主机导出的模型,想发布到1660显卡的设备上,由于3060显卡已是基于Ampere架构的显卡,但是1660显卡是基于turing架构的,因此这个设备兼容性并不支持,只能通过在1660显卡的主机上重新导出engine或者trt模型再调用。

英伟达各代GPU 架构梳理

3、api调用说明

c++ api说明

#include 

// 创建一个IBuilderConfig对象
nvinfer1::IBuilderConfig* config = builder->createBuilderConfig();

// 设置硬件兼容性级别为kAMPERE_PLUS
config->setHardwareCompatibilityLevel(nvinfer1::HardwareCompatibilityLevel::kAMPERE_PLUS);

你可能感兴趣的:(推理平台,TensorRT,GPU,c++,CUDA,人工智能)