人工智能芯片设计第7章-人工智能芯片架构设计_第1页
人工智能芯片设计第7章-人工智能芯片架构设计_第2页
人工智能芯片设计第7章-人工智能芯片架构设计_第3页
人工智能芯片设计第7章-人工智能芯片架构设计_第4页
人工智能芯片设计第7章-人工智能芯片架构设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章:人工智能芯片架构设计人工智能芯片设计ArtificialIntelligenceChipDesign7.1卷积神经网络加速器整体设计2ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign内容介绍

本章中的卷积神经网络硬件加速器针对卷积神经网络的应用——推理过程进行硬件加速实现,对于给定的输入图像信息,加速器利用已训练好的网络模型对其进行处理。即本章的硬件加速器仅涉及卷积神经网络的前向传播过程,而不包含反向传播过程。鉴于VGGNet系列网络模型在实际工程中应用较为广泛,且本身结构统一具有代表性,本章主要针对VGGNet设计硬件加速架构。7.1.1加速器设计分析3ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign为什么需要硬件加速器?

卷积神经网络(CNN)是计算密集型模型,需要高效的计算支持。传统CPU和GPU在能耗和并行计算能力上存在局限。硬件加速器通过优化存储管理和运算单元,实现超高效能和计算速度。CPU与GPU在CNN计算上的局限性CPU适用于串行任务处理,不足以支撑大规模并行卷积计算。GPU虽然并行度高,但功耗大,不适合移动设备等低功耗环境。7.1.1加速器设计分析4ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

为何选择FPGA?FPGA具有高能量效率和可重配置的优点。适合于能耗敏感和成本控制严格的应用场景。灵活性高,适合快速开发和市场适应。FPGA部署CNN的挑战复杂的浮点运算需求。高数据传输量对带宽的挑战。7.1.1加速器设计分析5ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积神经网络加速器的设计优化并行计算:提升输入通道间、输出通道间和像素间的并行度。数据交互:设计高效的存储管理单元,减少数据读写次数,提高数据利用效率。运算与存储协同:优化数据传输与计算的协同效率,减少等待时间。7.1.1加速器设计分析6ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

使用Roofline模型分析性能Roofline模型建立了系统性能与片外存储流量以及硬件平台所能提供的带宽和计算峰值间的联系,如图7-1所示。图7-1Roofline模型通过提高数据利用率和优化计算与传输比率能够显著提升系统吞吐量。7.1.1加速器设计分析7ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

VGGNet16-D网络模型介绍

由多个卷积层和宽卷积层组成,优于特征提取。应用于图像识别和其他视觉任务。层名特征图尺寸卷积核尺寸输入通道输出通道稀疏化比例参数量Conv1_1224336411728Conv1_2224364647.694905Conv2_11123641284.3516974Conv2_211231281285.2627612Conv33568004Conv3_25632562567.1484933Conv3_35632562566.2595319Conv4_12832565124.35273051Conv4_22835125126.25388242Conv4_32835125125.26456363Conv5_11435125122.38989901Conv5_21435125122.171095804Conv5_31435125122.44967671Fc6--2508840968.3312241300Fc7--409640964.543605500Fc8--4096100014096000表7-1VGGNet16-D稀疏化后各层特征参数表7.1.1加速器设计分析8ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

存储挑战分析与策略

存储挑战:Conv1_2层:数据量最大的卷积层,大多数硬件平台无法满足其高存储需求。优化策略:图7-2表示输出特征图上一点像素的计算,计算数据仅与周围像素点数据相关,因此可将特征图划分为独立的图像块,每块包括边缘像素,减少对周围数据的依赖。实际应用:所有特征图划分为统一尺寸的像素块,适应不同卷积层的特征图尺寸。减少了复杂的控制过程,满足大多数硬件设备的处理能力。图7-2卷积窗在特征图上卷积7.1.1加速器设计分析9ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

