中文

DyCL:通过程序重写与图优化的动态神经网络编译

计算与语言 2023-07-12 v1 机器学习 编程语言

摘要

深度学习(DL)编译器的主要功能是将用PyTorch和TensorFlow等高级DL框架编写的DNN程序翻译为可移植的可执行文件。这些可执行文件随后可由部署的主机程序灵活执行。然而,现有DL编译器依赖追踪机制,即向神经网络程序输入运行时输入并追踪程序执行路径以生成编译所需的计算图。遗憾的是,该机制在处理现代动态神经网络(DyNNs)时存在不足,因为DyNNs的计算图随输入而变化。因此,传统DL编译器难以将DyNNs准确编译为可执行代码。为克服此限制,我们提出\tool,一种使任何现有DL编译器都能成功编译DyNNs的通用方法。\tool通过引入一种编译机制来应对DyNNs的动态性,该机制在编译过程中重新分配原始DNN程序的控制流与数据流。具体而言,\tool开发程序分析与程序变换技术,将动态神经网络转换为多个子神经网络。每个子神经网络不含条件语句,并独立编译。此外,\tool合成一个建模DyNNs控制流并促进子神经网络调用的主机模块。我们的评估证明了\tool的有效性,在编译所有动态神经网络时达到100%成功率。而且,\tool生成的编译可执行文件性能显著提升,比在通用DL框架上执行的原始DyNNs快1.12×1.12\times20.21×20.21\times

关键词

引用

@article{arxiv.2307.04963,
  title  = {DyCL: Dynamic Neural Network Compilation Via Program Rewriting and Graph Optimization},
  author = {Simin Chen and Shiyi Wei and Cong Liu and Wei Yang},
  journal= {arXiv preprint arXiv:2307.04963},
  year   = {2023}
}

备注

This paper has been accepted to ISSTA 2023