TensorRT-8.6版本新功能解析

更新点:

  • 硬件和版本兼容性功能。以前,升级硬件或TensorRT版本需要重新构建,这可能很昂贵且耗时。然而,新功能可以实现硬件和版本兼容的构建,在升级过程中无需重新构建
  • 性能改进,包括改进了fMHA和支持长seqlen,类似于flash attention。FasterDynamicShape现在已默认启用,并且H100性能得到了提高
  • 新的优化级别构建器标志允许用户在构建时间和性能之间进行权衡。此功能使用户对其模型的优化具有更多控制权,使其更容易平衡性能和时间限制。
  • TensorRT 8.6还包括支持CUDA 12.X和细粒度多流控制。这使用户可以调整网络中的流数量,根据其特定需求优化性能。

细节

Within-Inference Multi-Streaming

CUDA中,同一个stream中的指令按照顺序之心

参考

老潘哥 你好 我现在有个问题 我在WIndows上有个项目 他所依赖的库文件分别是CUDA 12.0 TensorRT 8.6.0.12并且models文件夹中有对应的trt文件 现在存在一个问题就是我想将这个移植到linux上 我在linux上配置的也是CUDA12.0 TensorRT8.6.0.12 并且我是使用cmake构建的 等到我执行到反序列化的时候他会出问题 说Error Code 1: Serialization (Serialization assertion plan->header.magicTag ==rt::kPLAN_MAGIC_TAG failed.)Segmentation fault (core dumped)
但是我的版本都是对齐的 老潘哥知道可能出什么问题吗

先确认几点:

  • 两者TensorRT版本一致,版本号完全一样
  • window和linux下的显卡也一致,比如3090和3090,或者3060和3090(架构都是安培)
  • 两者的环境变量一致(包含trt8的lib的地址),看下有没有conda啥的环境中安装了trt8的lib

反正就是,如果版本一样的话,lib环境变量找的一样的话,肯定没这个问题,如果都确认还有那就是bug了,赶紧去提issue吧~