卷积神经网络CNN硬件实现PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 多向二维阵列结构和卷积神经网络实现
• 2013B/Memory-Centric Accelerator Design for convolutional Neural
Networks
3
2009/Architecture
• CNP:ConvNet Processor • CNP contains:
• Multiport DMA Streaming Engine:
• 设计方法与一代基本相同
18
• Operation:
– CPU通过送出配置指令,配置每个用于计算的块和其间的连接。 – CPU配置流引擎预读入用于处理的数据并准备好写结果。 – 当流引擎准备完成,将流数据输出。 – 每个ALU处理其对应的输入数据流并将结果传送到相邻的块中或者传回流引擎。 – 当流引擎处理完成就通知CPU运行结束。
…, c8*x2; …, c8*x3; …, c8*x4;
10
2013A / new Architecture
• 二维卷积框图C
– 该卷积结构将卷积的计算与卷积 窗的输入值分隔开,经过比较, 优势在于右边的2D Array Processor可以多个同时进行并 行计算得到多个输出结果,实现 了输入数据的复用,而前一种则 由于没有分开所以无法实现
– CNP:以fpga为基础的用于卷积神经网络的处理器
• 2010/Hardware Accelerated Convolutional Neural Networks for Synthetic Vision Systems
– 硬件加速卷积神经网络用于合成视觉系统
• 2013A/The Multi 2D Systolic Design and Implementation of Convolutional Neural Networks
c2*x2+c1*x1+c0*x0,
4. C0*x3, c1*x3+c0*x2,
c2*x3+c1பைடு நூலகம்x2+c0*x1,
5. C0*x4, c1*x4+c0*x3,
c2*x4+c1*x3+c0*x2,
6. C0*x5, c1*x5+c0*x4,
c2*x5+c1*x4+c0*x3,
c3*x5+c2*x2+c1*x1+c0*x0,…
卷积神经网络CNN 硬件实现
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
Main paper
• 2009/CNP: An FPGA-based Processor for Convolutional Networks
– 为了实现数据流的连续,FIFO需要双向 同时使用。
– FIFO的深度决定了属于每一段的最长时 间
6
2009/Architecture
• VALU:
– 所有卷积神经网络的基本运算都在其中 实现,主要包括二维卷积累加求和、使 用均值滤波器和最大值滤波器进行二、 维空间合并和二次抽样和逐点非线性变 换
– A Control Unit (CU) – A Parallel/Pipelined Vector and Logic
Unit (VALU) – An I/O control unit – A memory interface
• CU:普通的计算机结构,以CPU为 核心,用于给在VALU中的数据处理 步骤进行排序,所以称为控制单元。
4
2009/Architecture
• VALU:
– 实现卷积神经网络的各种运算包括二维 卷积、空间合并(二次抽样)、驻点非 线性函数变换和其他一般矢量运算符。
– 有直接的存储通道
• I/O unit:
– 包括两个硬件模块,一个用于从标准DVI 通道获取视频信号,一个用于生成视频 标志在标准DVI显示器上显示
11
2013A/new Architecture
• 二维卷积框图C
– 该卷积结构将卷积的计算与卷积 窗的输入值分隔开,经过比较, 优势在于右边的2D Array Processor可以多个同时进行并 行计算得到多个输出结果,实现 了输入数据的复用,而前一种则 由于没有分开所以无法实现。
12
• Sigmoid 函数 • 硬件实现
5
2009/Architecture
• Memory interface:
– 允许同时多个到同一存储地址的通路从 而实现并行
– 有专用硬件判别器用于与外存间通道的 多路传输或多路分用,设计原理是将一 个端口与外存相连并估计其带宽分配出 一个确定的时间段,然后当时间到达时 便切换到下一个端口,这样便可以实现 不同端口的同时对外存的访问。
– 主要介绍二维卷积和sigmoid函数的硬 件实现
7
2009/Architecture
• 二维卷积框图A
8
2009/Reference paper
• 二维卷积框图B
9
1. C0*x0, c1*x0,
…, c8*x0;
2. C0*x1, c1*x1+c1*x0,
…, c8*x1;
3. C0*x2, c1*x2+c0*x2,
19
2013B/A Memory-Centric Architecture—ICCD
• The effect of the memory bottlenect can be reduced by a flexible memory hierarchy that supports the complex data access patterns in CNN workload.
2009/Architecture
13
2010/second-generation architecture
14
• 第二代结构
–包括CPU控制单元、许多平行处理单元、存储接口流引擎 –增加了很多平行矢量处理单元 –允许数据流在很多处理块内无缝运转处理。
15
• CPU:
– 作为系统的灵活控制单元控制配置总线,系统的其他模块都连接着全集配置总线,所 以可以在运行时对系统中的参数进行重新配置,包括从处理块之间的联系到数据到外 存的映射。
16
• ALU:
– 在二维网格中独立的处理块,包括全局路由器、本地路由器、流处理单元 – 每个ALU都通过local router与附近的四个ALU相连 – 全局路由器实现了与外存的数据传输、本地路由器实现了ALU之间的数据传输
17
• ALU:
– 实现了所有在卷积神经网络中需要的运算,其中主要是二维卷积运算和非线性变换。 (不是很理解计算细节,文中没有提及)
• 2013B/Memory-Centric Accelerator Design for convolutional Neural
Networks
3
2009/Architecture
• CNP:ConvNet Processor • CNP contains:
• Multiport DMA Streaming Engine:
• 设计方法与一代基本相同
18
• Operation:
– CPU通过送出配置指令,配置每个用于计算的块和其间的连接。 – CPU配置流引擎预读入用于处理的数据并准备好写结果。 – 当流引擎准备完成,将流数据输出。 – 每个ALU处理其对应的输入数据流并将结果传送到相邻的块中或者传回流引擎。 – 当流引擎处理完成就通知CPU运行结束。
…, c8*x2; …, c8*x3; …, c8*x4;
10
2013A / new Architecture
• 二维卷积框图C
– 该卷积结构将卷积的计算与卷积 窗的输入值分隔开,经过比较, 优势在于右边的2D Array Processor可以多个同时进行并 行计算得到多个输出结果,实现 了输入数据的复用,而前一种则 由于没有分开所以无法实现
– CNP:以fpga为基础的用于卷积神经网络的处理器
• 2010/Hardware Accelerated Convolutional Neural Networks for Synthetic Vision Systems
– 硬件加速卷积神经网络用于合成视觉系统
• 2013A/The Multi 2D Systolic Design and Implementation of Convolutional Neural Networks
c2*x2+c1*x1+c0*x0,
4. C0*x3, c1*x3+c0*x2,
c2*x3+c1பைடு நூலகம்x2+c0*x1,
5. C0*x4, c1*x4+c0*x3,
c2*x4+c1*x3+c0*x2,
6. C0*x5, c1*x5+c0*x4,
c2*x5+c1*x4+c0*x3,
c3*x5+c2*x2+c1*x1+c0*x0,…
卷积神经网络CNN 硬件实现
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
Main paper
• 2009/CNP: An FPGA-based Processor for Convolutional Networks
– 为了实现数据流的连续,FIFO需要双向 同时使用。
– FIFO的深度决定了属于每一段的最长时 间
6
2009/Architecture
• VALU:
– 所有卷积神经网络的基本运算都在其中 实现,主要包括二维卷积累加求和、使 用均值滤波器和最大值滤波器进行二、 维空间合并和二次抽样和逐点非线性变 换
– A Control Unit (CU) – A Parallel/Pipelined Vector and Logic
Unit (VALU) – An I/O control unit – A memory interface
• CU:普通的计算机结构,以CPU为 核心,用于给在VALU中的数据处理 步骤进行排序,所以称为控制单元。
4
2009/Architecture
• VALU:
– 实现卷积神经网络的各种运算包括二维 卷积、空间合并(二次抽样)、驻点非 线性函数变换和其他一般矢量运算符。
– 有直接的存储通道
• I/O unit:
– 包括两个硬件模块,一个用于从标准DVI 通道获取视频信号,一个用于生成视频 标志在标准DVI显示器上显示
11
2013A/new Architecture
• 二维卷积框图C
– 该卷积结构将卷积的计算与卷积 窗的输入值分隔开,经过比较, 优势在于右边的2D Array Processor可以多个同时进行并 行计算得到多个输出结果,实现 了输入数据的复用,而前一种则 由于没有分开所以无法实现。
12
• Sigmoid 函数 • 硬件实现
5
2009/Architecture
• Memory interface:
– 允许同时多个到同一存储地址的通路从 而实现并行
– 有专用硬件判别器用于与外存间通道的 多路传输或多路分用,设计原理是将一 个端口与外存相连并估计其带宽分配出 一个确定的时间段,然后当时间到达时 便切换到下一个端口,这样便可以实现 不同端口的同时对外存的访问。
– 主要介绍二维卷积和sigmoid函数的硬 件实现
7
2009/Architecture
• 二维卷积框图A
8
2009/Reference paper
• 二维卷积框图B
9
1. C0*x0, c1*x0,
…, c8*x0;
2. C0*x1, c1*x1+c1*x0,
…, c8*x1;
3. C0*x2, c1*x2+c0*x2,
19
2013B/A Memory-Centric Architecture—ICCD
• The effect of the memory bottlenect can be reduced by a flexible memory hierarchy that supports the complex data access patterns in CNN workload.
2009/Architecture
13
2010/second-generation architecture
14
• 第二代结构
–包括CPU控制单元、许多平行处理单元、存储接口流引擎 –增加了很多平行矢量处理单元 –允许数据流在很多处理块内无缝运转处理。
15
• CPU:
– 作为系统的灵活控制单元控制配置总线,系统的其他模块都连接着全集配置总线,所 以可以在运行时对系统中的参数进行重新配置,包括从处理块之间的联系到数据到外 存的映射。
16
• ALU:
– 在二维网格中独立的处理块,包括全局路由器、本地路由器、流处理单元 – 每个ALU都通过local router与附近的四个ALU相连 – 全局路由器实现了与外存的数据传输、本地路由器实现了ALU之间的数据传输
17
• ALU:
– 实现了所有在卷积神经网络中需要的运算,其中主要是二维卷积运算和非线性变换。 (不是很理解计算细节,文中没有提及)