DeepBurning:神经网络系列学习加速器自动生成

发布时间 2023-06-06 22:35:19作者: 辛几何旋律

介绍一下这篇论文所做的工作。

Introduction

首先是背景方面,
现在出现了CNN、RNN、LSTM等多种神经网络,如何使用硬件加速的方法让这些网络跑的更快?
现在已经有的工作:

1.GPGPU

加速矩阵乘法,可以处理非常大规模的CNN和多种GPU支持的学习框架,
但缺点是硬件开销非常大,难以应用在嵌入式领域等对功耗要求比较高的条件下。

2.ASIC

面向特定应用的芯片,难以应用非常多变的神经网络和不同的激活函数条件下。
改进后的ASIP,仍然具有其局限性。

3.FPGA(现场可编程门阵列)

在效率和多功能性等方面取得平衡。可以利用FPGA平台实现特定网络,不过比较复杂,对开发者的水平要求还是很高的。

本文的工作:

设计DeepBurning,一个自动的工具(感觉相当于一键生成),将不同的神经网络映射为一个高性能和低功耗的硬件描述。并且自适应的生成数据布局(data layout)和动态控制流(control flow)。实现良好的时间和空间折叠性

遇到的机遇和挑战

为啥用FPGA?

FPGA的可重用性可以实现不同的NN网络以实现不同的应用,也解决了设计空间爆炸问题。
在做训练时,每个候选模型上得做大量运算。采用FPGA硬件加速本身是比较好,而且FPGA的可重用性也为NN模型和拓扑结构的探索提供了更多的空间。

为啥用DeepBurning?

首先,采用FPGA是不适合顶层的开发人员的。做一个“一键部署”是有必要的。
跟Tensorflow封装这种意义差不多。
其次,现在的自动化工具,是难以轻易协调软硬件(存在复杂的控制流和数据流),存在一定缺陷。

贡献:
根据神经网络生成RTL代码,并且会生成在线控制流实现软/硬件协同(不局限于硬件,时间折叠和空间折叠?),内存方面也做了一定的优化。