西雅图是美国超一线城市。它不仅孕育了科技巨头微软,华盛顿大学也是这座城市的招牌。中国武术大师李小龙也毕业于此。陈天琪在AI圈的名气,就像李小龙在武侠界的地位一样,都是年轻有成。陈天奇,90后,机器学习领域知名华人青年。2020年秋季以助理教授身份加入CMU,成为加入CMU的年轻华人学者之一。近日,陈天奇团队在arxiv上发布了一款为深度学习开发的编译器“CORTEX”,专注于解决深度学习模型的优化问题,能够为递归神经网络生成高效的代码。重点来了,这个编译器不依赖于其他库,可以端到端地衡量优化性能,并将推理延迟减少多达14倍。深度学习的应用瓶颈深度学习模型越来越多地作为个人助理、自动驾驶汽车和聊天机器人等应用程序的一部分用于生产中。这些应用程序对模型的推理延迟提出了严格的要求。因此,生产中使用了各种各样的专用硬件,包括CPU、GPU和用于低延迟推理的专用加速器。对于具有递归和其他动态控制流的模型,减少推理延迟尤其困难。陈天奇提出了一个解决方案,一个用于递归深度学习模型的编译器“CORTEX”,在编译阶段生成高效的代码。优化深度学习模型一般分两步进行:高层图优化,如核融合;低级内核优化,例如依赖库中的内核优化。这种方法通常对循环深度学习模型表现出卓越的性能。编译器“CORTEX”是一种技术突破的递归深度学习模型,旨在构建一个编译器和运行时基础设施,通过不规则和动态的控制流,甚至不规则的数据结构访问来高效地编译ML应用程序。这种不依赖其他库的编译方式可以实现端到端的优化,不同后端的推理延迟最多减少14倍。CORTEX包含一个运行时框架,可以处理具有递归数据结构遍历的模型。该框架可以将递归遍历从张量计算中完全解开,进行部分推理,从而可以快速将整个张量计算放入硬件加速器(目前支持CPU和GPU)。这意味着编译器可以生成高度优化的代码,避免加速器和主机CPU之间频繁通信的开销。最后,本文总结了贡献:设计了??CORTEX,这是一个基于编译器的框架,可以实现端到端优化和高效代码生成,以实现递归深度学习模型的低延迟推理。作为设计的一部分,扩展了张量编译器,并提出了新的调度原语和递归模型的优化。对提议的框架进行原型设计,并根据最先进的递归深度学习框架对其进行评估,并获得显着的性能提升(在NvidiaGPU、英特尔和ARMCPU上高达14倍)。编译器API的递归模型CORTEX需要具有模型计算的端到端视图,以便执行内核融合等优化。输入程序需要包含有关模型中执行的张量操作的足够信息,以便在降低到ILIR时进行调度。因此,RA将输入计算建模为运算符的DAG,其中每个运算符都被指定为循环嵌套。除了执行RA计算外,用户还需要提供输入数据结构的基本信息,例如每个节点的最大子节点数和数据结构类型(序列、树或DAG)。此信息在编译期间使用,并且可以在运行时轻松验证。减少循环次数从RA到ILIR的减少本质上是从递归到迭代的减少。因此,陈团队在归约过程中将所有临时显式张量都制作出来。他们还实现了存储计算结果的张量rnn。三个张量中的每一个都为每个递归调用存储数据,在这种情况下对应于每个树节点。不规则循环IR(ILIR)ILIR是张量编译器使用的程序表示的扩展。因此,计算和优化在ILIR中分别指定。此计算表示为运算符的DAG,每个运算符通过消耗先前生成或输入的张量来生成张量。可以借助循环切片、循环展开、矢量化等调度原语来执行优化。当中间张量存储在暂存器中时,使用非仿射表达式对其进行索引会导致张量稀疏。如此稀疏的张量会占用太多内存,A1有一半未使用。在这种情况下,可以通过在空间中循环来对张量进行索引。这种转换还通过将间接内存访问转换为仿射访问来降低索引成本。展望未来过去关于机器学习编译器和深度学习的工作表明,有必要在机器学习模型中支持高效的动态执行。CORTEX证明了一种有效的方法是利用过去在通用编译中的工作,例如检查执行器技术或稀疏多面体框架。TianqiChen的团队认为,与ILIR一样,扩展当今使用的高度专业化机器学习框架和技术的范围也很重要(同时不影响其优化静态前馈模型的能力)。同时,他们也介绍了团队未来的发展方向:应用这些研究开发类似的技术来训练和服务具有底层非递归动态控制流的模型。将CORTEX集成到更高级别的编程抽象中。