计算流水线设计优化计算流程的挑战:卷积层与全连接层不能并行计算,需顺序执行;复杂的依赖关系增加了计算逻辑时间,影响整体效率。流水线的优势:流水线可以提升卷积和全连接计算单元的效率;同时处理相关计算任务,减少空闲时间。图7-3系统级流水示意图

如图7-3为本文设计的两级计算流水结构。这种方式下,首先有利于提高卷积的计算单元和全连接的计算单元的计算效率;并且在卷积运算进行计算时,全连接的计算单元也在进行相关的计算任务。7.1.2加速器系统架构10ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

加速器系统架构如图7-4所示,图中红色线条代表控制信号通路,黑色线条代表数据信号通路,整个系统从功能上主要分为系统控制、卷积和全连接计算、和存储管理三大模块。图7-4加速器系统架构7.1.2加速器系统架构11ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

计算模块

卷积引擎(CE):处理卷积层,包含多个并行的处理单元阵列(PEA)。

全连接引擎(FCE):处理全连接层,配置一个PEA。

存储管理模块

PCIe接口:连接计算机主机与加速器,负责数据交互。直接与PCIe交互的是片外存储DDR。

片上缓存单元:暂存所需特征图和权值数据。包括输入缓存(CIB)、输出缓存(COB)、权值

缓存和全连接缓存(FCB)。

系统控制模块

CNN控制器:调度计算单元和存储管理单元工作;控制系统流水和并行处理的时序。7.1.3硬件架构运行机理12ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

系统初始化与数据传输

主机端以Batch方式向FPGA传输图像和VGGNet-16权值。图像和权值数据存储在DDR3中。

计算控制启动加速器启动后,CNN控制单元接管操作。数据交互单元(DEU)从DDR3载入输入图像和参数到内存阵列MMA。

卷积计算过程卷积计算引擎(CE)启动,处理输入数据。输出数据存储在MMA,进行ReLU操作后写回DDR3。13ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

流水线操作与全连接计算

卷积结果形成读取-卷积-写出的流水线操作。

全连接计算完全在片上RAM进行,减少数据交互。

四级流水线结构

整体结构包括读取数据、卷积计算、写出数据和

全连接计算的四级流水。

广义流水架构提高时序协调性和计算效率。

图7-5顶层流水线示意图7.1.3硬件架构运行机理7.2

加速器系统控制策略14ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign7.2.1基于循环分块的卷积运算策略15ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign卷积层占据了整个卷积神经网络99%以上的计算量,因此针对卷积层运算的系统控制设计是CNN加速器设计的重点内容,本章针对卷积层提出一种基于循环分块的并行和流水运行策略,其伪代码如算法7-1所示。

循环分块机制由于FPGA片上存储限制,特征图被分割为多个小区域(tiles)。Tiles基于VGGNet特征图尺寸设计,以实现高效的并行处理。

并行与流水线操作使用双端口RAM设计的输入缓存单元(CIB)。并行处理64个PEA进行卷积运算,提高数据预读取效率。7.2.1基于循环分块的卷积运算策略16ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign输入与输出特征图优先模式

输出特征图优先模式:多个输入特征图并行处理,以快速生成输出特征图。输入特征图优先模式:优化带宽需求,减少数据读取次数,提高计算效率。

优化结果与成本

输入特征图优先模式在带宽和功耗上表现优异。需要更多片上缓存资源来存储中间计算结果图7-6输入、输出特征图优先卷积计算7.2.2存算并行与流水控制17ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign并行计算概述卷积神经网络中的三种并行运算方式:输出通道间并行、输入通道间并行和卷积核内部并行。并行计算挑战:FPGA的带宽和存储器空间限制是实现并行计算的主要障碍;高效的硬件加速器设计需要平衡带宽和计算并行度。优化策略:

数据预读取:通过预读取数据到片上缓存,减少运行时的带宽需求。

