极智AI | 谈谈推理引擎的推理组织流程

简介: 本文主要讨论一下推理引擎的推理组织流程,包括 英伟达 tensorrt、华为 CANN 以及 TVM。

本文主要讨论一下推理引擎的推理组织流程,包括 英伟达 tensorrt、华为 CANN 以及 TVM。

对于用户和大多开发者来说,其实不用太关心推理引擎内部是怎么实现推理的,比如你在使用 tensorrt 的时候你只要知道使用流程,怎么去生成 Eng,怎么调用 Eng 去 doInference 就好了。但是你不好奇吗,它到底是怎么 create Eng,怎么 load Eng 去做 inference 的,Eng 到底是个什么东西,它也不能像 .pth、.cfg、.pb 一样用 netron 来直观可视化。这里我们就对 tensorrt、CANN、TVM 的推理组织流程展开讨论一下。


1、TensorRT

tensorrt 是一个非常好用的高性能推理框架,它的使用方式主要有以下两种:

(1)将 tensorrt 嵌入到成熟的 AI 框架中,如 TF-TRT、Torch-TRT、ONNX-TRT、TVM-TRT 等,大多做法是将 tensorrt 支持的算子优先以 tensorrt 的方式执行,tensorrt 不支持的算子回退到原框架执行;

(2)直接使用 C++ API 或 Python API 去搭 tensorrt 的推理引擎,至于 tensorrt 不原生支持的算子,我可以采用更细粒度的算子进行拼接或替换(如用 resize 替换 upsample,用 clip 激活函数替换 relu6 等)甚至可以直接用 cuda 来自定义算子。

tensorrt 的推理流程如下:

Network Definition 是用于解析模型之后在 tensorrt 中的网络定义,Builder 主要作用是把 Network Definition 按照对应的硬件生成相应的可执行程序,也就是 Engine。如果你进行在线推理的话,其实直接接着进 runtime 就好了。而实际中,我们往往需要把这个 Engine 保存成一个离线模型 .eng,以便于 runtime 过程的解耦,因为 runtime 往往在用户现场,而 runtime 之前的操作往往在家里。这个时候就需要用到 serialize 和 deserialize 了。

通过 serialize(序列化)来生成二进制文件 .eng,也即这里的 Optimized Plans,这个就是所谓的离线模型了。

等去部署的时候,只要我们手里有离线模型就好了,然后借助 deserialize(反序列化)成硬件可执行程序 Engine 后继续执行推理就好了。

所以这么看来,整个 tensorrt createEng 和 doInference 的流程是这样的:


2、CANN

昇腾的 CANN 可能大家接触就没 tessorrt 那么多了,先简单介绍一下。

昇腾 CANN(Compute Architecture for Neural Networks)是华为针对 AI 全场景推出的异构计算框架,它对上支持业界主流的前端AI 框架,向下对用户屏蔽系列化芯片的硬件差异,以丰富的软件栈功能使能(我发现华为很喜欢用 “使能” 这两个词,我也用一下哈哈)用户全场景的人工智能应用。CANN 的架构如下:

下面来谈谈 CANN create .om(昇腾的离线模型)的组织流程。

其实 CANN 公开的信息要比 tensorrt 丰富许多,CANN TBE 软件栈的逻辑架构如下:

其中 Graph Engine(GE)+ Fusion Engine(FE)+ Tensor Boost Engine(TBE)就相当于 tensorrt 里的 builder,下面来看看 GE + FE + TBE 的组织方式:

GE 是图引擎,FE 是融合引擎,TBE 是张量加速引擎。GE 主要作用是解析前端框架、链接后端、调度排布的融合引擎;FE 主要作用是实现算子融合、UB 融合;TBE 主要作用是提供了算子在华为加速卡中的实现编译、任务执行。结合上图,整个流程分成这么几个阶段:2~4 为算子适配替换、5 为子图拆分优化、6 为调度与流程排布。不难看出,经过 6.1 阶段后,实际推理过程中已经不存在所谓的网络层的概念,此时是由一个个 taskinfo 组成了离线模型 .om 文件,最终的 Runtime 时是通过调用 .om 内的信息进行任务下发。


3、TVM

大家都知道,昇腾 CANN 是基于 TVM 的,因此 CANN 的模型编译过程和 TVM 比较相似。TVM 的模型编译流程如下,其离线模型组织的位置在 relay.build -> graph optimize 之后。

整个 TVM 的编译流逻辑如下[图片参考自]:

