1 TensorRT 8.2 EA版本支持爱因斯坦求和算子Einsum

NVIDIA在2021年10月6日发布的TensorRT新版本 8.2 Early Access版本终于开始支持爱因斯坦求和算子Einsum,这个消息真是为模型工业化部署的同学省了不少的时间。

TensorRT中具体可支持的Onnx算子可参考:https://github.com/onnx/onnx-tensorrt/blob/master/docs/operators.md

但是目前Einsum也是支持大部分等式,暂不支持省略号和对角线操作。

目前我已经使用TensorRT 8.2 EA版本对einsum算子转换进行了测试,真的是可以用了!

1.1 Tensor 8.2 EA支持Einsum算子的意义

在TensorRT 8.2 Early Access发布之前,如果深度学习模型中包含Einsum操作,比如pytorch中的torch.einsum或者Tensorflow中的tf.einsum的操作,那么可以成功转换成onnx模型,但是使用TensorRT的trtexec工具将onnx模型转换成TensorRT模型时,就会出现找不到Plugin:Einsum的操作,需要我们自定义插件去支持Einsum算子,

目前在Github上也有人开源自己写的Einsum插件:https://github.com/xn1997/TensorRT-EinsumPlugin/,但是这个插件目前只支持nctkv,kvw->nctw的算子操作,其他的需要自己去实现。

还有的方式是将这种Einsum算子在python层面直接改写成Pytorch或者Tensorflow的常规算子操作,具体可参考https://www.stubbornhuang.com/1741/或者 https://stubbornhuang.blog.csdn.net/article/details/120654252

现在NVIDIA官方开始支持Einsum算子操作,为深度学习模型的工业化部署节省了太多的时间。虽然省略号和对角线操作暂不支持,但是在深度学习模型中大部分使用的是矩阵乘积或者batch乘积的功能,影响还是比较小的。

如果有兴趣,可以访问我的个站:https://www.stubbornhuang.com/,更多干货!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