文献阅读(1):fpgaConvNet

目录

一、简介

1.题目:

2.时间:

3.来源:

4.摘要:

5.论文主要贡献:

二、相关名词

三、相关背景知识

1.FPGA

2.卷积神经网络

3.同步数据流(SDF)

4.设计空间探索(DSE)

四、处理流程概述

1.用一组参数元组表示卷积模型,如卷积层表示方法:

2.用R表示目标fpga的资源预算:

3.使用SDFG表示ConvNets

4.fpgaConvNets架构空间设计中的四种类型转换

(1)graph partitioning with reconfiguration(带有重构的图划分)

(2)coarse-grained folding(粗粒度折叠)

(3)fine-grained folding(细粒度折叠)

(4)weights reloading(权重重装)

 


一、简介

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的计算成本。

文献阅读(1):fpgaConvNet_第1张图片

3.同步数据流(SDF)

一种用于并行系统分析和设计的计算模型,硬件或软件计算系统被描述为有向图,称为同步数据流图(SDFG),节点代表计算,并用弧表示它们之间的数据流。

4.设计空间探索(DSE)

本文中DSE 任务为约束优化问题,目的是优化感兴趣的性能指标。通过 SDF 变换遍历设计空间,直到获得优化目标的设计点。


四、处理流程概述

文献阅读(1):fpgaConvNet_第2张图片

1.用一组参数元组表示卷积模型,如卷积层表示方法:

 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,采用将多个输入作为批处理的方式,这样重新配置的开销可以摊销。

文献阅读(1):fpgaConvNet_第3张图片

 

(2)coarse-grained folding(粗粒度折叠)

(3)fine-grained folding(细粒度折叠)

(4)weights reloading(权重重装)

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

文献阅读(1):fpgaConvNet_第4张图片

 

你可能感兴趣的:(文献阅读,论文阅读)