目录
(1)graph partitioning with reconfiguration(带有重构的图划分)
(2)coarse-grained folding(粗粒度折叠)
(3)fine-grained folding(细粒度折叠)
一、简介
1.题目:
fpgaConvNet: Mapping Regular and Irregular Convolutional Neural Networks on FPGAs
2.时间:
2019.02
3.来源:
IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS
4.摘要:
由于现如今的人工智能模型越来越大,参数量不断上升,如何低功耗、高性能的进行模型部署成为了重点关注方向。人工智能框架Caffe\Torch等运行在昂贵的GPU加速平台上,而另一选项ASIC芯片的功能在制造后功能固定,缺少灵活性。此时,FPGA由于其强大的计算能力、低功耗性、可定制性以及可重构性等成为了加速深度学习的可选平台。此文章提出的fpgaConvNet,是一种用于在fpga上优化卷积神经网络映射的端到端框架,实现了ConvNets在FPGA上的自动化映射。
5.论文主要贡献:
1.通过提出的SDF模型来形式化执行DSE任务。
2.生成的设计对于吞吐量、延迟以及多目标标准等都进行了优化。
3.是第一个针对三大神经网络(Inception-based, residual, and dense)通用的框架。
二、相关名词
FPGA:field-programmable gate array,现场可编程门阵列
ConVNets:convoluntional neural network,卷积神经网络
SDF:synchronous dataflow,同步数据流
DSE:design space exploration,设计空间探索
MOO:multiobjective optimization,多目标优化
DAG:directed acyclic graph,有向无环图
三、相关背景知识
1.FPGA
是一个可以通过编程来改变内部结构的芯片,作为专用集成电路(ASIC)领域中的一种半定制电路而出现的。FPGA功能实现:需要通过编程即设计硬件描述语言,经过EDA工具编译、综合、布局布线后转换为可烧录的文件,最后加载到FPGA器件中。主要应用于大数据量运算以及大数据并行通信。
2.卷积神经网络
CNN 是深度学习主要算法之一,其余还有DNN(深度神经网络)和RNN(循环神经网络等)。卷积神经网络模型一般分为特征提取(卷积层、非线性层、池化层)和分类(全连接层)两部分,其中特征提取部分计算量大,主导了ConvNets的计算成本。

3.同步数据流(SDF)
一种用于并行系统分析和设计的计算模型,硬件或软件计算系统被描述为有向图,称为同步数据流图(SDFG),节点代表计算,并用弧表示它们之间的数据流。
4.设计空间探索(DSE)
本文中DSE 任务为约束优化问题,目的是优化感兴趣的性能指标。通过 SDF 变换遍历设计空间,直到获得优化目标的设计点。
四、处理流程概述

1.用一组参数元组表示卷积模型,如卷积层表示方法:
<Kh , Kw, Sh , Sw, P, N>
Kh 和 Kw 是filter的高度和宽度,Sh 和 Sw 是确定沿特征图高度和宽度的连续窗口之间的步幅,P是零填充,N是filter的个数
2.用R表示目标fpga的资源预算:
Rfpga = {DSP, LUT, FF, BRAM} FPAG包含的一组异构资源
Rmem = {Bmem,Cmem} 片外存储器的带宽和容量
R = Rfpga ∪ Rmem
3.使用SDFG表示ConvNets
将SDFG使用拓扑矩阵表示,并分解为S(streams matrix)、C(channels matrix)、R(rates matrix)做Hadamard乘积,并允许矩阵中包含实数。
4.fpgaConvNets架构空间设计中的四种类型转换
(1)graph partitioning with reconfiguration(带有重构的图划分)
将原始SDFG按深度分割为若干子图,每个子图都映射到一个独特的硬件架构,专门针对特定的子图进行优化,可以有效利用FPGA资源。在每个子图中,片上存储器用于存储权重和构建块之间的缓冲特征映射。此外,与片外存储器的通信被最小化,只包含子图的输入和输出流。此外,为了避免输入子图时都要重复配置整个fpga,采用将多个输入作为批处理的方式,这样重新配置的开销可以摊销。

(2)coarse-grained folding(粗粒度折叠)
(3)fine-grained folding(细粒度折叠)
(4)weights reloading(权重重装)
权重重新加载转换旨在解决两个问题:(1)提供一种执行多个子图的机制,而不会因FPGA重新配置而造成延迟惩罚;(2)启用具有超过FPGA片上内存容量的权重层的目标,这是通过输入特征映射折叠来处理的。类似于带重构的图划分,这种转换将给定的SDFG沿深度划分为几个子图。但是,不是为每个子图生成不同的体系结构,而是派生出一个单一的灵活的体系结构,可以通过在不同模式下操作来执行所有结果子图的工作负载。

该文提出fpgaConvNet,一个针对FPGA的端到端框架,用于高效映射卷积神经网络。通过同步数据流(SDF)模型进行设计空间探索,优化包括Inception-based, residual, dense等各类神经网络的吞吐量、延迟和多目标标准。fpgaConvNet利用FPGA的可编程性和低功耗特性,实现卷积模型的自动化映射,包括图划分、折叠和权重重装等转换策略。
:fpgaConvNet&spm=1001.2101.3001.5002&articleId=128461114&d=1&t=3&u=aa0c55ff2f0345e6a65b4de1b7d519a1)
1001

被折叠的 条评论
为什么被折叠?



