Skip to main content
QUICK REVIEW

[论文解读] Snowflake: A Model Agnostic Accelerator for Convolutional Neural Networks

Vinayak Gokhale|arXiv (Cornell University)|Aug 8, 2017
Advanced Neural Network Applications参考文献 24被引用 5
一句话总结

Snowflake 是一种针对卷积神经网络(CNNs)的模型无关加速器,通过动态适应不同的数据访问模式和分层计算需求,在多种 CNN 架构中实现了高达 95% 的计算效率。它在无需架构特化的情况下,跨广泛的现代深度 CNN 基准测试中保持了高达 93% 的平均效率。

ABSTRACT

Deep learning is becoming increasingly popular for a wide variety of applications including object detection, classification, semantic segmentation and natural language processing. Convolutional neural networks (CNNs) are a class of deep learning algorithms that have been shown to achieve high accuracy for these tasks. CNNs are hierarchical mathematical models comprising millions of operations to produce an output. This output can be used to identify what objects the input image contained, the locations of these objects and what actions to take based on this knowledge. The high computational complexity combined with the inherent parallelism in these models makes them an excellent target for custom accelerators. CNNs produce tens of megabytes of intermediate data and have highly varied data access patterns, both among different network architectures and across the hierarchy of a single network. However, when optimizing for different CNN hierarchies and data access patterns, it is difficult for custom accelerators to achieve close to 100% computational efficiency. We present a network architecture agnostic accelerator called Snowflake. Snowflake has been designed to achieve close to peak computational efficiency while processing all parts of the CNN hierarchy. We use a benchmark suite consisting of a variety of recent, deep CNNs with different model hierarchies to evaluate the performance of the accelerator. We demonstrate that Snowflake has an average computational efficiency of 93% with a minimum of 91% and a maximum of 95%.

研究动机与目标

  • 解决在具有高度可变数据访问模式和分层结构的 CNN 自定义加速器中实现高计算效率的挑战。
  • 设计一种硬件加速器,使其在无需架构特化的情况下,对多种 CNN 架构均保持高效。
  • 最小化由不规则内存访问和计算负载波动引起的性能下降。
  • 证明单一加速器可在多种 CNN 层次和工作负载中实现接近峰值的效率。

提出的方法

  • Snowflake 采用可重构、数据流感知的架构,能够动态适应不同 CNN 层的计算和内存访问模式。
  • 其采用分层处理结构,支持 CNN 计算图中的空间并行与时间并行。
  • 加速器包含灵活的内存层次结构,结合优化的数据缓冲和片上数据重用策略,以减少对外部内存带宽的依赖。
  • 采用与网络无关的设计,将计算调度与模型特定特征解耦。
  • 系统使用运行时调度器,分析各层需求并相应配置处理资源。
  • 支持卷积层和全连接层,且重新配置开销极低。

实验结果

研究问题

  • RQ1单一加速器是否能在具有不同数据访问模式的多样化 CNN 架构中持续实现高计算效率?
  • RQ2与专用加速器相比,模型无关设计在计算效率和适应性方面表现如何?
  • RQ3在整个 CNN 层次结构中,包括早期和晚期层,能够维持多高的计算效率?
  • RQ4动态调度与内存优化在多大程度上可减少 CNN 加速器中的外部内存流量?

主要发现

  • Snowflake 在近期多种深度 CNN 的多样化基准测试中,实现了 93% 的平均计算效率。
  • 所有评估网络中的最低计算效率为 91%,最高达到 95%。
  • 该加速器在 CNN 层次结构的所有层级均保持了高效率,包括具有不规则数据访问模式的层。
  • 模型无关设计使系统在无需为不同 CNN 类型重新配置架构的情况下,保持一致的性能表现。
  • 通过智能的片上数据重用和缓冲策略,系统显著降低了对外部内存带宽的压力。

更好的研究,从现在开始

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

无需绑定信用卡

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