中文

Intel nGraph:面向深度学习的中间表示、编译器与执行器

分布式、并行与集群计算 2018-01-31 v2 机器学习

摘要

深度学习(DL)界每年都会发表许多新颖的拓扑结构。在新拓扑上实现高性能仍然具有挑战性,因为每种拓扑都需要一定程度的手工调优。框架与硬件平台的激增使这一问题更加严重。当前我们称之为“直接优化”的方法,需要在每个框架内部进行深度修改以提升针对每种硬件后端(CPU、GPU、FPGA、ASIC)的训练性能,且需要 O(fp)\mathcal{O}(fp) 的工作量;其中 ff 为框架数量,pp 为平台数量。虽然通过诸如 Intel Math Kernel Library for Deep Neural Networks (MKL-DNN) 等库提供了深度学习原语的优化内核,但仍有若干受编译器启发的方式可进一步优化性能。基于我们创建 neon(GPU 上快速的深度学习库)的经验,我们开发了 Intel nGraph,一个即将开源的 C++ 库,以简化跨框架与硬件平台的优化深度学习性能实现。初始支持的框架包括 TensorFlow、MXNet 和 Intel neon 框架。初始后端为 Intel 架构 CPU(CPU)、Intel(R) Nervana 神经网络处理器(R)(NNP)和 NVIDIA GPU。当前支持的编译器优化包括高效内存管理与数据布局抽象。本文中,我们描述了整体架构及其核心组件。未来,我们设想将 nGraph API 支持扩展到更广泛的框架、硬件(包括 FPGA 与 ASIC)以及编译器优化(训练 versus 推理优化、通过高效子图划分的多节点与多设备扩展,以及针对硬件的操作复合)。

关键词

引用

@article{arxiv.1801.08058,
  title  = {Intel nGraph: An Intermediate Representation, Compiler, and Executor for Deep Learning},
  author = {Scott Cyphers and Arjun K. Bansal and Anahita Bhiwandiwalla and Jayaram Bobba and Matthew Brookhart and Avijit Chakraborty and Will Constable and Christian Convey and Leona Cook and Omar Kanawi and Robert Kimball and Jason Knight and Nikolay Korovaiko and Varun Kumar and Yixing Lao and Christopher R. Lishka and Jaikrishnan Menon and Jennifer Myers and Sandeep Aswath Narayana and Adam Procter and Tristan J. Webb},
  journal= {arXiv preprint arXiv:1801.08058},
  year   = {2018}
}