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模型再调用。文章来源:https://www.toymoban.com/news/detail-824489.html
英伟达各代GPU 架构梳理文章来源地址https://www.toymoban.com/news/detail-824489.html
3、api调用说明
c++ api说明
#include <NvInfer.h>
// 创建一个IBuilderConfig对象
nvinfer1::IBuilderConfig* config = builder->createBuilderConfig();
// 设置硬件兼容性级别为kAMPERE_PLUS
config->setHardwareCompatibilityLevel(nvinfer1::HardwareCompatibilityLevel::kAMPERE_PLUS);
到了这里,关于【TensorRT】关于8.6版本开始的硬件兼容性的一些试错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!