TVM: End-to-End Optimization Stack for Deep Learning

Optimizing Computational GraphsComputational Graph:计算图,计算图用于描绘一个整体的计算任务,会根据图中的计算任务提前分配内存,所以在计算图中做优化,即将原来的计算图转换为相同效果的计算图。例如有些计算可以提前进行然后存储在内存中在需要用的时候直接调用,这样就可以节省一部分执行的时间。下图描述了一些计算图优化的例子: Operator F...
摘要由CSDN通过智能技术生成

why TVM

要让AI芯片支持深度学习架构(如TensorFlow, MXNet, Caffe, and PyTorch,芯片都有自己的指令集(例如汇编,C语言),要将深度学习架构等部署到芯片上就需要将深度学习架构中的这些代码编译成芯片支持的指令集,所以要从头到尾设计一套软件栈,做一套全栈的优化。
所以现在的许多深度学习的架构只能在某一些厂商的GPU设备上获得加速,这种支持依赖于特定的GPU库,当未来越来越多的加速器出现时,硬件设备的厂商对于深度学习架构的支持便会变得越来越困难。同时不同的硬件设备的内存构造和计算能力也有很大的差异,如图:
这里写图片描述
TVM的目标是很容易的将深度学习架构部署到不同内存结构、计算单元的所有的硬件设备中(包括GPU,FPGA 和 ASIC(如谷歌 TPU),也包括嵌入式设备),TVM架构图如下:
这里写图片描述
TVM是一个端到端优化堆栈,该端到端优化编译器堆栈可降低和调整深度学习工作负载,以适应多种硬件后端。TVM 的设计目的是分离算法描述、调度和硬件接口。通过将调度与目标硬件内部函数分开而进行了扩展。这一额外分离使支持新型专用加速器及其对应新型内部函数成为可能。
TVM做了两个优化层:计算图优化层和一个张量优化层。TVM将这些优化层结合,并且生成优化的代码去连接上层的深度学习框架和下层的硬件设备。通过结合这两种优化层,TVM 从大部分深度学习框架中获取模型描述,执行高级和低级优化,生成特定硬件的后端优化代码,如树莓派、GPU 和基于 FPGA 的专用加速器

Optimizing Computational Graphs

  1. Computational Graph:计算图,计算图用于描绘一个整体的计算任务,会根据图中的计算任务提前分配内存,所以在计算图中做优化,即将原来的计算图转换为相同效果的计算图。例如有些计算可以提前进行然后存储在内存中在需要用的时候直接调用,这样就可以节省一部分执行的时间。下图描述了一些计算图优化的例子:
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值