一种开源端到端的新型人工智能框架编译器

北京那有专业治疗白癜风 http://www.kstejiao.com/m/

你可以选择多种人工智能(AI)框架来开发人工智能算法,还可以选择多种硬件来训练和部署人工智能模型。框架和硬件的多样性对于维护人工智能生态系统的健康至关重要。然而,这种多样性也给人工智能开发人员带来了一些挑战。本文简要介绍了这些挑战,并介绍了一个可以解决这些问题的编译器解决方案。

让我们先来看看这些挑战,并向您介绍来自华盛顿大学和AWS研究团队,然后让您了解编译器是如何工作的。

三个挑战

首先,由于前端接口和后端实现之间的差异,从一个人工智能框架切换到另一个AI框架是非常重要的。此外,算法开发人员可能会使用多个框架作为开发和交付流程的一部分。在AWS上,我们有客户希望在MXNet上部署他们的Caffe模型,以享受AmazonEC2上的高速性能。JoaquinCandela最近在博客中写道,用户可能会使用PyTorch进行快速开发,然后部署在Caffe2上。然而,在将模型从一个框架转换到另一个框架后,有人抱怨二者的调试结果存在差异。

其次,框架开发人员需要维护多个后端,以保证智能手机芯片,GPU芯片等硬件的性能。以MXNet为例,它有一个可移植的,可以从头开始构建的C++实现。它还附带了目标相关的后端支持,比如cuDNN用于英伟达的GPU芯片,MKLML用于英特尔的CPU芯片。保证这些不同的后端向用户提供一致的数字结果是很有挑战性的。

最后,芯片供应商需要为他们所构建的每一个新芯片支持多个人工智能框架。每个框架中的工作负载都以独特的方式表示和执行,因此,即使是一个简单的卷积(Convolution)操作,也可能需要以不同的方式定义。而支持多个框架需要花费工程师们大量的工作。

不同的人工智能框架和硬件给用户带来了巨大的好处,但是对于人工智能开发者来说,给最终用户带来一致的结果是非常困难的。幸运的是,我们并不是第一个面对这种问题的人。计算机科学在不同的硬件上运行不同的编程语言有着悠久的历史。解决这个问题的一个关键技术是编译器。受传统编译器技术的启发,TianqiChen,ThierryMoreau,HaichenShen,LuisCeze,CarlosGuestrin以及ArvindKrishnamurthy这组来自华盛顿大学计算机科学工程学院的研究人员,联合了来自AWSAI团队的ZihengJiang,介绍了TVM堆栈技术来简化这个问题。

今天,AWS和来自华盛顿大学的研究团队共同发布了一种基于TVM堆栈技术的端到端编译器,叫做NNVM。这种编译器能直接将来自不同的深度学习前端的工作负载编译成优化过的二进制机器码。让我们来看一下传统的AI框架和NNVM编译器的结构对比:

我们观察到一个典型的人工智能框架可以大致划分为三个部分:

1、前端向用户展示了一个易于使用的界面。

2、来自前端的工作命令通常被表示成计算图(


转载请注明:http://www.aierlanlan.com/rzdk/7494.html