数据重复利用:有效管理数据流,减少对外部存储的频繁访问。7.2.2存算并行与流水控制18ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign并行计算实现与流水线控制实现的并行计算卷积核内部并行:在处理元素阵列(PEA)内部实现,加速单个特征图的处理。输入通道间并行:多个输入通道的数据同时处理,提高整体计算效率。流水线操作主要流程:数据读取、卷积运算、写出输出特征图。存算并行控制:优化数据流,实现数据预读取与卷积运算的并行执行。图7-7卷积层存算并行与流水控制7.2.2存算并行与流水控制19ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign全连接层流水结构三级流水结构:读取数据、计算、写出数据。构造卷积-全连接四级流水结构:读取数据、卷积运算、写出数据、全连接运算。

流水线效率优化时序协调:优化各模块的工作协同,减少处理延迟。效率提升:通过精确控制数据流向和处理时间,提高整体系统性能图7-8

卷积-全连接流水结构7.3卷积层加速器设计20ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign7.3.1卷积加速器整体设计21ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign图7-9

卷积计算单元结构框图卷积层加速器的重要性与设计概述卷积层是CNN中最重要的层,贡献最大的计算量。稀疏化的目标:通过卷积核级别的稀疏化减少计算

量,同时尽量保持识别精度。设计需求:稀疏化后的结构不完整性要求特别设计

加速计算单元。

卷积计算单元结构卷积计算单元主要包括输入特征图缓存、输出部分

和缓存、多并行引擎、参数缓存、片上计算寄存器缓存等。7.3.2

混合计算分析22ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign图7-10浮点数据块浮点化混合计算分析概述计算挑战:传统32位浮点数计算复杂,消耗大量逻辑资源和时间,限制了计算效率。量化策略:目前主流的量化是使用16比特浮点数和低比特的定点数,以提高计算速度。块浮点介绍:块浮点的数据形式是一种浮点数据表示形式,不过是针对一个完整的数据块而言的。在使用块浮点时,首先是整个数据块共有的一个指数位,这个指数位数值上取原始数据块浮点表达中指数位最大的数值。而对于每个单独的数据,则有各自单独的符号位和尾数位,这样表示的数据实际以定点数的形式存储,如图7-10所示。7.3.2

混合计算分析23ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign块浮点数据的结构和优势数据结构:块浮点数据包括共享的指数位和每个数据的符号位与尾数位。存储与计算:块浮点数据实际以定点数形式存储,减少存储需求和提高计算速度。数据划分:将输入特征图像和卷积参数划分为数据块,共用一个指数位,减少量化误差。混合计算策略的实施计算过程:卷积核内部采用块浮点计算,部分和累加时采用16比特浮点计算。效率与精度:块浮点计算简化了计算过程,同时16比特浮点计算保证了累加精度。存储需求降低:转换成16比特浮点数后存储部分和,降低了存储需求。7.3.3

混合算术卷积引擎设计24ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign混合算术卷积引擎概述卷积引擎目标:针对VGGNet16-D网络进行硬件加速器设计。计算方式:通过卷积窗在图像块上滑动完成卷积操作,优化输入像素重叠处理。设计重点:实现输入特征图的复用和块浮点计算的集成。图7-11卷积窗在像素块上卷积7.3.3

混合算术卷积引擎设计25ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign多级乘加器(MMAC)结构与卷积计算MMAC功能:完成数据的乘加任务,提高卷积计算效率。计算过程:从输入数据缓存中导入数据到MMAC,并进行多级乘加运算。累加与转化:对计算后的数据进行累加,并转化为16比特浮点数据。图7-12混合算术卷积引擎结构7.3.3

混合算术卷积引擎设计26ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign解决稀疏化引起的挑战:稀疏化的影响:

稀疏化处理增加了卷积引擎之间的结果不确定性。

稀疏化后的卷积引擎结果在数据通道上显示不完整,难以实时访问共享缓存。解决策略:

采用片上寄存器存储方式,优化数据存取和减少冲突。

输出的部分和结果被细分为四个独立的像素块存储,每块需求一定位宽。技术细节

每个寄存器缓存阵列设计为足够的比特宽度,保证数据处理需求。

