深度学习模型编译框架TVM概述

TVM是一款开源的深度学习模型编译框架,用于优化模型在多种硬件上的推理性能。它通过图优化和算子调度实现跨平台的高效运行,解决了不同硬件厂商推理框架的局限性,支持自定义算子和硬件,适用于对模型性能有严格要求的场景。TVM编译过程包括前端转换、图优化、调度和目标转换,特色在于计算和调度的分离以及AutoTVM的自动调优功能。
摘要由CSDN通过智能技术生成

在任意深度学习的应用场景落地一个模型/算法时,需要经历两个基本步骤:1. 根据数据生产一个模型的训练步骤;2. 将生产出的模型部署到目标设备上执行服务的推理步骤。训练步骤目前基本由Tensorflow、PyTorch、Keras、MXNet等主流框架主导,同样的,推理步骤目前也处在“百家争鸣”的状态。

TVM是什么?

TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,常见的应用场景包括:

  • 需要兼容所有主流模型作为输入,并针对任意类型的目标硬件生成优化部署模型的场景

  • 对部署模型的推理延迟、吞吐量等性能指标有严格要求的场景

  • 需要自定义模型算子、自研目标硬件、自定义模型优化流程的场景

TVM软件框架(图片来自TVM官方网站)

TVM框架如上图:主流的深度学习框架(Tensorflow, Pytorch,MXNet等)导出的模型作为TVM框架的输入,经过该框架内一系列的图优化操作以及算子级的自动优化操作后最终转化为针对目标运行时(CPU/GPU/ARM等)的部署模型,优化后的模型理论上可以最大化地利用目标硬件的资源以最小化模型的推理延迟。

为什么用TVM优化模型推理?

模型推理场景下用于模型优化、部署的软件框架仍处于“百家争鸣”的状态,其原因在于推理任务的复杂性:训练后的模型需要部署于多样的设备上(Intel CPU/ NVGPU/ ARM CPU/FPGA/ AI芯片等),要在这些种类、型号不同的设备上都能保证模型推理的高效是一项极有挑战的工作。

一般来说,主流的硬件厂商会针对自家硬件推出对应的推理加速框架以最大化利用硬件性能,如Intel的OpenVINO、ARM的ARM NN、Nvidia的TensorRT等,但这些框架在实际应用场景中会遇到不少问题:

  • 厂商推理框架对主流训练框架产生的模型的算子种类支持不全,导致部分模型无法部署

  • 模型部署侧的开发人员需要针对

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux基金会AI&Data基金会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值