TVM 通过 relay.frontend.from_AIFrameworks 来接 AI 框架的模型转换成 relay IR,在 relay IR 上做图优化,完了后面接 compile engine 模块,去做 compute + schedule,然后进行子图编译,这时就到了 TIR 层,会走 TIR PASS,最后是 CodeGen,CodeGen 主要实现了内存分配及指定硬件设备上代码生成,完了就可以序列化成 TVM 的离线模型了(.json 和 .params)。

以上我们讨论了 tensorrt、CANN、TVM 的推理组织流程,如有说的不妥,欢迎交流~


收工~


logo_show.gif

相关文章
|
1月前
|
数据采集 人工智能 数据可视化
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
Streamline Analyst 🪄是一个开源的基于GPT-4这样的大语言模型的应用,目标简化数据分析中从数据清洗到模型测试的全部流程。分类预测、聚类、回归、数据集可视化、数据预处理、编码、特征选择、目标属性判断、可视化、最佳模型选择等等任务都不在话下。用户需要做的只有选择数据文件、选择分析模式,剩下的工作就可以让AI来接管了。所有处理后的数据和训练的模型都可下载。
291 2
Streamline Analyst: 基于LLMs、一键完成全流程的数据分析AI Agent 🚀
|
1月前
|
人工智能 并行计算 PyTorch
【Hello AI】手动安装AIACC-Inference(AIACC推理加速)Torch版
AIACC-Inference(AIACC推理加速)支持优化基于Torch框架搭建的模型,能够显著提升推理性能。本文介绍如何手动安装AIACC-Inference(AIACC推理加速)Torch版并提供示例体验推理加速效果。
|
1月前
|
人工智能 芯片 异构计算
英伟达要小心了!爆火的Groq芯片能翻盘吗?AI推理速度「吊打」英伟达?
随着科技的飞速发展,人工智能公司Groq挑战了英伟达的王者地位,其AI芯片不仅展现出卓越的实力,还拥有巨大的潜力。Groq设计了一种独特的推理代币经济学模式,该模式背后牵动着众多因素,却也引发了深度思考:新的技术突破来自何处?中国该如何应对并抓住变革中的机遇?Groq成本如何评估?这些都是值得研究和思考的问题。
|
1月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
72 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
104 1
|
10天前
|
人工智能 JSON 自然语言处理
智谱AI GLM4开源!支持多模态&长序列,魔搭推理、微调最佳实践来啦!
GLM-4-9B是智谱AI推出的新一代预训练模型GLM-4系列的开源版本,它在多个数据集上的测试中表现出高绩效,包括语义理解、数学问题解决、推理和代码理解等方面。GLM-4-9B模型有四个变体:基础版GLM-4-9B(8K)、对话版GLM-4-9B-Chat(128K)、超长上下文版GLM-4-9B-Chat-1M(1M)和多模态版GLM-4V-9B-Chat(8K)。用户可以通过魔搭社区提供的链接体验这些模型,包括在CPU上运行的版本和支持vLLM推理的版本。
智谱AI GLM4开源!支持多模态&长序列,魔搭推理、微调最佳实践来啦!
|
22天前
|
存储 弹性计算 人工智能
【阿里云弹性计算】AI 训练与推理在阿里云 ECS 上的高效部署与优化
【5月更文挑战第25天】阿里云ECS为AI训练和推理提供弹性、可扩展的计算资源,确保高性能和稳定性。通过灵活配置实例类型、利用存储服务管理数据,以及优化模型和代码,用户能实现高效部署和优化。自动伸缩、任务调度和成本控制等策略进一步提升效率。随着AI技术发展,阿里云ECS将持续助力科研和企业创新,驱动人工智能新时代。
59 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
OpenAI 推出 GPT-4o,免费向所有人提供GPT-4级别的AI ,可以实时对音频、视觉和文本进行推理,附使用详细指南
GPT-4o不仅提供与GPT-4同等程度的模型能力,推理速度还更快,还能提供同时理解文本、图像、音频等内容的多模态能力,无论你是付费用户,还是免费用户,都能通过它体验GPT-4了
88 1
|
1月前
|
机器学习/深度学习 人工智能 供应链
【专栏】阿里云RPA的Rap程序是自动化流程脚本,基于AI和机器学习,实现业务流程自动化
【4月更文挑战第29天】阿里云RPA的Rap程序是自动化流程脚本,基于AI和机器学习,实现业务流程自动化。具有灵活性、易用性、高效稳定和智能学习等特点。广泛应用于财务、人力资源、客服和供应链等领域,未来将与AI深度融合,跨平台应用,行业定制化,并构建完善生态,助力企业效率提升和创新。
|
1月前
|
人工智能 边缘计算 Kubernetes
阿里云边缘容器云帮助AI推理应用快速落地
2024全球分布式云大会·北京站,阿里云徐若晨演讲内容分享
61 0