CNCC2020_陈天奇_TVM: An automated deep learning compiler

陈天奇:卡内基梅隆大学 TVM: An automated deep learning compiler

  1. 入坑,专用芯片只提供指令集,映射算法困难;
  2. TVM就是将人工智能算法自动地映射到各种人工智能硬件上,从高阶的表示自动地转换成低阶算子;
  3. 一个解决思路就是提供算子库,需要针对不同平台实现相应的算子库,非常耗时;
  4. TVM:编程时仍然是以高阶的,类似于函数的编写方式,定义可能的搜索空间,搜索对应的低阶算子;搜索过程本身仍可以采用人工智能去训练,以预测开销,选择低开销的方案;
    在这里插入图片描述
  5. TVM本身应该是一个完整的深度学习编译器,包括两层优化,第一层是高阶可微IR的优化,第二层是算子级别的优化;
  6. 算子级别的优化,首先要定义尽可能大的搜索库,尽可能地去穷尽一个人可能想到的优化空间;
  7. 通用处理器、GPU、到NPU,处理的源数越来越大,从一个数到一维到二维;此外,还包括寄存器、寻址的不规则性,这给编程人员、编译带来很大难度;
  8. 张量化的过程,需要用统一的文件去描述NPU支持哪些运算,而程序本身应该用更高层次的运算来书写;(低层到高层比较灵活,而从高层到底层就相对容易些)
  9. TVM有自己的网站,也在工业上有些应用,可以进行参考;有些情况下,TVM可以比人手工映射算子,或者常用框架更加高效;(常用的框架并没有考虑到变种的情况,考虑的KPI不同)
    在这里插入图片描述
  10. 很少有公司会将自己NPU的指令集公开,因此很少会针对NPU的编译器进行研究,因此开源了一个深度学习加速器/编译器,给研究人员带来很大好处,给NPU公司开发软件也提供参考;
  11. 可以通过描述硬件,用编译器模拟NPU的指令集,评估硬件能跑多快,以实现软硬件协同设计;

提问环节:

  1. 比较专业,听得不太懂;
  2. 目前应该还没有做到完全自动化,只是从手工到自动化,逐渐推进;

猜你喜欢

转载自blog.csdn.net/weixin_41754258/article/details/112095578
今日推荐