首页> 中国专利> 卷积神经网络数据流设计空间分析工具的构建方法和装置

卷积神经网络数据流设计空间分析工具的构建方法和装置

摘要

本发明公开了一种卷积神经网络数据流设计空间分析工具的构建方法和装置,结合硬件特征与计算资源和存储资源的限制,构建面向阵列处理结构的卷积网络数据流设计空间探索方法,为在空间式阵列处理结构上映射卷积神经网络算法提供指导方向。

著录项

  • 公开/公告号CN113821981A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN202111171756.9

  • 申请日2021-10-08

  • 分类号G06F30/27(20200101);G06F9/48(20060101);G06F9/50(20060101);G06F8/30(20180101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构31237 上海思微知识产权代理事务所(普通合伙);

  • 代理人田婷

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本发明涉及阵列处理结构设计和神经网络数据调度领域,尤其是涉及一种卷积神经网络数据流设计空间分析工具的构建方法和装置。

背景技术

卷积神经网络(Convolutional Neural Networks,CNN)作为一种深度学习框架已经在图像、医疗等各个领域方向上得到了广泛的应用。伴随着人们对卷积神经网络研究的不断深入发展,神经网络结构变得愈发复杂,卷积规模也不断扩大。为此人们提出了多种卷积神经网络加速器设计,采用大量处理单元的阵列化结构加速卷积操作的处理。然而,由于硬件平台有限的片上计算资源和存储容量的限制以及架构硬件参数的多样性,使得卷积神经网络框架在平台上的最优化部署变得困难,而目前缺乏一种全面有效的针对神经网络在不同平台部署的解决方案。因此,面向通用硬件下卷积神经网络设计空间探索有其实际意义和必要性。

需要说明的是,公开于该发明背景技术部分的信息仅仅旨在加深对本发明一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种卷积神经网络数据流设计空间分析工具的构建方法和装置,用于解决现有技术中缺乏一种全面有效的针对神经网络在不同平台部署的解决方案。

为了解决以上技术问题,本发明提出一种卷积神经网络数据流设计空间分析工具的构建方法,所述构建方法包括:

针对阵列结构加速器进行硬件建模,获取所述阵列结构加速器的硬件参数;

对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略;

基于所述硬件参数和所述优化策略进行卷积延时的量化计算,在设计空间内获取卷积延时最低的优化参数,构建设计空间分析工具。

可选地,述构建方法还包括:

接入TVM图编译器Relay,以支持基于不同深度学习框架的不同神经网络结构。

可选地,所述硬件参数包括计算资源参数以及存储资源参数。

可选地,所述计算资源参数包括可独立的物理Slice数量、Slice连通粒度、单个Slice上用于核心计算的乘加单元数量、单个Slice上的LSE数量。

可选地,所述存储资源参数包括DRAM带宽、每个独立Slice的SRAM总容量、SRAM带宽、SRAM的划分粒度。

可选地,所述对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略,包括:

基于分块参数描述循环的分块优化策略,基于展开参数描述循环的展开优化策略,通过建立数据流与循环顺序的映射关系,获取循环交换的优化策略。

可选地,所述硬件模型包括阵列切片、存储模块和控制模块。

可选地,所述在设计空间内获取卷积延时最低的优化参数,包括:

通过遍历Slice的连通数量、内外层次的数据流、循环展开参数、循环分块参数计算所有的延时,并获取延时最低的参数组合作为所述优化参数。

基于同一发明构思,本发明提出一种卷积神经网络数据流设计空间分析工具的构建装置,所述构建装置包括:

硬件参数获取模块,其被配置为针对阵列结构加速器进行硬件建模,获取所述阵列结构加速器的硬件参数;

优化策略获取模块,其被配置为对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略;

分析工具构建模块,其被配置为基于所述硬件参数和所述优化策略进行卷积延时的量化计算,在设计空间内获取卷积延时最低的优化参数,构建设计空间分析工具。

基于同一发明构思,本发明还提出一种可读存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现上述特征描述中任一项所述的卷积神经网络数据流设计空间分析工具的构建方法。

与现有技术相比,本发明具有以下有益效果:

1、结合硬件特征与计算资源和存储资源的限制,构建面向阵列处理结构的卷积网络数据流设计空间探索方法,为在空间式阵列处理结构上映射卷积神经网络算法提供指导方向;

2、基于建立的探索算法,实现了自动化分析工具,并且借助TVM图编译器Relay实现了对不同深度学习框架的神经网络的读取,使得工具有一定的通用性;

3、通过对面向卷积神经网络数据流的调度方式进行空间探索,分析处理器算力、存储容量和数据传输带宽的需求,为阵列式处理结构提供架构设计方向。

附图说明

图1为卷积计算过程及参数表示示意图;

图2为空间、时间复用以及其硬件实现示意图;

图3为输入复用(输入固定)示意图;

图4为权重复用(权重固定)示意图;

图5为输出复用示意图;

图6为通用阵列加速器硬件架构的示意图;

图7为逻辑切片和物理切片的示意图;

图8为结合硬件结构的卷积伪代码示意图;

图9为自动化分析工具执行流程示意图;

图10为不同数据流下的延时比较示意图;

图11为不同展开分块方式下的延时分析示意图;

图12为卷积计算中的分块示意图;

图13为本发明实施例提出的卷积神经网络数据流设计空间分析工具的构建方法流程示意图。

具体实施方式

下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“左”、“右”等指示的方位或者位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

随着应用需求的增加,多种多样采用大量处理单元的阵列化结构加速卷积操作的神经网络加速器设计被相继提出。然而,由于硬件平台有限的片上计算资源和存储容量的限制以及架构硬件参数的多样性,使得卷积神经网络框架在平台上的最优化部署变得困难,而目前缺乏一种全面有效的针对神经网络在不同平台部署的解决方案。本发明提出了一种卷积神经网络数据流设计空间分析工具的构建方法,针对阵列结构的加速器进行了硬件建模,分析阵列加速器硬件特征并提取了影响卷积性能的关键硬件参数如处理单元数量、存储带宽和容量等;同时对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系来描述循环交换的优化策略。基于硬件参数和优化策略进行卷积延时的量化计算,在设计空间内探索卷积延时最低的优化参数,构建设计空间的自动分析工具。最后通过接入TVM(Tensor Virtual Machine)中的前端图编译器Relay,实现对基于不同深度学习框架的不同神经网络结构的支持。该工具能够基于探索算法逐层分析给出每个卷积层的在阵列式处理结构上的映射优化方案,同时也可以通过设计空间探索为硬件的优化设计提供参考。

请参考图13,本发明实施例提出一种卷积神经网络数据流设计空间分析工具的构建方法,所述构建方法包括:

S1:针对阵列结构加速器进行硬件建模,获取所述阵列结构加速器的硬件参数;

S2:对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略;

S3:基于所述硬件参数和所述优化策略进行卷积延时的量化计算,在设计空间内获取卷积延时最低的优化参数,构建设计空间分析工具。

与现有技术不同之处在于,本实施例提出了卷积神经网络数据流设计空间分析工具的构建方法。首先,本发明针对阵列结构的加速器进行了硬件建模,分析阵列加速器硬件特征并提取了影响卷积性能的关键硬件参数。这些参数如处理单元数量、存储带宽和容量描述了加速器的一般硬件结构,同时也对神经网络性能起到关键影响。

其次,本发明基于卷积七层循环结构和提取的硬件参数进行卷积数据流的设计空间探索。针对卷积循环,引入分块参数T(Tile)来描述循环的分块优化策略,引入展开参数P(Pipline)来描述循环的展开优化策略,通过建立数据流与循环顺序的映射关系来描述循环交换的优化策略。基于硬件参数和优化参数进行卷积延时的量化计算,在设计空间内探索卷积延时最低的优化参数,构建设计空间探索算法。

最后,根据建立的设计空间探索算法,本发明实现了一个自动分析工具,并且通过接入TVM(Tensor Virtual Machine)中的前端图编译器Relay,实现了不同深度学习框架的神经网络读取分析,该工具能够基于探索算法逐层分析给出每层卷积层的优化策略。通过该分析工具进行实验,分析该探索算法在特定网络结构下带来的性能提升。本发明提出的方法和工具可以确定卷积神经网络数据流的优化方案,同时也可以通过设计空间探索为硬件的优化设计提供参考。

可选地,述构建方法还包括:

接入TVM图编译器Relay,以支持基于不同深度学习框架的不同神经网络结构。

可选地,所述硬件参数包括计算资源参数以及存储资源参数。

可选地,所述计算资源参数包括可独立的物理Slice数量、Slice连通粒度、单个Slice上用于核心计算的乘加单元数量、单个Slice上的LSE数量。

可选地,所述存储资源参数包括DRAM带宽、每个独立Slice的SRAM总容量、SRAM带宽、SRAM的划分粒度。

可选地,所述对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略,包括:

基于分块参数描述循环的分块优化策略,基于展开参数描述循环的展开优化策略,通过建立数据流与循环顺序的映射关系,获取循环交换的优化策略。

可选地,所述硬件模型包括阵列切片、存储模块和控制模块。

可选地,所述在设计空间内获取卷积延时最低的优化参数,包括:

通过遍历Slice的连通数量、内外层次的数据流、循环展开参数、循环分块参数计算所有的延时,并获取延时最低的参数组合作为所述优化参数。

面向神经网络领域的阵列式处理结构设计大部分都集中专用领域,大多数ASIC加速器设计为固定的计算模式,而CNN网络的计算需求越来越多样化,没有单一的解决方案能满足所有的需求。通常的存储系统也采用固定的设计和针对性的优化手段,无法按照网络不同层的特点调整其访问的模式和数据流,不同网络层计算参数变化多样,单一的数据分块方式和存储资源分配策略无法使各层网络同时达到最优的加速效果。为了适应CNN网络结构的多样性,越来越多的加速器具有了一定的可重构能力,这其中包括了互连的重构、PE算子功能的重构以及计算模式的重构。但如何利用重构的灵活性,为特定的CNN加速器选择最优的数据流成为了新的挑战。因此,为给定类型的CNN工作负载(workload)提供它所需要的计算解决方案是非常必要的。

卷积层是CNN的核心,用于提取图像的深层特征。卷积计算占整个CNN计算量的90%以上,式(1)给出了二维卷积计算的定义:

式中的x和w分别代表输入矩阵和权重矩阵(卷积核)的元素,卷积核的大小为m×n,y带表卷积的输出。在卷积层中,图像输入通常是一组三维张量,第三个维度称为通道(channel),相应的卷积核也要使用三维张量,并且具有和输入特征图相同的通道深度。图1为卷积层的计算模型,Noc个卷积核尺寸为Nkx×Nky×Nic的三维卷积核从尺寸为Nix×Niy×Nic的三维特征图中提取特征,得到尺寸为Nox×Noy×Noc输出征图。各个符号的意义如表1所示。

表1卷积计算中的符号及含义

为了避免卷积时图像边界的像素信息丢失,通常还需要对输入图像进行填充(Padding),设卷积的步长为S,在边界上填充的像素数量为P,那么输出特征图的尺寸和可以用如下公式表示。

CNN的高计算量表现出的广泛并行机会以充分利用硬件计算资源。但这些高昂的计算量也需要高昂的数据传输代价。式(1)展示了卷积操作的输入数据、权重数据和输出数之间存在相关性,也就意味着我们可以挖掘在计算中对相同的数据重复利用,以有效的减少存储器的访问次数。数据复用源于CNN加速器在时间和空间上的两种行为,即对输入数据的多播(multicast)和对中间计算结果的归约(reduction),如图2所示。

本申请将上述空间域和时间域数据复用方法与卷积层不同的并行计算方式相结合,对输入特征图数据、输出特征图数据、卷积核数据进行复用,得到卷积神经网络加速器的三种复用数据流:输入固定(Input Stationary,IS)、权值固定(Weight Stationary,WS)、输出固定(Output Stationary,IS)。图3给出了输入固定数据流的硬件结构描述,进行计算时先从全局缓存读入输入特征图像素数据存储到每个PE单元内部的寄存器中,然后重复读取权重数据和部分和数据送入PE单元进行乘加运算,输出部分和的数据会在PE单元之间通过互联通路传递,输入像素会保持在PE单元的寄存器中直到利用完全计算得到所有部分和输出结果,这种数据流能够使得输入特征图数据得到最大程度的利用,显著降低读取输入像素的访存次数和时间。图4给出了权值固定数据流的硬件结构描述,进行计算时先从全局缓存读取卷积核权重数据到PE单元寄存器中,然后重复读取输入特征图像素和输出部分和数据送入PE单元,输出部分和的数据会在PE单元之间通过互联通路传递,权值数据会保持在寄存器中直到所有输入像素读取计算完毕得到所有部分和输出结果。图5给出了输出固定数据流的硬件结构描述,进行计算式先从全局缓存读取输出部分和数据到PE单元寄存器中,然后重复读取输入特征图像素数据和权重数据,输入像素的数据会在PE单元之间通过互连通路传递,PE单元在内部完成输出部分和的累加直到每个PE单元产生完整的部分和输出。

本申请针对面向CNN的通用式阵列式处理结构进行硬件建模,分析一般阵列结构加速器的共同特征,进行模型抽象和关键参数提取。本申请建立的通用硬件模型由阵列切片、存储模块和控制模块组成,通过不同的任务配置字,能够对卷积神经网络中每一层卷积层采用不同的计算优化策略,能够满足不同的数据流需求,符合阵列结构加速器的需要,使得后续的设计空间探索算法更具有参考意义。图6对通用阵列结构加速器硬件架构做详细介绍,加速器框架从层次结构上可以分为切片控制器、存储控制器和阵列切片,阵列切片存在多片独立工作,将阵列切片数量定义为Nslice。将整个神经网络的优化配置方案通过总线写入切片控制器,配置方案中写入的是数据存储地址、数据流等信息,切片控制器根据每片阵列切片(Slice)的计算任务向Slice上的阵列控制器写入对应的配置文件,执行阶段存储控制器根据分块需求将对应的输入像素、权重数据以及输出部分和数据写入每片Slice的片上缓存,Slice上的阵列控制器使能PE阵列,PE阵列上的存储处理单元(Load StoreElement,LSE)根据阵列控制器写入的配置字在时间轴上按顺序生成数据地址从片上缓存读取数据,计算完成后再通过LSE写回片上缓存。这样的硬件结构可以在Slice内部和Slice之间采取不同的并行处理方式,满足对卷积层进行并行加速和数据复用的需求。

阵列切片连通粒度是指阵列切片之间数据交互的能力,当不同阵列切片之间通过先入先出(First In First Out,FIFO)单元进行互连时,切片之间可以实现片上缓存容量的共享以及PE阵列的共享,引入阵列切片连通粒度参数Nshare后,可以将切片进一步分为物理切片和逻辑切片,如图7所示,当阵列切片的连通度Nshare为2,总的物理切片数为8时,实际按照4块更大逻辑切片进行计算,通过FIFO实现阵列切片之间的数据共享。通过设置阵列切片连通粒度,可以更加灵活的应对不同尺寸的卷积层,当卷积层尺寸较小时每块物理切片上的片上缓存容量就可以满足数据存储的需要,每块切片可以独立完成计算任务不需要相互之间的数据交换。当卷积层尺寸比较大时,将多片物理切片整合成一片逻辑切片,逻辑切片拥有更大的片上缓存容量以及更多的算力资源满足大尺寸卷积层计算需要。

在阵列化的硬件架构下,由于外部存储(DRAM)的带宽有限,切片数量越多对DRAM带宽的消耗也越大,当切片数量逐渐增加时DRAM带宽很大程度上会限制阵列的计算效率,成为限制卷积加速器性能的主要因素,因此急需在外部存储和阵列切片的片上缓存之间寻找数据复用的可行性。表2说明了通用阵列结构卷积加速器中提取的存储模型参数,由于存储资源无法随时保持在峰值带宽运行,通过引入实际带宽修正因子便于访存时间的计算分析。

表2存储模型参数总结

本申请建立的阵列化硬件架构从计算角度可以分成四个层次:切片间(InterSlice)、分块间(Inter Tile)、分块内(Intra Tile)、单个并行计算任务(SingleComputing Task)。图8展示了卷积嵌套循环描述,其中加入了循环分块、循环展开、循环交换的优化方法,本申请针对每个层次进行详细分析并且完成数学建模,并形成了自动分析工具,工具执行流程如图9。自动化分析工具的执行逻辑分为三个部分:用户输入、卷积层参数提取和设计空间探索。首先用户对硬件参数进行配置,硬件参数包括了计算资源的参数以及存储资源的参数,计算资源参数为可独立的物理Slice数量NSlice、Slice连通粒度Nshare、单个Slice上可用于核心计算的乘加单元数量Npe/slice、LSE数量NLSE/slice,存储资源为DRAM带宽BWDRAM、每个独立Slice的SRAM总容量CSRAM/Slice、SRAM带宽BWSRAM/Slice、SRAM划分的粒度ΔCSRAM。然后,用户将Tensorflow或者Pytorch描述的卷积神经网络模型model作为参数输入,经过通用深度学习框架卷积层参数提取模块提取卷积网络中所有的卷积层参数。最后对设计空间中优化方案的探索,通过遍历Slice的连通数量、内外层次的数据流、循环展开参数、循环分块参数计算所有可能情况的延时,并且取出其中延时最低的作为优化方案输出。

为了使得自动化分析工具具有通用性,使得其能够对不同深度学习框架描述下的神经网络进行识别并完成卷积层参数提取,我们接入TVM工具。TVM工具中的图编译器Relay能够将不同深度学习框架下的神经网络结构编译成相同格式的计算图,其具有文本形式的中间表示。因此可以借助TVM中的图编译器Relay实现对不同框架网络的解析,得到所有网络结构的中间表示(Intermediate Representation,IR)描述。在此基础上,根据其中间表示的文本文件,完成网络中卷积层参数的提取,通过逐行读取网络的文本描述,使用正则表达式提取算子,分析不同算子对图像尺寸产生的变化,并从中识别卷积层,提取卷积层的输入图像、输入通道、卷积核尺寸、输出通道、步长等参数,并且根据以下式(3)计算得到每层卷积层的输出图像大小,最终完成网络中所有卷积层的参数提取。

本申请新提出的面向阵列处理结构的卷积神经网络数据流设计空间探索工具特点主要体现在以下三点:

1、结合硬件特征与计算资源和存储资源的限制,构建面向阵列处理结构的卷积网络数据流设计空间探索方法,为在空间式阵列处理结构上映射卷积神经网络算法提供指导方向;

2、基于建立的探索算法,实现了自动化分析工具,并且借助TVM的图编译器Relay实现了对不同深度学习框架的神经网络的读取,使得工具有一定的通用性;

3、通过对面向卷积神经网络数据流的调度方式进行空间探索,分析处理器算力、存储容量和数据传输带宽的需求,为阵列式处理结构提供架构设计方向。

本发明提出了一种针对通用阵列结构下卷积神经网络的设计空间探索方案,构建设计空间的自动分析工具。同时通过接入TVM编译器实现对基于不同深度学习框架的不同神经网络结构的支持。该工具能够基于探索算法逐层分析给出每个卷积层的在阵列式处理结构上的映射优化方案,同时也可以通过设计空间探索为硬件的优化设计提供参考。本发明对不同的网络进行测试,比较不同分块展开参数下和不同数据流下对卷积网络计算性能产生的影响,评估本发明的设计空间探索算法带来的性能提升。测试中设置的通用阵列结构卷积加速器模型共有16片阵列切片,每片切片上有36个PE,切片之间的连通度设置为1,也就是每片切片不共享片上缓存和计算单元,同时加速器的工作频率设置在1GHz。对于存储参数配置,在测试中使用DDR4-3200MHz作为外部存储,其带宽为25.6GB/s,每片切片的片上缓存容量为128KB,每片缓存的Bank数量为16,存储的字长为32bit,SRAM的带宽为512bit/cycle:

YOLOV3具有75层卷积层。经过工具测试,得到75层卷积层每层对应的分块展开以及数据流信息。经统计,如表5所示,对于YOLOV3网络,其在外层分块间有82.7%的卷积层采用了输入固定的数据流,只有第一层卷积层采用了权值固定的数据流。这是因为该网络的第一层卷积层的输入特征图尺寸非常大而通道数和卷积核大小却很小,所以采用了权值固定的数据流。而中间的卷积层有着很大的输入通道和输出通道所以卷积核数据的尺寸很大,不适合权值固定的数据流因此适用于输入固定和输出固定的数据流。而内层分块内的数据流形式,直接受到对应分块参数的影响,经观察分析,方案给出的分块参数中输入通道的分块参数往往是输出通道分块参数的几倍,进而输入图像的分块大小也远大于输出图像,所以在内层数据流就不存在输入固定的数据流。

表5优化策略的数据流统计

图10展示了本文中提出的可变数据流与固定数据流下的YOLOV3计算延时比较,可以看到输入固定数据流的计算延时十分接近,是可变数据流的1.09倍,这是由于可变数据流中绝大多数层都采用了输入固定的数据流,所以当对整个网络都采用IS时,只有少数卷积层产生了性能损失。而权值固定数据流的计算延时是可变数据流的2.88倍,产生了很大的性能损失,这是因为网络的中间层往往具有上百个输入通道和输出通道,所以卷积核尺寸很大,当采用权值固定的数据流时,仍然要进行频繁的数据更新,增加了数据访存消耗的时间。输出固定数据流的延时是可变数据流的1.45倍,介于IS和WS之间。

图11展示的是不同展开分块策略下的计算延时对比。后三种比较情况的固定分块参数和展开参数的选取是根据第一种可变分块和可变展开的参数中选择了出现频次最高的优化方案。可以看到与数据流不同相比,分块参数和展开参数带来的性能差异更小,相比固定展开,本文优化方法的延时缩小到了0.86倍,相比固定分块延时缩小到了0.81倍,相比全固定来说延时缩小到了0.77倍。可以看到通过逐层优化卷积层,缩短了整体网络的推理延时。

本本申请新提出的面向阵列处理结构的卷积神经网络数据流设计空间探索工具特点主要体现在结合硬件特征与计算资源和存储资源的限制,构建面向阵列处理结构的卷积网络数据流设计空间探索方法,为在空间式阵列处理结构上映射卷积神经网络算法提供指导方向;基于建立的探索算法,实现了支持通用性CNN网络的自动化分析工具;通过对面向卷积神经网络数据流的调度方式进行空间探索,分析处理器算力、存储容量和数据传输带宽的需求,为阵列式处理结构提供架构设计方向。

针对建立的阵列化硬件架构从循环分块、循环展开、循环交换等角度对每个层次进行详细分析并且完成数学建模。首先,每个切片的片上缓存容量的大小往往不足以完整存储深度卷积神经网络算法的所有数据,所以需要根据切片的缓存容量进行卷积层的尺寸切割,从而完成循环分块。本发明根据每个slice的片上缓存容量的大小对卷积层计算所需的数据进行分割,从而完成循环分块,如图12所展示的循环分块示意图。表6列举了使用循环分块策略下,卷积层七层循环内所有的分块参数。根据这些分块参数,可以计算出单个切片的片上缓存中,像素数据、权重数据、部分和数据占用的缓存容量,定义参数Csram_weight、Csram_pixel、Csram_psum。

C

C

C

表6循环分块参数总结

其次,为了充分利用片上的计算单元和传输带宽实现大规模的数据并行,本工具分析不同的循环展开策略以及不同策略下的映射方式带来的计算资源和传输带宽需求。具体如公式7、表7和表8所示。

Compute=P

表7循环展开对DRAM访存情况

表8循环展开对SRAM访存情况

最后,对于阵列加速器的性能评估主要是针对其计算延时,也就是完成整个卷积网络计算需要花费的时间。总体延时tdelay是描述卷积加速优化方案的重要指标,本发明分析输入固定、输出固定、权值固定三种数据流情况下的总体延时计算方法。为了进行不同数据流的时序分析,首先计算从DRAM访存输入、输出、权重数据的时间,引入参数tloadinput、tloadweight、tloadpsum、twritepsum分别代表从外部存储加载输入的时间、加载权重的时间、加载部分和的时间以及写回部分和的时间,引入参数NloopicT、

基于同一发明构思,本发明提出一种卷积神经网络数据流设计空间分析工具的构建装置,所述构建装置包括:

硬件参数获取模块,其被配置为针对阵列结构加速器进行硬件建模,获取所述阵列结构加速器的硬件参数;

优化策略获取模块,其被配置为对卷积七层循环结构的数据流调度方式进行分析,通过建立数据流与循环顺序的映射关系,获取描述循环交换的优化策略;

分析工具构建模块,其被配置为基于所述硬件参数和所述优化策略进行卷积延时的量化计算,在设计空间内获取卷积延时最低的优化参数,构建设计空间分析工具。

可以理解的是,所述硬件参数获取模块、所述优化策略获取模块以及所述分析工具构建模块可以合并在一个装置中实现,或者其中的任意一个模块可以被拆分成多个子模块,或者,所述硬件参数获取模块、所述优化策略获取模块以及所述分析工具构建模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个功能模块中实现。根据本发明的实施例,所述硬件参数获取模块、所述优化策略获取模块以及所述分析工具构建模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,所述硬件参数获取模块、所述优化策略获取模块以及所述分析工具构建模块中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

基于同一发明构思,本发明还提出一种可读存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现上述特征描述中任一项所述的卷积神经网络数据流设计空间分析工具的构建方法。

所述可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备,例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所描述的计算机程序可以从可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收所述计算机程序,并转发该计算机程序,以供存储在各个计算/处理设备中的可读存储介质中。用于执行本发明操作的计算机程序可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。所述计算机程序可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机程序的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、系统和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序实现。这些计算机程序可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些程序在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序存储在可读存储介质中,这些计算机程序使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有该计算机程序的可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机程序加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的计算机程序实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

与现有技术相比,本发明具有以下有益效果:

1、结合硬件特征与计算资源和存储资源的限制,构建面向阵列处理结构的卷积网络数据流设计空间探索方法,为在空间式阵列处理结构上映射卷积神经网络算法提供指导方向;

2、基于建立的探索算法,实现了自动化分析工具,并且借助TVM图编译器Relay实现了对不同深度学习框架的神经网络的读取,使得工具有一定的通用性;

3、通过对面向卷积神经网络数据流的调度方式进行空间探索,分析处理器算力、存储容量和数据传输带宽的需求,为阵列式处理结构提供架构设计方向。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”或“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。

上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号