[论文解读] Snowflake: A Model Agnostic Accelerator for Deep Convolutional Neural Networks
Snowflake 是一种基于 FPGA 的模型无关 CNN 加速器,通过利用基于 trace 的动态内存访问和双缓冲技术,隐藏 DRAM 延迟,在现代深度学习模型上实现了超过 91% 的计算效率。它在 Xilinx Zynq XC7Z045 设备上实现了 128 G-ops/s 的峰值吞吐量,以 100 FPS 处理 AlexNet,以 36.4 FPS 处理 GoogLeNet,以 17 FPS 处理 ResNet-50,该设备配备 256 个 MAC 单元,时钟频率为 250 MHz。
Deep convolutional neural networks (CNNs) are the deep learning model of choice for performing object detection, classification, semantic segmentation and natural language processing tasks. CNNs require billions of operations to process a frame. This computational complexity, combined with the inherent parallelism of the convolution operation make CNNs an excellent target for custom accelerators. However, when optimizing for different CNN hierarchies and data access patterns, it is difficult for custom accelerators to achieve close to 100% computational efficiency. In this work, we present Snowflake, a scalable and efficient accelerator that is agnostic to CNN workloads, and was designed to always perform at near-peak hardware utilization. Snowflake is able to achieve a computational efficiency of over 91% on modern CNN models. Snowflake, implemented on a Xilinx Zynq XC7Z045 SoC is capable of achieving a peak throughput of 128G-ops/s and a measured throughput of 100 frames per second and 120 G-ops/s on the AlexNet CNN model, 36 frames per second and 116G- ops/s on the GoogLeNet CNN model and 17 frames per second and 122 G-ops/s on the ResNet-50 CNN model. To the best of our knowledge, Snowflake is the only implemented system capable of achieving over 91% efficiency on modern CNNs and the only implemented system with GoogLeNet and ResNet as part of the benchmark suite.
研究动机与目标
- 解决由于不同网络架构中不规则的数据访问模式,导致自定义 CNN 加速器计算效率低下的挑战。
- 设计一种可扩展的、模型无关的加速器,在无需重新配置的情况下,保持对不同 CNN 工作负载的高利用率。
- 通过智能的内存访问调度有效隐藏 DRAM 延迟,实现接近峰值的硬件利用率。
- 实现在复杂、现代 CNN(如 GoogLeNet 和 ResNet-50)上的实时推理,这些模型在以往的加速器研究中很少被基准测试。
- 在 FPGA 平台上展示高效率和高吞吐量,为基于 FPGA 的 CNN 加速器树立新基准。
提出的方法
- 采用基于 trace 的内存访问调度机制,预测并预取权重和特征图,最大限度减少空闲周期。
- 实施双缓冲技术,将计算与 DRAM 数据传输重叠,有效隐藏 DRAM 延迟。
- 采用可扩展的架构,由多个计算集群组成,每个集群包含 256 个 MAC 单元,以支持不同工作负载。
- 通过抽象特定网络结构,使加速器实现模型无关,从而实现对各种 CNN 的无缝部署。
- 利用 Xilinx Zynq XC7Z045 SoC,通过可编程逻辑实现定制硬件加速,通过处理单元实现控制逻辑。
- 采用性能建模和基准测试,使用完整网络推理(而非单个层)以确保真实可靠的效率测量。
实验结果
研究问题
- RQ1模型无关的 CNN 加速器是否能在 AlexNet、GoogLeNet 和 ResNet-50 等多样化现代 CNN 架构上持续实现高计算效率?
- RQ2在不牺牲面积或功耗效率的前提下,基于 trace 的预取和双缓冲技术在 CNN 加速器中能多大程度上隐藏 DRAM 延迟?
- RQ3当在完整网络而非孤立层上评估时,自定义 FPGA 加速器的计算效率与以往的 ASIC 和 FPGA 加速器相比如何?
- RQ4能否通过单一可重构硬件设计,同时实现在复杂高参数 CNN 上的高吞吐量和低延迟?
- RQ5在保持高效率的前提下,是否可行将基于 FPGA 的加速器扩展至大规模 CNN 上,实现接近峰值性能?
主要发现
- Snowflake 在 AlexNet 上实现 95% 的计算效率,在 GoogLeNet 上实现 91%,在 ResNet-50 上实现 95%,在这些模型上均优于所有先前实现的加速器。
- 在 Xilinx Zynq XC7Z045 上,Snowflake 实现 120 G-ops/s 和 100 FPS 的 AlexNet 性能,116.4 G-ops/s 和 36.4 FPS 的 GoogLeNet 性能,以及 122 G-ops/s 和 17 FPS 的 ResNet-50 性能。
- 该加速器在相同设备上的峰值吞吐量为 128 G-ops/s,由于有效隐藏了 DRAM 延迟,实测性能始终接近峰值。
- Snowflake 是首个对 GoogLeNet 和 ResNet-50 进行基准测试的已实现加速器,这两个模型比早期基准如 AlexNet 或 VGG 更为复杂。
- 该系统在存在或不存在 DRAM 延迟的情况下均保持一致的性能和效率,因为它通过双缓冲和基于 trace 的调度有效隐藏了延迟。
- 将 Snowflake 扩展至使用 768 个 MAC 单元(三个计算集群)的同一 FPGA 上,可实现 384 G-ops/s 的峰值性能,从而在保持恒定效率的同时支持高吞吐量服务器工作负载。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。