本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

陈天奇团队发布TVM:把深度学习部署到手机、树(2)

时间:2017-08-18 22:21来源:香港现场开奖 作者:118开奖 点击:
然而,我们发现仅基于IR的计算图不足以解决支持不同硬件后端的挑战。因为单独一个图形运算符,例如卷积或矩阵乘法能以非常不同的方式映射和优化在

然而,我们发现仅基于IR的计算图不足以解决支持不同硬件后端的挑战。因为单独一个图形运算符,例如卷积或矩阵乘法能以非常不同的方式映射和优化在不同的硬件后端。这些特定硬件优化在内存布局、并行线程模式、缓存访问模式和硬件基元的选择方面,可能会发生巨大的变化。我们希望能以通用方式对此进行明确表达。

我们建立了一个低级表示来解决这个问题。这个表示基于索引公式,而且支持重复计算。

陈天奇团队发布TVM:把深度学习部署到手机、树

低级别IR采用了现有的图像处理语言(例如Halide或darkroom)的原理来制定一种表现力很强的深度学习DSL。TVM在循环变换工具(例如loopy等)的启发下构建了图优化。我们也从MXNet、TensorFlow、Theano等深度学习框架的数据流描述语言中获得灵感。然后在调度阶段对TVM中描述的算法进行处理,以应用针对目标硬件后端订制的转换。

陈天奇团队发布TVM:把深度学习部署到手机、树

TVM包括CPU优化框架中常见的标准转换基元。更重要的是,TVM集成了针对GPU的新优化基元,包括利用线程协作模式、数据布局变换和强大的计算基元。将TVM和NNVM结合使用,可以用多种方式优化软件堆栈中的深度学习工作负载,进一步实现计算图级和运算符级的优化。

多语言和平台支持

TVM的优势之一,就是对多个平台和语言提供了丰富的支持。这由两个部分组成。一是编译器堆栈,其中包括完整的优化库,以产生优化过的机器代码;二是轻量级的运行环境,提供了在不同平台上部署编译模块所需的可移植性。

陈天奇团队发布TVM:把深度学习部署到手机、树

TVM目前支持嵌入式编译器堆栈的Python和C++接口。我们在设计框架时最大程度的实现了重复利用,开奖,以便编译器堆栈的改进可以在Python和C++组建之间互换使用。

我们还提供了一个轻量级的运行环境,可以让TVM用Java、Java、Python、C++等编译过的代码,运行在Android、iOS、树莓派和网页浏览器等平台上。

远程部署和执行

陈天奇团队发布TVM:把深度学习部署到手机、树

通过轻量级的接口TVM RPC,可以在远程嵌入式设备上部署和执行TVM交叉编译过的模块。这为TVM用户提供了一个熟悉的高级Python界面,用于在各种低级嵌入式设备上远程编译、优化和测试深度学习算法。

性能

TVM处于早期阶段,让然有很多需要改进的地方,但是我们已经看到一些令人振奋的结果。

树莓派

我们首先在一个树莓派3B上运行ResNet工作复杂,来比较TVM和nnpack。由于时间限制,我们使用了TVM实现直接卷积,而nnpack用于对3×3内核执行winograd卷积。

陈天奇团队发布TVM:把深度学习部署到手机、树

我们发现在这次的树莓派试验中,使用TVM的自动调整内核,我们可以获得类似nnpack中的手动优化内核的性能。

GPU

以下测试归功于Leyuan Wang (AWS / UCDavis),Yuwei Hu(TuSimple),Weitang Liu (AWS/ UCDavis)。

作为一个概念的证明,我们创建了一个端到端的编译流程,可以将MXNet模型编译成TVM执行图。我们通过自动融合运算符并使TVM生成融合的内核,在图形节点之间应用优化。我们对MobileNet ImageNet工作负载进行了测试,结果如下。

陈天奇团队发布TVM:把深度学习部署到手机、树

结果显示,TVM在速度方面胜过我们的基准算法。更有趣的是,内核融合带来额外的加速。值得一提的是,TVM自己能生成所有优化的GPU内核,耳部依赖于CuDNN等外部库。

我们正在开展更多的实验,并准备放出更新的结果。

源代码

GitHub地址在此:

https://github.com/dmlc/tvm

陈天奇团队发布TVM:把深度学习部署到手机、树

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容