2019年11月16日周六,在上海虹桥枢的某酒店会议厅,国内第一次专业的 TVM Meetup 完满的结束。会议的报名连接很早就达到了70人的上限,以至于主办方不得不在报名页面呼吁千万不要在当天挤爆会场。现场的情况还在可控范围之内,人恰好多得零零散散站得下(座位自然是没有多余的了)。
本次会议是阿里的吴钊「知乎ID:蓝色」等发起和组织,一开始贾扬清大佬进行了开场致辞(照片在下方)。大佬介绍了一些自己在阿里的相关预期和目标(忘记了)。这是小编1号第一次见到大牛真身,亲和力max。
TVM by Tianqi Chen
第一个报告是 Tianqi Chen 的远程报告,网络流畅,报告清晰。这次来到现场实在是太值了:Tianqi说以前的报告都是介绍已经merged和开源的成果,这次介绍的都是自己的一些预期和正在进行的构想。主要包含了以下的部分:
自动化(调优)是未来。
Tianqi 大概是坚定的 autotuning 派(笑)。他表示现在的自动调优方法的结果已经足够好,甚至比手工优化更好。自动化可以做手工优化做不到的各种优化。例如狂加算子融合,暴力尝试各类重排。可以预见AutoTVM未来依然是一个重点发力的方向。
(小编1号)这个路线是可以理解的,毕竟调优是要针对特定硬件,如果是人工的话,那就变成给特定厂商打工了(笑)在有限的人力的情况下,使用尽可能自动化的方式是最好的,而且TVM本身的效果之一就是屏蔽掉硬件的差异(那看后面的统一运行时)。
异构设备大一统 Runtime
Tianqi 希望能够将不同计算设备使用的Runtime统一成一个来进行管理维护。现场给出了一个代码展示,用 PackedFunc 这种形式为底层结果增加了一层。这部分还没有完成或开源。
(小编1号):这是一个 big project。而且这个愿景很大也很有杀伤力,最大的杀伤力在于看起来 Tianqi 能够搞定这件事情。我遇到过有同样的想法的人很多,能真的脱离学术的很少,都是 Toy。计算机领域真的是无时无刻都印证着「Talk(Paper) is cheap」这一真理。
虚拟机:支持动态 workload
没听清楚,大概意思是能够更好的支持NLU之类的负载?欢迎参会的伙伴留言区追加。
能够裸机运行的 uTVM
uTVM 运行在裸板上的, no OS is needed. uTVM 自带的能够自己host的Runtime也快要完成了。
(小编1号):可怕。很多公司现在做的同类型工作怕是要弃掉,直接用了。想要申请研究课题的同学也抓紧专注了,起点更高了😄
支持NPU的快速设计
NPU的特点是设计中各种的参数的尝试,这让 Tianqi 觉得应该可以将更多的自动调优工作放在NPU的设计过程中去。
继续安利VTA
继续安利VTA,Open and Flexible。很多厂商都是参考了VTA的结果。
TSIM
TSIM 支持未来的硬件设计,可以直接替换掉现在已经有的部分的IC设计的验证工作。降低了硬件设计的门槛。
(小编1号):这是非常大的野心,以及可能的颠覆。TVM+VTA+TSIM 后续或许能够改变加速器的开发设计流程。现在看起来还不可能,但是,这个希望太诱人了。
统一IR
TVM框架中目前有两个不同的IR,一个是Halide,一个是Relay。Tainqi 说这两个是比较平行的,历史路径依赖来的。后续希望能够尝试讲所有的IR统一在一起。有一个叫 IR Module 放在一起。「mixed functions variants in the same module」
First Python Support
出发点是为了支持在DL编译器中尝试新的算法和ideas。而很多的ideas的代码都是python形式的。因此 Tianqi 觉得应该这么干,将上面说到的统一的 IR,能够直接接收 Python AST 的形式,这样就直接允许开发人员用 Python 语言来操作 IR 了。
提出了 hybrid script 的概念,用于指代在 python 中操作IR的部分。「每个IR都有一个python的AST表示,可以直接去生成一个TVM的IR函数。这样可以大大加快开发的过程。」
社区和12月份大会
现在差不多280个贡献者了。接下来的大事件是2019年12月5号的 2nd TVM Conf,地点在美国的西雅图。
最后的提问环节有超多的人。问题都是跟提问者自己的工作直接相关的,可见目前TVM开发人员是真的多。
(小编1号):不过目前并没有人委托到我进行TVM的外包开发,看起来目前比较多都还是硬件相关的厂商在积极推动。
TVM @ AliOS by 蓝色
介绍在阿里的TVM的应用。演讲者吴钊,知乎ID蓝色。真人比较羞涩,远远比知乎上表现的羞涩。2018年4月加入阿里,加入后就开始推动TVM在阿里OS的应用和开发。
报告首先介绍了TVM团队从2018年4月份开始到2019年10月份的时间轴大事件。详细的介绍了在 Arm、Hexagon DSP、Intel 三个不同平台的、多个场景(网络)中的性能的优化方法和提升效果。总体而言,蓝色团队的提升对标 TF Lite 大概能够到 1.6x 以上的提升,还是非常强的。并且借助于 AliOS,已经在至少一个车厂的产品线中部署使用了(这真的很强)。
期间(可以理解地)介绍了下 AliOS 的架构和推广应用,PR了一波😁。
茶歇
茶歇很棒。饼干地道,水果新鲜,咖啡豆质量没得说。吃了就直接当作中午饭了。
茶歇期间遇到了好几位 HelloGCC / HelloLLVM 社区活跃的成员,果然大家又双叒叕从杭州深圳北京南京跑来现场了😄
TVM @ vastaitech (TVM @ NPU)
含光/阿里NPU编程模型与TVM by 平头哥
由于有很多都还没有公开,所以讲得比较谨慎。很多内容在PPT上也没有体现,演讲者对着一个架构图,详细的介绍了一些具体的实现细节。具体的内容比较多,有不少一边打字记录一边就漏掉了,等待后续会议的组织方是否有详细的memo/report出来😄
听到一点:将LLVM也接了进来,能够跑起来了。但是感觉用处也不是很大。后续还要继续看看。
TVM @ 阿里巴巴PAI (TensorCore AutoGen and Mix Precision)
闪电演讲部分
TVM @ 亿联 (语义分割在PC平台的TVM部署应用)
TVM @ 阿里巴巴AI Labs (TVM@HIFI4 DSP, ARM CPU, PowerVR GPU)
别的好说,就是阿里巴巴涉及到AI的labs实在是太多了😂今天来的已经有四个不同的阿里的独立的部门,阿里巴巴的研发实力太强大了。
第二个男人介绍的是 PowerVR GPU 上 TVM 的工作。
天猫精灵里面的也自称 AliOS。同样这么混乱的操作系统叫法,不知道为什么华为的鸿蒙被喷成渣,阿里的AliOS却没人抱怨😁(幸亏 Ali Things 没叫OS)
TVM @ Linaro (TVM @ ARM Platforms)
介绍之后,介绍了 Linaro AI Initiative(继续广告)
最后的最后,介绍了对TVM的支持,支持比较多,例如RK3399等已经有支持了。特地提到了华为的NPU也有TVM的支持(还没有合并到上游)。
TVM @ AWS (Deploying GluonCV models using TVM)
TVM @ 阿里巴巴芯片工具组(Caffe 前端在TVM的支持)
人狠话不多,已经用上了。一套集成开发环境,解决掉所有的。(解决掉什么没听清)。
加了Caffe的前端。
How VTA can be deployed on Intel FPGA
最后
感谢蓝色等组织方提供这个机会,收益匪浅。
下次见 (^o^)/
https://discuss.tvm.ai/t/tvm-shanghai-meetup-nov-16/4550