CN112989270A - 一种基于混合并行的卷积计算装置 - Google Patents
一种基于混合并行的卷积计算装置 Download PDFInfo
- Publication number
- CN112989270A CN112989270A CN202110461840.8A CN202110461840A CN112989270A CN 112989270 A CN112989270 A CN 112989270A CN 202110461840 A CN202110461840 A CN 202110461840A CN 112989270 A CN112989270 A CN 112989270A
- Authority
- CN
- China
- Prior art keywords
- convolution
- data
- input
- parallelism
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种基于混合并行的卷积计算装置,包括输入单元,仿真单元,片上处理器包括多个并行的处理单元,分组控制单元和映射单元。本方案的混合并行卷积计算装置在运行中可以实现计算块大小的可调整,以及通道并行度的可调整,并且,本申请提供的装置可以针对网络形状设计适合的通道并行度,还可以成功应用到硬件上进行加速。按照本方案提出的基于混合并行的卷积计算装置,硬件加速平台可以更好的利用融合数据流,提升加速器整体的计算速度以及能效。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种基于混合并行的卷积计算装置。
背景技术
现今,深度卷积神经网络(deep convolutional neural networks,DCNN)被广泛应用在计算机视觉领域,例如图像分类及目标识别等任务。为了达到更好的性能,卷积计算模型倾向于变得更宽、更深,因此需要大量增加引入的参数数量,同时也带来加速过程中计算复杂度急剧增加的问题,因此势必要在加速过程中进行合适的分块操作。
卷积计算中包含有多个维度(输出维度、输入维度、高度、宽度)的计算,这些维度之间存在有多种数据计算复用情况,例如1)输入数据对不同输出通道的复用;2)输出数据在输入通道方向的累加;3)卷积计算在单个计算平面上对参数的复用。如何在加速过程中对卷积进行计算分块,对应安排合适的串行以及并行处理的计算维度成为加速器实现过程中的问题,这些分配会大幅影响加速器整体的计算效率。
为了解决上述问题,现有技术广泛应用的CNN加速器数据流为逐层(layer-by-layer)计算,这种计算方式倾向遍历一层中所有的计算块直到完成所有一个卷积层,完成后再从头开始重复该过程,进行下一层卷积的计算。在特征图(feature map)大的情况下会为相同数据多次访问片外存储,增加整体计算功耗以及计算延时。此外,在进行一些低计算强度(operational intensity)计算如深度分离卷积(depth-wise convolution)、快捷连接(shortcut connection)甚至说高强度稀疏后的计算时,会出现因为带宽受限造成的性能损失,不能达到硬件规模下的最佳性能。
为此开发了融合(fusion)数据流,将连续几层的卷积计算都放在片上完成,可以避免中间对片外存储的重复访问。这个过程中为了保证计算的正确性,所有通道的特征图都需要放在片上进行存储。因此,特征图被分割为小块,依次循环完成整体的计算。
然而,该融合数据流把连续几层的计算都放在包含计算核心的片上,使得卷积计算中参数无法得到高效复用,从而增加了参数对外部存储的访问,增加了整体计算延时以及功耗。因此,如何更好地利用融合数据流,提升加速器整体计算速度及能效成为当前亟待解决的技术问题。
发明内容
本申请提供了一种基于混合并行的卷积计算装置,以解决现有技术中因参数无法得到高效复用导致的加速效率较低的问题。
本申请提供了一种基于混合并行的卷积计算装置,包括:
输入单元,被配置为获取输入卷积数据及对应的参数,根据输入卷积数据判断卷积形状,并提取所述输入卷积数据的特征图大小、卷积核大小以及通道数目;
仿真单元,被配置为根据输入单元提取到的数据特征得到所述输入卷积数据对应的并行度;所述数据特征包括卷积形状及参数;
片上处理器,包括多个并行的处理单元;
分组控制单元,与每个处理单元分别连接,被配置为根据所述并行度,将片上处理器上的所有处理单元分为G个分组,G等于并行度,且每个分组中处理单元的数量相等;
映射单元,与每个处理单元分别连接,被配置为根据所述并行度、输入卷积数据以及对应的参数控制输入到每个处理单元中的数据及参数;其中,同一分组中的处理单元输入相同的参数、不同的数据;不同分组的处理单元输入不同的参数;
所述处理单元用于根据输入的数据及参数完成卷积加速行为并输出结果。
在一些实施例中,所述处理单元被配置为根据分组控制单元发送的分组命令,相应调节硬件参数配置,以用于处理来自不同通道的参数。
在一些实施例中,所述映射单元还被配置为将剩余通道映射到串行序列上。
在一些实施例中,所述仿真单元被进一步配置为:
采用预设神经网络开发性能模拟器进行模拟仿真;
输入历史卷积形状及参数,根据计算效率生成评估表;
采用所述评估表对当前输入单元提取到的数据特征进行评估,得到数据特征对应的并行度。
在一些实施例中,所述不同的数据是指对每个特征图采用Ph×Pw切块,得到不同大小的子特征图作为输入到处理单元的数据。
本申请提供了一种基于混合并行的卷积计算装置,运行过程中支持适应不同卷积的混合并行度,对不同维度的混合并行都可以用来提升计算性能,尤其用在非结构化稀疏加速器中;可以和不同的高层次计算流(逐层、部分融合)配合,完成更高效的计算过程。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为处理密集卷积和稀疏卷积的消耗示意图;
图2为本申请提供的一种基于混合并行的卷积计算装置结构图;
图3为本申请提供的装置在G=4时的运行示例图。
具体实施方式
由于片上资源有限,硬件加速CNN过程中,特征图被分成很多小块进行处理。在先前的固定尺寸计算模块裁剪方法中,会引入对参数外部存储的重复访问。此外,固定尺寸计算模块限制了架构对CNN各种数据类型的重用。本方案的混合并行卷积计算装置在运行中可以实现计算块大小的可调整,以及通道并行度的可调整,这些都可以用来增加专用加速器的硬件效率。
本方案另一个有益效果是可以让专用硬件加速器能更好地利用非结构化稀疏。首先,并行处理单元(processing elements,PEs)可以被配置,以便处理不同卷积尺寸,即不同PE共享卷积中的权重或输出特征图。输入相同权重时,PE被配置为处理同一张特征图中的不同部分,这种配置下不会引入负载不均衡和访存冲突的问题。但是,高度并行的PE在被配置为处理小特征图单批次卷积时,无法得到充分利用。当处理同一输出特征图时,不同的PE被配置为处理同一卷积核的不同输入通道。每个卷积核中包含有大量输入通道,这可确保高度并行的PE得到充分利用。但是参数核的高并行性会导致严重的负载不平衡,如图1所示。因此,选择一个合适的PE并行度可以缓解上述问题。
由图1可知,在处理密集卷积时,假设由4个并行PE处理,则处理消耗为4PEs×9处理时钟;在处理稀疏卷积时,如果由4个并行PE处理,则处理消耗为4PEs×7处理时钟;如果由2个并行PE处理时,则处理消耗为2PEs×12处理时钟;这里采用计算单元数目×处理时长来代表整体性能,乘积数值越小说明计算方式越高效。因此,在实际应用中应当根据输入数据特征的不同选取最优的并行PE数目,本申请提供了一种装置来达到上述目的。
参见图2,为本申请提供的一种基于混合并行的卷积计算装置结构图。
由图2可知,本申请实施例提供的装置,包括:
输入单元10,被配置为获取输入卷积数据及对应的参数,根据输入卷积数据判断卷积形状,并提取所述输入卷积数据的特征图大小、卷积核大小以及通道数目;其中,输入卷积数据主要是指稀疏卷积数据,首先要对输入的数据进行分析,获取通道数目、对应的特征图信息等。
仿真单元20,被配置为根据输入单元10提取到的数据特征得到所述输入卷积数据对应的并行度;所述数据特征包括卷积形状及参数;
在本实施例中,仿真单元20的作用是通过预存的数据或者即时对输入数据的特征信息进行评估,以给出对应于该数据的最优并行度值,可通过开发性能模拟器的方式实现,具体的,当仿真单元的硬件配置为性能模拟器时,仿真单元可配置为:
采用预设神经网络开发性能模拟器进行模拟仿真;
输入历史卷积形状及参数,根据计算效率生成评估表;
采用所述评估表对当前输入单元10提取到的数据特征进行评估,得到数据特征对应的并行度。
模拟仿真过程:
针对通用卷积神经网络,分别计算多种输入数据下,采用不同并行度G的计算效率如下表(表中的卷积仅为举例,实际可有更多种形状参与计算):
由模拟的结果可以得到不同输入数据下最优的并行度(1×),采用模拟结果可以判断出当前输入的卷积数据对应的并行度。
同样由模拟的结果可以得到不同输入数据下最优的并行度,采用模拟结果可以判断出当前输入的卷积数据对应的并行度。
根据多层卷积神经网络下采样的规律,越窄(通道数少)的卷积核,往往会有更大的特征图。因此,处理越窄的卷积时,在特征图维度上的并行度就会因此扩宽,来保证更好的处理效果。在处理越宽的卷积时,在特征图维度上选用小块处理,增加通道处理的并行度。通过对不同卷积选择不同并行方案处理,实现性能平衡,达到整体加速的目的。
片上处理器30,包括多个并行的处理单元31;片上通常具有固定数量的处理单元,本申请是将固定数量的处理单元采用不同的分组,使每个分组分别处理不同的计算任务。
分组控制单元40,与每个处理单元31分别连接,被配置为根据所述并行度,将片上处理器30上的所有处理单元31分为G个分组,G等于并行度,且每个分组中处理单元31的数量相等;分组控制单元实质上相当于是向每个处理单元发送指令,指示该处理单元具***于哪个分组,并按照哪个分组接收到的数据及参数执行相应的行为。
映射单元50,与每个处理单元31分别连接,被配置为根据所述并行度、输入卷积数据以及对应的参数控制输入到每个处理单元31中的数据及参数;其中,同一分组中的处理单元31输入相同的参数、不同的数据;不同分组的处理单元31输入不同的参数;
在本实施例中,映射单元的作用是根据选择的并行度,配置硬件中的可变参数,规划数据读取方式(从片外存储到片上缓存)。具体的,其按照仿真单元给出的并行度,对后续硬件处理的可变参数进行重配置。这就要求处理单元的硬件设备具有可配置特性,可被配置为根据分组控制单元40发送的分组命令,相应调节硬件参数配置,以用于处理来自不同通道的参数,以满足不同处理并行度的需求,配合对应通道的数据进行卷积操作。
所述处理单元31用于根据输入的数据及参数完成卷积加速行为并输出结果。
上述装置在实际应用中的处理过程可由图3进行说明:
图3为本申请提供的装置在G=4时的运行示例。
在提出的混合并行卷积计算装置中,多个并行PEs可以被配置为处理相同的权重,从而计算较大的数据块,这些PE表示为一个PE组(PE_G)。在一个PE_G中,负载不平衡被消除并重复利用了权重。假设片上有G_max个PE,他们被分为G个组,则来自同一个过滤器的不同输入通道按照并行度G进行处理。
假设每个PE可以导出Ph×Pw个部分和(partial sum,psum)。通过这种分组方式,G_max/G×Ph×Pw部分和(psum)在每个PE_G中生成。要计算完整输出,来自于G个输入通道的部分和需要被累加。
由图3可知,8个处理单元PE被分为了4个分组,每个分组中均有两个处理单元,以第一个分组为例,PE0与PE1的输入均来自于第i个通道对应的特征图,二者采用的参数相同,但由于特征图被切成了不同大小的Ph×Pw部分和块,得到不同大小的子特征图作为输入到处理单元的数据,因此两个处理单元处理的数据不同;PE1与PE2分别来自不同通道对应的特征图,因此二者采用的参数不同,数据也不同。
随着权重并行度的提高,负载失衡越来越严重。本方案提出,负载失衡可以通过减小G进行缓解。因此为了提升硬件效率,G的选择可根据网络配置进行优化。在处理具有较大特征图卷积层时,G倾向于配置为较小数值,以增加权重的重复使用。对于通道数量更多的卷积层时,输入通道的并行度提高了,则可通过更多的PE_G执行。
本申请提供的基于混合并行的卷积计算装置可以和部分融合数据流结合,起到提升加速器整体计算效率的目的。对于部分融合数据流来说,为减少对于DRAM的重复访问,将连续几层卷积计算都放在片上完成。对堆叠类瓶颈(Bottleneck-liked Operation,BLO)结构的网络进行分割时,划分每个BLO为融合数据流中连续计算的单元,并且通过重叠缓存(overlap buffer)可以让计算块大小保持一致。
硬件在使用部分融合数据流的过程中,需要大量存储资源来存放激活值,保证所有通道的计算块都可以放在片上。受限于有限的片上资源和巨大的权重需求,不可能分配一个权重缓冲区使其能够存储融合层的所有权重。因此,当处理通道较多的卷积层时,重复访问外部存储来获取权重是不可避免的。
因此,本方案采用对输入特征图进行不定大小切块的方式来进行计算的划分。切块的大小取决于输入特征图的尺寸,使得PE中的计算资源利用率达到最大。在一个BLO内部,采用融合计算流,每次计算输入的特征图大小为切块大小,重复多次切块直到整体计算完成。这样,一个BLO的计算即被分解成多个独立的融合计算过程。本方案提出的混合并行卷积计算装置优化了基于图块的数据流,增加了权重复用的能力。相比具有固定切片方案的数据流,本方案可以有效减少重复访问外部存储中权重的次数。
在通过对不同层次存储的访问模拟过程中可以看出,相对于计算过程中固定一种通道并行度,提出的混合并行度可以将参数对DRAM的访存降低63.8%。因此,本方案可以大幅度降低计算过程中的访存功耗。
进一步的,在一种可行性实施例中,可能存在一些通道没有分配到处理单元的分组,则此时映射单元需要将这部分通道映射到串行序列上,待此次并行结束后按照时间序列依次执行。
由上述技术方案可知,本申请提供了一种基于混合并行的卷积计算装置,包括输入单元,仿真单元,片上处理器包括多个并行的处理单元,分组控制单元和映射单元。本申请提供的装置可以针对网络形状设计适合的通道并行度,并且可以成功应用到硬件上进行加速。按照本方案提出的基于混合并行的卷积计算装置,硬件加速平台可以更好的利用融合数据流,提升加速器整体的计算速度以及能效。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (5)
1.一种基于混合并行的卷积计算装置,其特征在于,所述装置包括:
输入单元(10),被配置为获取输入卷积数据及对应的参数,根据输入卷积数据判断卷积形状,并提取所述输入卷积数据的特征图大小、卷积核大小以及通道数目;
仿真单元(20),被配置为根据输入单元(10)提取到的数据特征得到所述输入卷积数据对应的并行度;所述数据特征包括卷积形状及参数;
片上处理器(30),包括多个并行的处理单元(31);
分组控制单元(40),与每个处理单元(31)分别连接,被配置为根据所述并行度,将片上处理器(30)上的所有处理单元(31)分为G个分组,G等于并行度,且每个分组中处理单元(31)的数量相等;
映射单元(50),与每个处理单元(31)分别连接,被配置为根据所述并行度、输入卷积数据以及对应的参数控制输入到每个处理单元(31)中的数据及参数;其中,同一分组中的处理单元(31)输入相同的参数、不同的数据;不同分组的处理单元(31)输入不同的参数;
所述处理单元(31)用于根据输入的数据及参数完成卷积加速行为并输出结果。
2.根据权利要求1所述的一种基于混合并行的卷积计算装置,其特征在于,所述处理单元(31)被配置为根据分组控制单元(40)发送的分组命令,相应调节硬件参数配置,以用于处理来自不同通道的参数。
3.根据权利要求1所述的一种基于混合并行的卷积计算装置,其特征在于,所述映射单元(50)还被配置为将剩余通道映射到串行序列上。
4.根据权利要求1所述的一种基于混合并行的卷积计算装置,其特征在于,所述仿真单元(20)被进一步配置为:
采用预设神经网络开发性能模拟器进行模拟仿真;
输入历史卷积形状及参数,根据计算效率生成评估表;
采用所述评估表对当前输入单元(10)提取到的数据特征进行评估,得到数据特征对应的并行度。
5.根据权利要求1所述的一种基于混合并行的卷积计算装置,其特征在于,所述不同的数据是指对每个特征图采用Ph×Pw切块,得到不同大小的子特征图作为输入到处理单元(31)的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461840.8A CN112989270A (zh) | 2021-04-27 | 2021-04-27 | 一种基于混合并行的卷积计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461840.8A CN112989270A (zh) | 2021-04-27 | 2021-04-27 | 一种基于混合并行的卷积计算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112989270A true CN112989270A (zh) | 2021-06-18 |
Family
ID=76340451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110461840.8A Pending CN112989270A (zh) | 2021-04-27 | 2021-04-27 | 一种基于混合并行的卷积计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989270A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087227A1 (zh) * | 2021-11-18 | 2023-05-25 | 华为技术有限公司 | 数据处理装置及方法 |
-
2021
- 2021-04-27 CN CN202110461840.8A patent/CN112989270A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087227A1 (zh) * | 2021-11-18 | 2023-05-25 | 华为技术有限公司 | 数据处理装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111062472B (zh) | 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法 | |
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
CN111967468A (zh) | 一种基于fpga的轻量级目标检测神经网络的实现方法 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN112418396B (zh) | 一种基于fpga的稀疏激活感知型神经网络加速器 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
WO2022134465A1 (zh) | 加速可重构处理器运行的稀疏化数据处理方法和装置 | |
CN111738276A (zh) | 基于多核卷积神经网络的图像处理方法、装置及设备 | |
CN116720549A (zh) | 一种基于cnn输入全缓存的fpga多核二维卷积加速优化方法 | |
CN115390788A (zh) | 基于fpga的图卷积神经网络稀疏矩阵乘法分配*** | |
CN112989270A (zh) | 一种基于混合并行的卷积计算装置 | |
CN111523642A (zh) | 用于卷积运算的数据重用方法、运算方法及装置、芯片 | |
CN112149047A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN112734020B (zh) | 卷积神经网络的卷积乘累加硬件加速装置、***以及方法 | |
Song et al. | Design and implementation of convolutional neural networks accelerator based on multidie | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速*** | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN111886605B (zh) | 针对多个输入数据集的处理 | |
Xu et al. | Design and implementation of an efficient CNN accelerator for low-cost FPGAs | |
CN113298241B (zh) | 一种深度可分离卷积神经网络加速方法和加速器 | |
CN111971692A (zh) | 卷积神经网络 | |
CN115457363A (zh) | 一种图像目标检测方法及*** | |
CN114037054A (zh) | 一种数据处理方法、装置、芯片、设备及介质 | |
CN115130672A (zh) | 一种软硬件协同优化卷积神经网络计算的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |