CN116028765A - 一种卷积计算方法和装置 - Google Patents
一种卷积计算方法和装置 Download PDFInfo
- Publication number
- CN116028765A CN116028765A CN202111244056.8A CN202111244056A CN116028765A CN 116028765 A CN116028765 A CN 116028765A CN 202111244056 A CN202111244056 A CN 202111244056A CN 116028765 A CN116028765 A CN 116028765A
- Authority
- CN
- China
- Prior art keywords
- data
- weight data
- calculation
- unit
- memory
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
Abstract
本专利公开了一种卷积计算方法和装置,用于优化现有卷积计算流程中能耗问题和效率问题。本专利针对stride≥2的卷积计算做出特殊优化,同时还兼容stride=1的使用场景。本专利通过优化计算流程,降低计算单元同一时间的输出结果相干概率,减少数据竞争,并添加额外硬件处理潜在的竞争数据。同时还复用权重数据和脉动复用输入特征数据,降低带宽需求和数据搬移功耗。
Description
技术领域
本发明涉及基于特定计算模型的计算机系统领域,尤其涉及一种卷积计算方法和装置。
背景技术
深度学习计算中,权重(weight)和输入特征(feature)之间的卷积运算需到进行大量乘累加(MAC)运算,传统计算方法中,计算流程未经过优化时,会有如下问题:1、输入特征数据、权重数据以及输出数据会反复读写,导致存储空间、带宽浪费,以及数据搬移带来的大量能耗浪费;2、计算并行度低,导致计算速度满,算力低;3、数据之间存在竞争,导致计算阻塞,降低算力。
现有对于卷积计算的优化算法通常只针对stride=1的情况,并没有针对stride≥2进行优化,对于stride≥2的卷积时,通常使用传统计算方法计算,或继续使用针对stride=1的优化算法计算。
使用传统计算方法会导致输入特征数据、权重数据以及输出数据会反复读写,导致存储空间、带宽浪费已经数据搬移带来的大量能耗浪费;计算并行度低,导致计算速度慢,算力低;而继续使用针对stride=1的优化算法会导致大量的冗余计算,导致计算速度慢,产生大量不必要的功耗。
此外,当输入权重数据和特征数据均为稀疏时,数值中存在大量的0值数据,卷积运算中0值数据的MAC运算结果对最终输出结果没有影响,但实际运算时0值也会进行读写,并进行MAC计算,导致存储空间、带宽、算力和功耗的浪费。
发明内容
本发明提供一种卷积计算方法和装置,用于解决在深度学习的计算流程中,stride≥2的情况下存在的计算速度慢、功耗大的问题,本方法也同时兼容stride=1的场景。
本发明提供一种卷积计算方法,包括以下步骤:
S1,压缩权重数据,所述图像权重数据是图像经神经网络模型训练完成后得到的;
S2,调整权重数据进入计算单元的顺序;
S3,将权重数据和图像特征数据输入乘法计算单元进行计算,得到第一计算结果;
S4,将所述第一计算结果与存储器内特定位置数据进行加法计算,得到第二计算结果,并将所述第二计算结果存入所述存储器内特定位置,得到加权求和后的特征图像;
其中:当至少两个所述第一计算结果存在竞争时,将所述至少两个第一计算结果中的一个暂存,待竞争消失后再进行计算。
优选的,根据计算结果的相干度,在具有相同列坐标的权重数据中,调整所述权重数据进入计算单元的顺序。
优选的,所述特征数据输入乘法计算单元前和/或输入乘法计算单元后,需要重复计算的特征数据通过脉动复用进行计算。
优选的,所述存储器内特定位置根据所述权重数据和特征数据的坐标消息唯一确定。
优选的,所述压缩权重数据包括:
将权重数据展开为行向量,重新组成权重数据矩阵;
采用压缩算法对权重数据进行压缩。
优选的,所述计算结果的相干度通过预先试验得到。
优选的,其特征在于,所述预先试验具体为:
选取部分或全部权重数据;
穷举所述权重数据的排列顺序,分别进行预计算,得到所述计算结果的相干度;
优选的,所述权重数据是语音、文字经神经网络模型训练完成后得到的,步骤S3中为语音特征数据、文字特征数据,步骤S4中相应为加权后的特征语音、特征文字。
本发明还提供一种卷积计算装置,包括:
存储模块,包括外部存储器、内部存储器和输出存储器;
计算模块,包括乘法器单元和加法器单元;
控制模块,包括选择器单元,用于控制存储器中数据的存储位置;
所述外部存储器用于存储特征数据和压缩后的权重数据;
所述特征数据和权重数据通过所述内部存储器传入计算模块,所述权重数据在内部存储器中调整进入计算模块的顺序;
所述乘法器单元用于计算特征数据与权重数据的乘积;
所述选择器单元用于确定计算结果的存入位置。
本发明存在以下有益效果:
1、优化计算流程,降低计算单元同一时间的输出结果相干概率,减少数据竞争,并添加额外硬件处理潜在的竞争数据。
2、复用权重数据和脉动复用输入特征数据,降低带宽需求和数据搬移功耗;
3、支持多个计算单元并行计算;
4、支持权重数据压缩,降低带宽需求和数据搬移功耗,且跳过0值计算,权重数据稀疏时可以显著提高算力,降低功耗;
5、对于stride≥2的输入数据,无需额外的计算或者带宽与数据搬移,提升算力并且降低功耗;
6、所述计算方法兼容stride=1时的卷积计算。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中一种卷积计算方法的流程图;
图2是本发明一实施例中调整权重数据进入计算单元顺序的示意图;
图3是本发明一实施例中卷积计算装置与方法相结合的计算过程示意图;
图4是本发明一实施例中加法运算流程的示意图。
在上述附图中,MUL为乘法器,MUX为选择器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明提供的一实施例中,提供一种卷积计算方法,参见图1,具体方法如下:
S1,压缩权重数据,所述权重数据是图像经神经网络模型训练完成后得到的,具体包括:
S101,将权重数据展开为行向量,重新组成权重数据矩阵;
所述权重数据以卷积核的形式表示。将每一个卷积核中的权重数据,展开为一个行向量,作为权重数据矩阵的行,直至将所有通道的所有卷积核的权重数据均展开为行向量,组成权重数据矩阵。所述权重数据举证包含所有卷积核的所有通道中全部位置的卷积核参数。
S102,采用压缩算法对权重数据矩阵进行压缩,所述压缩算法包括但不限于COO编码算法、CSF编码算法。
采用COO或CSF编码算法(包括不仅限于COO和CSF压缩算法)对权重数据矩阵进行压缩,并存储在外部存储器中。
S2,调整权重数据进入计算单元的顺序;
根据寄存器大小和各通道输入特征数据大小,将PE外部存储器中各通道输入特征数据全部或部分,按矩阵行顺序进行整行读取加载至寄存器单元。
计算前,将PE外部存储器中存储的压缩后的权重数据中,根据计算结果的相干度,在具有相同列坐标的权重数据中,调整所述权重数据进入计算单元的顺序,保证计算结果的相干度最低,并将其存入到PE单元内的对应FIFO中。
计算结果的相干度是描述数据计算结果冲突的指标。计算结果冲突是指在同一计算周期内至少两个乘法器输出的结果,需要与存储器内同一特定位置的数据进行加法计算。同一周期内计算结果冲突越多,则计算结果的相干度越大。通过调整权重数据进入计算单元的顺序,可以使需要与存储器内同一特定位置的数据进行加法计算的计算结果分布在不同的计算周期输出,以此降低计算结果的相干度。
所述计算结果的相干度通过预先试验得到,具体方法如下:
选取部分或全部权重数据;
穷举所述权重数据的排列顺序,分别进行预计算,得到所述计算结果的相干度;
由于通过穷举方式试验所有权重数据的排列顺序的计算量明显小于对所有特征数据进行卷积计算,并且可以有效地得到相干度最低或相对较低的排列顺序,因此根据
在本发明提供的一个实施例中,8个4x4大小的权重数据,存入4个FIFO存储器(FIFO0、FIFO1、FIFO2、FIFO3),根据预计算的结果,按以下方式调整权重数据进入计算单元的顺序,详见附图2:
1)列坐标为0的权重压缩数据,依次存入FIFO0;
2)列坐标为1的权重压缩数据,从第2列数据开始,依次存入FIFO1,数据存完后,再将第1列数据存入FIFO1;
3)列坐标为2的权重压缩数据,从第3列数据开始,依次存入FIFO2,数据存完后,再将第1、2列数据存入FIFO2;
4)列坐标为3的权重压缩数据,从第4列数据开始,依次存入FIFO3,数据存完后,再将第1、2、3列数据存入FIFO3。
通过上述顺序,可以将计算结果的相干度降到最低。
所述步骤S1与S2可以在计算装置中实时完成,也可以在计算装置外提前完成。
S3,将权重数据和特征数据输入乘法计算单元进行计算,得到第一计算结果;
计算整体框架如附图3所示,单个乘法器(MUL)的输入为特征数据和权重数据,输出结果为二者乘积,即第一计算结果。乘法器单元中包含多个乘法器,在加载完一组权重数据后,不断更新特征数据并进行计算,直至该轮权重数据完成所有相关计算后,乘法器单元再加载下一组权重数据,并不断更新特征数据并进行计算,直至所有计算完成。
所述特征数据输入乘法计算单元前和/或输入乘法计算单元后,需要重复计算的特征数据通过脉动复用进行计算。
计算时,寄存器单元的数据依次存入到PE单元内的寄存器中,数据可以在PE内部寄存器之间进行脉动,也可以在寄存器单元之间脉动,将需要进行重复计算的数据组在存储器内进行移动,在计算时进行复用,减少数据重复输入存储器。
S4,将所述第一计算结果与存储器内特定位置数据进行加法计算,得到第二计算结果,并将所述第二计算结果存入所述存储器内特定位置;
其中:当至少两个所述第一计算结果存在竞争时,将所述至少两个第一计算结果中的一个暂存,待竞争消失后再进行计算。
参见附图4,乘法器单元的输入的特征数据和权重数据还各自对应一组坐标信息,根据特征数据和权重数据的两组坐标信息,确定输出存储器中的一个特定位置。所述存储器内特定位置根据所述权重数据和特征数据的坐标消息唯一确定。单个乘法器的输出结果和所述输出存储器中的一个特定地址中的存储数据在加法器单元中相加,再将加法器输出结果,即第二计算结果,存入该地址。
由于同一个卷积核区域内对应的全部乘法结果需要彼此相加求和,因此如果同一卷积核内对应的超过两组权重数据和特征数据同时被输入到乘法器单元中的不同乘法器,会导致两个输出结果需要存入输出存储器中的同一个特定地址,造成输出地址冲突。通过步骤S2调整权重数据的进入顺序后,可以显著降低冲突发生的概率,但不能避免冲突的产生。因此,为了解决仍然少量存在的输出地址冲突问题,本发明提供如下解决方案:
在多个第一计算结果出现冲突的情况下,保留其中一个进行加法计算,其余第一计算结果通过选择器单元传入寄存器储存,当寄存器内数据和当前乘法器单元输出结果无冲突时,再进行加法计算和存储,直至所有输入数据计算完成。
同样的,当所述权重数据是语音、文字经神经网络模型训练完成后得到的,则步骤S3中相应为语音特征数据、文字特征数据,步骤S4中相应为加权后的特征语音、特征文字,本方法对语音、文字的卷积计算仍然适用。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种卷积计算装置,该卷积计算装置与上述实施例中卷积计算方法一一对应,在此不做重复描述。
所述装置包括:
存储模块,包括外部存储器、内部存储器和输出存储器;
计算模块,包括乘法器单元和加法器单元;
控制模块,包括选择器单元,用于控制存储器中数据的存储位置;
所述外部存储器用于存储特征数据和压缩后的权重数据;
所述特征数据和权重数据通过所述内部存储器传入计算模块,所述权重数据在内部存储器中调整进入计算模块的顺序;
所述乘法器单元用于计算特征数据与权重数据的乘积;
所述选择器单元用于确定计算结果的存入位置。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种卷积计算方法,其特征在于,包括以下步骤:
S1,压缩权重数据,所述权重数据是图像经神经网络模型训练完成后得到的;
S2,调整权重数据进入计算单元的顺序;
S3,将权重数据和图像特征数据输入乘法计算单元进行计算,得到第一计算结果;
S4,将所述第一计算结果与存储器内特定位置数据进行加法计算,得到第二计算结果,并将所述第二计算结果存入所述存储器内特定位置,得到加权求和后的特征图像;
其中:当至少两个所述第一计算结果存在竞争时,将所述至少两个第一计算结果中的一个暂存,待竞争消失后再进行计算。
2.根据权利要求1所述的卷积计算方法,其特征在于,根据计算结果的相干度,在具有相同列坐标的权重数据中,调整所述权重数据进入计算单元的顺序。
3.根据权利要求1所述的卷积计算方法,其特征在于,所述特征数据输入乘法计算单元前和/或输入乘法计算单元后,需要重复计算的特征数据通过脉动复用进行计算。
4.根据权利要求1所述的卷积计算方法,其特征在于,所述存储器内特定位置根据所述权重数据和特征数据的坐标消息唯一确定。
5.根据权利要求1所述的卷积计算方法,其特征在于,所述压缩权重数据包括:
S101,将权重数据展开为行向量,重新组成权重数据矩阵;
S102,采用压缩算法对权重数据进行压缩。
6.根据权利要求2所述的卷积计算方法,其特征在于,所述计算结果的相干度通过预先试验得到。
7.根据权利要求6所述的卷积计算方法,其特征在于,所述预先试验具体为:
选取部分或全部权重数据;
穷举所述权重数据的排列顺序,分别进行预计算,得到所述计算结果的相干度。
8.根据权利要求1所述的卷积计算方法,所述权重数据是语音、文字经神经网络模型训练完成后得到的,步骤S3中为语音特征数据、文字特征数据,步骤S4中相应得到加权后的特征语音、特征文字。
9.一种使用如权利要求1-8所述方法的卷积计算装置,包括:
存储模块,包括外部存储器、内部存储器和输出存储器;
计算模块,包括乘法器单元和加法器单元;
控制模块,包括选择器单元,用于控制存储器中数据的存储位置;
所述外部存储器用于存储特征数据和压缩后的权重数据;
所述特征数据和权重数据通过所述内部存储器传入计算模块,所述权重数据在内部存储器中调整进入计算模块的顺序;
所述乘法器单元用于计算特征数据与权重数据的乘积;
所述选择器单元用于确定计算结果的存入位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111244056.8A CN116028765A (zh) | 2021-10-25 | 2021-10-25 | 一种卷积计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111244056.8A CN116028765A (zh) | 2021-10-25 | 2021-10-25 | 一种卷积计算方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116028765A true CN116028765A (zh) | 2023-04-28 |
Family
ID=86069349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111244056.8A Pending CN116028765A (zh) | 2021-10-25 | 2021-10-25 | 一种卷积计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028765A (zh) |
-
2021
- 2021-10-25 CN CN202111244056.8A patent/CN116028765A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844828B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN111758107B (zh) | 用于基于硬件的池化的系统和方法 | |
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
US20210224125A1 (en) | Operation Accelerator, Processing Method, and Related Device | |
CN111667051A (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN109472361B (zh) | 神经网络优化方法 | |
CN110989920B (zh) | 能量高效的存储器系统和方法 | |
US11120101B2 (en) | Matrix multiplication system and method | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
CN110188869B (zh) | 一种基于卷积神经网络算法的集成电路加速计算的方法及系统 | |
CN112703511B (zh) | 运算加速器和数据处理方法 | |
US11928176B2 (en) | Time domain unrolling sparse matrix multiplication system and method | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN109446478B (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
US11526305B2 (en) | Memory for an artificial neural network accelerator | |
US11132195B2 (en) | Computing device and neural network processor incorporating the same | |
US20220108203A1 (en) | Machine learning hardware accelerator | |
CN116028765A (zh) | 一种卷积计算方法和装置 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
US12086453B2 (en) | Memory for an artificial neural network accelerator | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 |
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 |