存储操作仅需1个时钟周期,极大优化整体计算时间消耗。

实现卷积引擎对部分和缓存的轮流访问,有效避免冲突。7.3.4

片上存储系统设计27ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign输出部分和缓存结构设计:输出部分和缓存分成四块,增加数据访问速度。使用双端口BRAM,实现高效的读写分离。输出部分和缓存的宽度设计,确保快速访问和数据整合。图7-13输出部分和缓存方案

片上存储系统是卷积神经网络加速器中重要部分之一。存储访问效率也是卷积神经网络加速器的计算效率重要影响因素。本节主要针对性的设计了稀疏化神经网络加速器片上部分和缓存和稀疏化卷积核缓存系统。7.3.4

片上存储系统设计28ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign卷积参数存储优化采取稀疏化方法优化参数存储,削减空闲存储空间。利用压缩存储技术(CSC和CSR),提高存储效率。将剩余的卷积核参数重新排列,减少访问次数和功耗。图7-14卷积核存储方案7.3.5

稀疏化卷积计算调度系统29ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign(1)卷积层加速器控制流程状态控制与数据流程状态机控制输入数据读取、参数加载、卷积开始和输

出数据写出。优化数据流,减少等待时间,使计算过程更高效。数据与参数管理策略在卷积计算期间边计算边读取数据和参数,避免计算停滞。一旦完成所有参数和数据加载,直接启动卷积计算。卷积层计算完成后,将结果直接写入全连接层的缓存或

DDR,为下一步计算准备。图7-15卷积层加速器的整体流程7.3.5

稀疏化卷积计算调度系统30ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign(2)卷积引擎控制方式原始控制方案按序加载卷积引擎中的数据,按需计算。控制器指导卷积窗移动进行卷积运算。现有方案导致高并行计算时效率低下,数据等待

时间长。优化控制方案新方案在数据加载后立即启动计算,减少等待。优化数据加载,每个卷积引擎加载后立即计算,

减少空闲时间。图7-16原始卷积引擎计算和数据加载控制方案图7-17优化卷积引擎计算和数据加载控制方案7.4全连接层加速器设计31ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign7.4.1

全连接层存储方案32ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign双缓存设计为防止计算过程中覆盖输入神经元数据,采用双缓存设计。利用兵乓读取控制方式,优化输入输出数据的交替访问,减少位置置换。计算效率提升策略缓存主要用于存储从DDR中读取的参数数据,确保全连接计算过程中快速获取参数。乒乓读取方式减少数据加载对计算效率的影响。图7-18双缓存与乒乓读取访问7.4.2计算单元设计33ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign稀疏化参数存储与访问稀疏化参数与对应输入神经元一同存储。使用标志位表示这个参数是否参与特定输出通道的计算。输入神经元数据管理设计FIFO缓存结构,保证输入神经元数据与参数位置对应。神经元数据按输出通道需求加载到FIFO中,实现有序的乘加操作。参数与数据同步参数存储于片外缓存,相应的FIFO缓存结构存储匹配的参数数据。确保计算中参数和神经元数据精准对应,提高计算效率。图7-19全连接计算单元结构7.5存储管理单元34ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign7.5存储管理单元35ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign高效存储管理单元目的:高效的存储管理单元设计能够提高片上数据利用率;提升数据交互效率;降低系统带宽需求数据传输与系统瓶颈:由于计算单元必须要在数据到来之后才能开始工作,尽管本章采取了一系列乒乓缓存和数据预读取机制,并结合卷积流水线操作来消除数据等待的延迟,但是数据传输仍是制约加速器吞吐量的关键所在。存储管理单元组成:片外存储:DDR;片上缓存:包括卷积层和全连接层缓存区。系统功耗考量:来自片外存储DDR和片上缓存RAM以及寄存器状态翻转的功耗;频繁数据读写增加系统功耗;需优化特征图和权值的组织方式以提升数据传输效率。7.5.1存储管理单元的重要性36ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign高效存储管理单元的重要性对功耗的影响功耗估算:基于寄存器的反转次数。寄存器填充的能量消耗,取决于存储区域大小和寄存器数量。内存填充方式和寻址逻辑影响功耗。对计算速度的影响高效的内存管理可以最大化数据利用率,减少读取次数。降低时序空闲。数据读取与卷积计算的流水线操作减少等待周期。总体计算速度受限于外部存储的I/O带宽和读写操作。图7-20

