Skip to main content
QUICK REVIEW

[论文解读] Compiling Neural Networks for a Computational Memory Accelerator

Kornilios Kourtis, Martino Dazzi|arXiv (Cornell University)|Mar 5, 2020
Adversarial Robustness in Machine Learning参考文献 45被引用 4
一句话总结

本文提出了一套用于计算内存(CM)加速器的编译器栈,通过将神经网络编译为多核CM硬件上的流水线数据流执行,实现了高效的深度学习推理。该工作采用多面体编译技术,生成控制逻辑以强制执行层间数据依赖,确保流水线执行的正确性,同时最小化模拟交叉阵列上的重新配置开销。

ABSTRACT

Computational memory (CM) is a promising approach for accelerating inference on neural networks (NN) by using enhanced memories that, in addition to storing data, allow computations on them. One of the main challenges of this approach is defining a hardware/software interface that allows a compiler to map NN models for efficient execution on the underlying CM accelerator. This is a non-trivial task because efficiency dictates that the CM accelerator is explicitly programmed as a dataflow engine where the execution of the different NN layers form a pipeline. In this paper, we present our work towards a software stack for executing ML models on such a multi-core CM accelerator. We describe an architecture for the hardware and software, and focus on the problem of implementing the appropriate control logic so that data dependencies are respected. We propose a solution to the latter that is based on polyhedral compilation.

研究动机与目标

  • 设计一种面向边缘计算的计算内存(CM)加速器的软硬件协同栈,以实现高效的深度学习推理。
  • 解决在多个CM核心上以流水线方式执行神经网络层时,生成尊重数据依赖关系的正确控制逻辑的挑战。
  • 通过软硬件接口的协同设计,实现神经网络在CM加速器上的透明、高性能执行。
  • 克服传统编译器的局限性,后者缺乏对基于数据流的加速器中核心间数据流依赖关系的管理支持。

提出的方法

  • 作者提出一种多核CM加速器,其中每个核心包含一个用于模拟矩阵-向量乘法的交叉阵列,以及一个用于处理不可并行化操作的轻量级数字处理单元(DPU)。
  • 他们将神经网络执行建模为一个数据流流水线,将每一层映射到一个独立的CM核心,并使用多面体编译技术表示和分析迭代之间的数据依赖关系。
  • 控制逻辑通过一系列基于ISL的操作生成:计算写-读依赖关系(K),确定每个读取操作的最后一个有效写入(L),并推导出每个输出位置的最大安全执行迭代(S)。
  • 关键关系S通过复合关系(K ∘ D′)上的字典序最大值(lexmax)计算得出,确保每个读取迭代仅保留最新的写入迭代,从而实现安全的流水线执行。
  • 编译器栈包括一个原型编译器(cmnnc)和一个用于建模CM硬件的模拟器,支持端到端的编译与验证。
  • 该方法使用ISL(整数集库)来表达和操作迭代空间、关系和依赖关系,实现对数据流约束的精确静态分析。

实验结果

研究问题

  • RQ1编译器如何生成正确且高效的控制逻辑,以强制执行在多核计算内存加速器上执行的神经网络层之间的数据依赖?
  • RQ2在流水线化、基于数据流的加速器架构中,表示和分析数据流依赖关系的最有效方法是什么?
  • RQ3多面体编译技术能否被适配以生成非本机支持于现有机器学习编译器的数据流加速器的控制状态机?
  • RQ4如何协同设计硬件与软件栈,以最小化模拟交叉阵列型CM加速器上的重新配置开销,并最大化推理吞吐量?

主要发现

  • 所提出的基于多面体的控制生成方法成功计算出流水线化神经网络层的安全执行顺序,确保所有CM核心之间的数据依赖关系均被正确尊重。
  • 该方法实现了在PCM基CM加速器上的高效、单次配置推理,避免了在每层之后重新编程交叉阵列带来的高重新配置成本。
  • 使用ISL和字典序最大值操作可实现对写-读依赖关系的精确静态分析,从而生成最小且正确的状态机控制逻辑。
  • 该方法具有通用性,不仅适用于CM架构,还可推广至其他数据流架构,并为未来加速器与其软件栈的协同设计提供基础。
  • 原型编译器(cmnnc)和模拟器成功实现了在CM加速器上对神经网络的端到端编译与执行,验证了该方法的可行性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。