数据读取对计算速度的影响图7-20

数据读写对计算速度的影响7.5.2存储管理单元架构设计37ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

存储单元概述存储管理单元的设计关键在于高效的内存组织和快速访问能力。主要包括输入缓存区、输出缓存区、权值缓存区、偏置缓存区和预读取缓存区。具体缓存配置输入缓存区:2个大小的寄存器组。输出缓存区:16个大小的寄存器组。权值缓存区:2个大小的寄存器组。偏置缓存区:512个寄存器组。预读取缓存区:侧边缓冲区和顶部预读取区,分别由寄存器组成。图7-21片上缓存结构7.5.2存储管理单元架构设计38ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

卷积操作和输入缓存卷积操作基于块执行,称为输入缓存。卷积周期对应一个核心区域块的大小。

像素补齐和缓存大小在块边缘进行卷积需要进行像素补齐。输入缓存大小调整以适应边缘像素补齐需求。

存储单位和数据连续性输入特征图以存储,保证数据在外部存储DDR3中地址连续性。提高DDR3的数据读取速度。图7-23卷积块操作示意图7.5.2存储管理单元架构设计39ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

数据存储方式特征图数据在DDR3中以单元存储,地址连续。采用Z字形卷积方式,行优先完成数据卷积。边缘像素读取问题边缘像素从非连续存储区域读取,增加低效数据交互。读取数据和卷积计算的流水线操作效率问题。缓存设计方案数据预读取机制:减少外部存储数据交互。乒乓缓存机制:提高架构流水线效率。输入特征图优先机制:最大化利用读入到片上内存的数据。图7-24DDR3内存组织结构7.5.2存储管理单元架构设计40ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

数据预读取机制目的:减少卷积计算之间的等待时间,提高数据读取效率;预防重复读取边缘数据,边缘数据在DDR3中存储非连

续,读取耗时较长。预读取操作:在读取当前输入缓存区的同时,额外读取相邻的边缘数据。左侧边缘数据(阴影部分)和下方数据(黄色部分)同时预

读取。图7-25缓存更新示意图7.5.2存储管理单元架构设计41ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

数据预读取机制缓存更新和数据填充预读取数据立即更新至侧边和顶部预读取缓存区;下一个卷积周期使用时,直接从预读取缓存填充,避免外部存储重读。预读取缓存区侧部:存储当前输入缓存区左侧的8列数据;减少外部读取,提高缓存区填充速度。顶部:存储一整行的输入特征图数据,宽度设为256,考虑数据重叠;使顶部像素从预读

取缓存中获取,无需重复从DDR3中读取。优化结果显著减少数据交互次数,提升数据传输速率;降低系统功耗,优化计算效率。7.5.2存储管理单元架构设计42ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

乒乓缓存机制目的:允许数据读取和卷积计算流水线高效运行,防止缓存区在卷积计算时不能接收新数据。缓存结构:输入缓存区和权值缓存区均设计为双缓存结构,即分别拥有两组相同的缓存区域。流水线操作和效率实现卷积计算与数据读取的连续流水线操作,避免因数据交互导致的运行中断。调整卷积核计算时间和数据读取时间匹配,确保流水线高效且无间断运行。图7-26读取数据和卷积计算流水线7.5.2存储管理单元架构设计43ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输入特征图优先机制定义输出特征图优先:优先完成一个输出特征图的所有相关输入特征图卷积计算。输入特征图优先:优先完成一个输入特征图对所有输出特征图的卷积计算。影响分析输出特征图优先:需要频繁读取每个通道的输入特征图,导致高缓存刷新率和存储带宽消耗。输入特征图优先:一旦输入特征图加载至缓存,用于多个输出计算,减少读取次数,降低与

外部存储的数据交互。7.5.2存储管理单元架构设计44ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输入特征图优先机制优化选择采用输入特征图优先机制,优化存储交互,提高片上

缓存的利用率,降低外部存储带宽需求。计算效率对比输出特征图优先模式:每个输入特征图多次加载,增加数据读取次数。输入特征图优先模式:每个输入特征图仅加载一次,显著减少DDR3交互。减少数据交互次数,提高系统整体效率。图7-27读取数据和卷积计算流水线7.5.2存储管理单元架构设计45ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输出缓存管理输出缓存区的功能:存储每个卷积周期内的部分和数据;支持中间数据的累加操作;在所有输入通道处理完毕后,持有最终的输出特征图。缓存区大小和结构输出缓存区大小为16×V,其中V是卷积块的体积。总共512个卷积核分成32路并行设计,因此输出缓存区由

16个大小的寄存器组构成。每个卷积周期内,卷积计算引擎输出中间特征图数据到指定的寄存器组,并与已存在数据进行累加。图7-28输出缓冲区结构示意图7.5.2存储管理单元架构设计46ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输出缓存管理

COB的功能和结构:输出缓存区(COB)用于暂存卷积计算引擎产生的部分和数据;在输

入特征图优先的计算过程中,COB存储当前特征图对应的部分和,为下一个特征图计算提

供累加初始值;最终输出特征图在所有输入特征图处理完成后保存在COB中,随后写出到

外部存储DDR3。

COB与卷积计算引擎和DDR3的数据交互过程过程a:COB接收来自卷积计算引擎的部分和数据。过程b:卷积计算引擎从COB读取部分和数据作为下一次计算的累加初始值。过程c:最终的输出特征图从COB写出到DDR3。7.5.2存储管理单元架构设计47ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输出缓存管理卷积计算引擎与COB的协调包含64个PPMAC处理单元,对应64个输出通道;COB直接接收并存储来自64个输出通道的部分和数据;使用桶形移位存储策略,以优化COB的数据组织和最小化过程c的时间。图7-29卷积输出缓存工作方式7.5.2存储管理单元架构设计48ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输出缓存管理

桶形移位输入和输出方案是保证COB正常工作的关键,具体过程如图7-30所示。图7-30桶形移位输入输出方案7.5.2存储管理单元架构设计49ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

卷积层缓存区设计

输出缓存管理桶形移位的工作原理:在卷积计算引擎(CE)产生数据并传送到输出缓存区(COB)的过程a中,数据按照指定的桶形移位逻辑(shuffle_i)流动。数据流向由黑色带方向线条指示,顺序右移保证数据按正确顺序存储到各个BRAM单元。数据存储与移位逻辑:每个BRAM单元存储来自相同卷积引擎的部分和数据。例如,

PEA#0在不同时钟周期产生的数据会被存储在不同的BRAM中,如“0#0”存于BRAM0,而“0#1”存于BRAM1。数据读取与输出过程在过程b中,数据需从BRAM中按照原始顺序左移回CE,逻辑由shuffle_i控制,以便进行下一轮计算。过程c涉及将所有相关数据从BRAM读出并传输到外部存储DDR3。这一过程中,shuffle_o负责选择与输出特征图对应的部分和数据,并确保其连续性,允许一次性读出所有相关数据。7.5.2存储管理单元架构设计50ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

全连接层缓存区设计全连接层流水线架构设计三级缓存结构优化流水线操作:第一级缓存:接收来自卷积层的输出数据。第二级和第三级缓存:形成乒乓结构,交替作为输入和

输出缓存,支持连续的数据处理。权值缓存也采用乒乓结构,保持流水线效率。全连接计算速度与卷积层协调全连接计算可能比卷积层慢,要求第一级缓存专门接收卷积层输出,支持不断的数据流。图7-31全连接层缓存结构7.5.3系统带宽需求分析51ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

带宽需求卷积层和全连接层的带宽需求计算为Gbyte/s。不同卷积层由于输入输出通道数的变化,带宽需求不同。最大带宽需求出现在执行第一层卷积时。系统宽带与需求对比系统的I/O带宽明显高于各层的带宽需求,特别是全连接层。图7-32显示了VGGNet-16各层的带宽需求,突出显示了全连接层和第一层卷积层的带宽对比。图7-32系统中各个卷积层和全连接层的带宽需求7.5.4缓存设计和其他模块的协调工作52ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

操作流程总控状态机发出读取外部数据请求信号。启动数据交互模块,首先将输入特征图数据和参数(权值和偏置)读取到片上缓存。数据和参数读取完成后,启动卷积操作引擎(CE)。输出缓存区持续检测CE的输出数据有效性,并进行数据累加。

卷积与全连接层的流水线操作卷积完成后,启动ReLU激活和池化操作。输出数据写出到外部DDR3。启动全连接层计算引擎,进行全连接层计算。全连接层采用三级乒乓缓存结构,以提高数据读写效率。7.5.4缓存设计和其他模块的协调工作53ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

状态机协调图7-33展示了总控状态机与各子系统的交互和流水

线操作结构。系统协调工作由总控状态机和各子级状态机控制。状态机确保读取数据和卷积操作并发执行,优化流

水线操作。卷积层与全连接层计算过程由不同状态机控制。图7-33缓存控制状态机7.5.5缓存设计比较54ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

缓存设计是卷积神经网络硬件加速架构很重要的一部分,在作为以片上内存管理为导向的架构设计中,如何最大化利用片上缓存和最小化数据传输带宽是一个绕不开的问题。

文献[1]:优化内存使用的卷积网络加速架构架构设计:以最小化片上内存为中心,使用5个FPGABlockRAMs(BRAMs)构建成循环存储

结构的输入特征图缓存区。卷积计算机制采用输出特征图优先机制,不断从外部存储读入所需输入特征图数据。设计简化了卷积计算结构和输出缓冲区的控制。设计权衡与挑战增加了与外部存储的交互次数,影响整体架构的运行速度。采用多输出通道卷积核并行计算,但缓存设计限制了并行度。7.5.5缓存设计比较55ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

文献[2]:金字塔型卷积计算架构Fused-Layer主要目标:充分利用输出特征图,减少片上内存与片外存储之间的数据交互次数。架构设计:多层卷积层融合操作:不是在当前卷积层所有输出计算完成后再开始下一层,而是当前

卷积块的所有输出计算完成后,立即在该区域上开始下一层卷积层的计算,依次类推。金字塔形卷积:因每层输出特征图尺寸逐渐减小,可融合多层卷积,直至输出特征图尺

寸小于卷积核尺寸。7.5.5缓存设计比较56ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

文献[2]:金字塔型卷积计算架构Fused-Layer优点:减少数据交互:只输出部分特征图,可以全部存储在片上,无需

外部存储,极大减少数据交互次数。缺点:计算过程独立性:每次金字塔型计算过程都相互独立,卷积操作

的特性导致连续两个计算过程的数据重叠,重叠区域增加缓存需求。增加片上缓存:大卷积块尺寸导致更多的重叠计算区域,增加额

外片上缓存需求。图7-34

Fused-layer中数据重叠计算7.5.5缓存设计比较57ArtificialIntelligenceChipDesign,

Lecture

07:Artificialintelligencechiparchitecturedesign

文献[3]:vDNN:面向GPU的高效可扩展卷积计算架构

在AlexNet网络测试下,vDNN架构使GPU内存使用量相比原来降低了89%。传统方法与vDNN的对比:传统方法:在确定网络结构后,立即为每一层分配固定的全局内存,导致大量内存在计算

过程中处于空闲状态。vDNN方法:抛弃从全局角度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论