CN111026700A - 实现加速的存内计算架构及其加速方法 - Google Patents
实现加速的存内计算架构及其加速方法 Download PDFInfo
- Publication number
- CN111026700A CN111026700A CN201911150139.3A CN201911150139A CN111026700A CN 111026700 A CN111026700 A CN 111026700A CN 201911150139 A CN201911150139 A CN 201911150139A CN 111026700 A CN111026700 A CN 111026700A
- Authority
- CN
- China
- Prior art keywords
- input data
- sparse
- acceleration
- sparsity
- input
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Studio Devices (AREA)
Abstract
本发明实施例提供一种实现加速的存内计算架构及其加速方法,其中该架构包括:存储单元阵列,包含多个存储单元,用于存储神经网络模型的权重,每行所述存储单元的输入端口对应设置有数模转换单元;稀疏检测模块,连接所述数模转换单元的输入端口,用于根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,以确定输入数据的稀疏程度;运算模块,用于根据所述稀疏程度,动态调整存内计算的运行方式,实现存内计算的稀疏加速。本发明实施例通过增加对输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,能够通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。
Description
技术领域
本发明涉及电路设计技术领域,更具体地,涉及一种实现加速的存内计算架构及其加速方法。
背景技术
存内计算是一种新兴的电路架构,不同于传统的存储与计算分离的冯诺依曼架构,存内计算将存储和计算融为一体,在存储单元的内部完成计算。相比于传统结构,存内计算具有高并行度、高能量效率的特点,对于需要大量并行矩阵向量乘法操作的算法,特别是神经网络算法,是一种更优的替代方案。
如图1所示,为根据现有技术的存内计算架构的结构示意图,其中包括M个输入单元DAC、N个输出单元ADC以及M行N列的存储单元阵列。每一行的图像通过DAC输入到存储单元,然后与存储在存储单元中的权重(每一行的n列为一个n-bit的权重数据)进行乘累加操作。每一个时钟周期,存储单元阵列中的m行DAC会打开输入,这m行的乘累加结果在每一列的ADC上转换为数字信号输出。记第i行输入的图像为ai,第i行第(j*n)~(j*n+n-1)列的n-bit的权重数据为wij,则ADC输出的乘累加结果为
在传统的存内计算电路架构中,每一次打开的DAC行数m是固定的。在图1中m=8,每次可以打开第1-8行,第9-16行,…,第57-64行,这m行对应的乘累加结果在电路设计上会保证在ADC采样结果不会发生溢出,或者溢出较少,不对算法最终结果产生较大误差影响。
神经网络算法是目前人工智能技术的一种重要算法,由大量的矩阵向量乘法操作组成,适合于使用存内计算电路实现高能效处理。考虑到神经网络算法中存在的冗余性,通过稀疏技术,可以将大量的权重数据(weight)置为0。中间层的图像数据也存在非常多的0值,与0值对应的乘法和加法操作也可以跳过以进行加速运算。
但是,神经网络中0值权重的分布往往是离散的,不规则的,对于不同的图像,不同的中间层,0的分布也存在较大的区别。并且,现有的存内计算架构通常是从算法到硬件结构的直接映射,尽管神经网络算法中存在大量的冗余,图1的电路结构却难以利用输入图像稀疏度的变化,规则的存内计算中也很难被直接利用以进行加速计算。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种实现加速的存内计算架构及其加速方法,用以通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。
第一方面,本发明实施例提供一种实现加速的存内计算架构,包括:
存储单元阵列,包含多个存储单元,用于存储神经网络模型的权重,每行所述存储单元的输入端口对应设置有数模转换单元;
稀疏检测模块,连接所述数模转换单元的输入端口,用于根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,以确定输入数据的稀疏程度;
运算模块,用于根据所述稀疏程度,动态调整存内计算的运行方式,以实现存内计算的稀疏加速。
其中可选的,所述稀疏检测模块具体用于:根据所述阈值,确定出所述输入数据的稀疏程度为全零值或者为稀疏;相应的,所述运算模块具体用于,在所述稀疏程度为全零值时,对应跳过对所述输入数据的计算并将计算结果置为零,在所述稀疏程度为稀疏时,在一个时钟周期内打开所有所述输入数据对应的行,并对所述输入数据和所述输入数据对应的行内存储的权重进行乘加计算。
其中可选的,每列所述存储单元的输出端口对应设置有模数转换单元,所述输入数据对应的行数为存内计算中一个时钟周期内能够打开的最大行数,所述最大行数根据设定条件进行确定,所述设定条件包括所述模数转换单元的运算不会溢出或者溢出量小于设定阈值。
进一步的,所述稀疏检测模块还用于,根据所述阈值,确定出所述输入数据的稀疏程度为稠密;相应的,所述运算模块还用于,在所述稀疏程度为稠密时,将所述输入数据平均分配到多个时钟周期,并在每个时钟周期内仅打开该时钟周期对应的行,以对每个时钟周期内的输入数据和该输入数据对应行中存储的权重进行乘加运算。
其中可选的,所述稀疏检测模块具体用于,检测所述最大行数的输入数据中为零值的数据的数量,并通过比较所述为零值的数据的数量与所述阈值,确定所述稀疏程度。
第二方面,本发明实施例提供一种基于如上述第一方面所述的实现加速的存内计算架构的加速方法,包括:
根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,确定输入数据的稀疏程度;
根据所述稀疏程度,动态调整存内计算的运行方式,实现存内计算的稀疏加速。
本发明实施例提供的实现加速的存内计算架构及其加速方法,通过增加对输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,能够通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据现有技术的存内计算架构的结构示意图;
图2为本发明实施例提供的实现加速的存内计算架构的结构示意图;
图3为根据本发明实施例提供的实现加速的存内计算架构的电路结构示意图;
图4为本发明实施例提供的基于实现加速的存内计算架构的加速方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
本发明实施例针对现有技术由于无法充分利用网络的冗余性而导致运算加速困难的问题,通过增加对输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,能够通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。
图2为本发明实施例提供的实现加速的存内计算架构的结构示意图,该架构可用于实现对存内计算在神经网络应用中的运算加速,如图2所示,该架构包括存储单元阵列201、稀疏检测模块202和运算模块203。其中:
存储单元阵列201包含多个存储单元,用于存储神经网络模型的权重,每行存储单元的输入端口对应设置有数模转换单元;稀疏检测模块202连接数模转换单元的输入端口,用于根据神经网络算法确定的阈值,对输入存储单元阵列的数据进行稀疏检测,以确定输入数据的稀疏程度;运算模块203用于根据稀疏程度,动态调整存内计算的运行方式,以实现存内计算的稀疏加速。
可以理解为,本发明实施例的实现加速的存内计算架构增加了对于输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,实现电路架构的稀疏加速。因此其至少应包括存储单元阵列201、稀疏检测模块202和运算模块203,分别用于实现对神经网络模型权重的存储、对输入数据的稀疏性检测以及根据稀疏性检测结果动态调整存内计算的运行方式以实现加速的处理流程。
具体而言,如图3所示,为根据本发明实施例提供的实现加速的存内计算架构的电路结构示意图,存储单元阵列201包括M行N列的存储单元,每一行通过数模转换单元(DAC)将输入图像数据输入到存储单元,然后与存储在存储单元中的神经网络权重(每一行的n列为一个n-bit的权重数据)进行乘累加操作。同时,在每一列的存储单元的乘加输出端,设置有对应的模数转换单元ADC,在每一个时钟周期,存储单元阵列中的m行DAC会打开输入,这m行的乘累加结果在每一列的ADC上转换为数字信号输出。
稀疏检测模块202主要用于实现对输入到DAC的输入数据进行稀疏检测,输出输入数据的稀疏程度结果。具体对输入的输入数据中为零的数据的数量进行统计,同时根据神经网络算法确定合适的阈值,之后通过将统计的为零的数据的数量与该阈值进行比对,实现对输入到存储单元阵列的数据的稀疏检测,输出该输入数据的稀疏程度。
运算模块203则在检测出输入数据的稀疏程度的基础上,根据该稀疏程度对应的稀疏情况,对应的调整存内计算的运行方式,如在得到输入的数据为稀疏状态时,意味着这些数据的行中零值较多,可以保证其中非零值小于m个或者不超过m个太多,从而保证对应的ADC不会溢出,或者溢出值较小(也即溢出量小于某一设定阈值),对最终神经网络算法结果不产生较大影响。因此在一个周期内可同时将这些输入数据对应的每一行的DAC和ADC均打开,以缩短运算时间,实现稀疏加速。
本发明实施例提供的实现加速的存内计算架构,通过增加对输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,能够通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。
其中,根据上述各实施例可选的,稀疏检测模块具体用于:根据阈值,确定出输入数据的稀疏程度为全零值或者为稀疏;相应的,运算模块具体用于,在稀疏程度为全零值时,对应跳过对输入数据的计算并将计算结果置为零,在稀疏程度为稀疏时,在一个时钟周期内打开所有输入数据对应的行,并对输入数据和输入数据对应的行内存储的权重进行乘加计算。
可以理解为,在对输入数据进行稀疏检测时,可能根据输入数据中为零的数量,得到不同的稀疏程度结果,如果输入数据全部为零,则稀疏程度对应的即为全零值,若输入数据不全为零,且为零的数量小于上述阈值,则可认为此时的输入数据的稀疏程度为稀疏。
其中可选的,稀疏检测模块具体用于,检测最大行数的输入数据中为零值的数据的数量,并通过比较为零值的数据的数量与阈值,确定稀疏程度。也就是说,在输入DAC之前,存储在输入图像缓冲区中的数据会首先经过一个稀疏检测模块,稀疏检测模块会统计将要输入的SM行中0的数量,再将该数量与一个算法确定的阈值(sparsity threshold,可以为1~SM的自然数)进行比较,得到这SM行数据的稀疏程度。
于是相应的,对于全零值和稀疏两种不同稀疏程度,运算单元也会采用不同的运算方式得到运算结果。具体而言,当检测到输入数据的稀疏程度为全零值时,输入的SM行数据对应的乘累加结果也一定是0,可以直降跳过对应行的计算,执行下方的SM行数据的计算。即可跳过对输入数据的计算并将计算结果置为零。而当检测到输入数据的稀疏程度为稀疏时,意味着这些数据的行中零值较多,可以保证其中非零值小于m个或者不超过m个太多,从而保证对应的ADC不会溢出,或者溢出值较小(也即溢出量小于某一设定阈值),对最终神经网络算法结果不产生较大影响。此时可在一个时钟周期内打开这SM行所有输入数据对应的行,并对输入数据和其对应的行内存储的权重进行乘加计算。
本发明实施例通过将输入到存内计算阵列的图像数据进行稀疏度划分,动态控制ADC打开的行数,使稀疏情况下对应的计算可以扩大并行度或者直接跳过,从而加速整体神经网络的运算。
其中可选的,每列存储单元的输出端口对应设置有模数转换单元,输入数据对应的行数为存内计算中一个时钟周期内能够打开的最大行数,最大行数根据设定条件进行确定,设定条件包括模数转换单元的运算不会溢出或者溢出量小于设定阈值。
也就是说,每次输入到存储单元阵列的数据不超过SM行,其中SM指的是存内计算中一个时钟周期能打开的输入通到的最大行数,存储单元阵列的总行数M是SM的整数倍,SM是m的整数倍,m是保证ADC运算不会溢出或者溢出量较小的最大打开行数。
进一步的,在上述各实施例的基础上,稀疏检测模块还用于,根据阈值,确定出输入数据的稀疏程度为稠密;相应的,运算模块还用于,在稀疏程度为稠密时,将输入数据平均分配到多个时钟周期,并在每个时钟周期内仅打开该时钟周期对应的行,以对每个时钟周期内的输入数据和该输入数据对应行中存储的权重进行乘加运算。
可以理解为,在根据上述各实施例利用稀疏检测模块对输入数据的稀疏性进行检测时,还可能出现的一种情况是输入的SM行数据中,为零的数据小于上述确定的阈值,则此时可将输入数据的稀疏程度认为是稠密状态,该状态意味着非零值较多,为降低运算复杂度以提高效率,这SM行将被分配在t个时钟周期(t为正整数,SM=t*m),每一个时钟周期内打开一个m行进行计算。
可以理解的是,本发明实施例ADC采用最多打开m行,结果不会溢出或很少溢出的方案。因为随着打开行数的增加,ADC采样间隔/功耗/面积等也会相应改变。已有的电路结构都采用打开固定m行和固定ADC的方式,或者其他与稀疏加速无关的方式,比如允许打开m行或2m行,但打开2m行时改变ADC采样间隔和精度,相应功耗会增加。
基于相同的发明构思,本发明实施例还提供一种基于如上述各实施例的实现加速的存内计算架构的加速方法,该方法通过应用上述各实施例提供的实现加速的存内计算架构,实现对输入数据的稀疏性的检测,并能实现运算加速。因此,在上述各实施例的实现加速的存内计算架构中的描述和定义,可以用于本发明实施例中各个处理步骤的理解,具体可参考上述实施例,此处不在赘述。
作为本发明的一个实施例,所提供的基于如上述各实施例的实现加速的存内计算架构的加速方法如图4所示,为本发明实施例提供的基于实现加速的存内计算架构的加速方法的流程示意图,包括以下处理过程:
S401,根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,确定输入数据的稀疏程度。
可以理解为,本步骤主要用于实现对输入到DAC的输入数据进行稀疏检测,输出输入数据的稀疏程度结果。具体对输入的输入数据中为零的数据的数量进行统计,同时根据神经网络算法确定合适的阈值,之后通过将统计的为零的数据的数量与该阈值进行比对,实现对输入到存储单元阵列的数据的稀疏检测,输出该输入数据的稀疏程度。
S402,根据所述稀疏程度,动态调整存内计算的运行方式,实现存内计算的稀疏加速。
可以理解为,本步骤在检测出输入数据的稀疏程度的基础上,根据该稀疏程度对应的稀疏情况,对应的调整存内计算的运行方式,如在得到输入的数据为稀疏状态时,意味着这些数据的行中零值较多,可以保证其中非零值小于m个或者不超过m个太多,从而保证对应的ADC不会溢出,或者溢出值较小(也即溢出量小于某一设定阈值),对最终神经网络算法结果不产生较大影响。因此在一个周期内可同时将这些输入数据对应的每一行的DAC和ADC均打开,以缩短运算时间,实现稀疏加速。
本发明实施例提供的基于如上述各实施例的实现加速的存内计算架构的加速方法,通过增加对输入图像稀疏程度的在线检测模块,根据输入图像的稀疏度,动态调整存内计算的运行方式,能够通过有效利用输入数据的稀疏特性,实现存内计算在神经网络算法应用中的有效加速。
为进一步说明本发明实施例的技术方案,本发明实施例根据上述各实施例提供如下具体的处理过程,但不对本发明实施例的保护范围进行限制。
本发明实施例经由数字电路和模拟电路的前端设计、后端设计及晶元制造后,得到包含了本发明实例的集成电路芯片。工艺制程采用台积电65nm工艺,而后封装芯片后测试功耗和性能。芯片面积3.0mm×3.0mm,包含了4个相同的存内计算阵列,每一个阵列都配置了本发明中的稀疏加速模块。测试运行频率50-100MHz,对应电压为0.90-1.05V。
存内计算架构包括:
稀疏检测模块:对于输入图像数据进行稀疏检测,分类之后确定存内计算阵列的打开行数。
存内计算阵列模块:支持在一个时钟周期打开最多SM行进行计算,ADC支持打开最多m行保证采样结果不溢出或很少溢出。
稀疏阈值:可以根据算法需要确定,阈值过高会影响算法准确率。调节阈值可以在加速比例和算法准确率之间进行折中。
本发明实施例提出的方案利用了输入图像的稀疏性,参考图3详细展示了输入图像部分的加速处理方案,并以M行N列阵列中的第一列作为样例,其他列的处理和第一列完全一致。
本发明实施例结合了算法上输入图像数据的稀疏特性,在输入DAC之前,存储在输入图像缓冲区中的数据会首先经过一个稀疏检测模块,稀疏检测模块会统计将要输入的SM行中0的数量,并将该数量与一个算法确定的阈值(sparsity threshold,可以为1~SM的自然数)进行比较,将输入图像的稀疏程度分为全0、稀疏及稠密这三种情况:
1)如果输入图像全部为0,这SM行对应的乘累加结果也一定是0,可以直降跳过对应行的计算,执行下方的SM行数据的计算。
2)如果输入图像为稀疏,则意味着打开SM行中零值较多,可以保证其中非零值小于m个或者不超过m个太多,从而保证对应的ADC不会溢出,或者溢出值较小,对最终神经网络算法结果不产生较大影响。在这种情况下,可以在一个时钟周期打开SM行进行计算。
3)如果输入图像为稠密,意味着非零值较多,这SM行将被分配在t个时钟周期(t为正整数,SM=t*m),每一个时钟周期打开m行进行计算。
试验表明,本发明实施例通过稀疏加速实现了更加高效的存内计算电路架构。本发明实施例在不同神经网络算法上进行了稀疏训练与芯片测试,配置SM=16,m=8,sparsethreshold=8。在基于MNIST和Cifar-10这两种图像识别测试集上,使用VGG16和ResNet18两种神经网络算法模型进行了训练和测试,对于不同的输入图像和权重比特数配置,分别实现了1.62倍~4.97倍的加速效果(等效于1.62倍~4.97倍的能效提升)。
本发明实施例相比于传统的存内计算架构,将原本只能固定每次打开m行进行计算的方式,变为根据输入图像稀疏度动态调整打开行数的方案,实现了基于稀疏的存内计算加速。
可以理解的是,以上所描述的存内计算架构的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品,也可以以硬件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
Claims (6)
1.一种实现加速的存内计算架构,其特征在于,包括:
存储单元阵列,包含多个存储单元,用于存储神经网络模型的权重,每行所述存储单元的输入端口对应设置有数模转换单元;
稀疏检测模块,连接所述数模转换单元的输入端口,用于根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,以确定输入数据的稀疏程度;
运算模块,用于根据所述稀疏程度,动态调整存内计算的运行方式,以实现存内计算的稀疏加速。
2.根据权利要求1所述的实现加速的存内计算架构,其特征在于,所述稀疏检测模块具体用于:根据所述阈值,确定出所述输入数据的稀疏程度为全零值或者为稀疏;
相应的,所述运算模块具体用于,在所述稀疏程度为全零值时,对应跳过对所述输入数据的计算并将计算结果置为零,在所述稀疏程度为稀疏时,在一个时钟周期内打开所有所述输入数据对应的行,并对所述输入数据和所述输入数据对应的行内存储的权重进行乘加计算。
3.根据权利要求1或2所述的实现加速的存内计算架构,其特征在于,每列所述存储单元的输出端口对应设置有模数转换单元,所述输入数据对应的行数为存内计算中一个时钟周期内能够打开的最大行数,所述最大行数根据设定条件进行确定,所述设定条件包括所述模数转换单元的运算不会溢出或者溢出量小于设定阈值。
4.根据权利要求2所述的实现加速的存内计算架构,其特征在于,所述稀疏检测模块还用于,根据所述阈值,确定出所述输入数据的稀疏程度为稠密;
相应的,所述运算模块还用于,在所述稀疏程度为稠密时,将所述输入数据平均分配到多个时钟周期,并在每个时钟周期内仅打开该时钟周期对应的行,以对每个时钟周期内的输入数据和该输入数据对应行中存储的权重进行乘加运算。
5.根据权利要求3所述的实现加速的存内计算架构,其特征在于,所述稀疏检测模块具体用于,检测所述最大行数的输入数据中为零值的数据的数量,并通过比较所述为零值的数据的数量与所述阈值,确定所述稀疏程度。
6.一种基于权利要求1-5中任一项所述的实现加速的存内计算架构的加速方法,其特征在于,包括:
根据神经网络算法确定的阈值,对输入所述存储单元阵列的数据进行稀疏检测,确定输入数据的稀疏程度;
根据所述稀疏程度,动态调整存内计算的运行方式,实现存内计算的稀疏加速。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150139.3A CN111026700B (zh) | 2019-11-21 | 2019-11-21 | 实现加速的存内计算架构及其加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150139.3A CN111026700B (zh) | 2019-11-21 | 2019-11-21 | 实现加速的存内计算架构及其加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026700A true CN111026700A (zh) | 2020-04-17 |
CN111026700B CN111026700B (zh) | 2022-02-01 |
Family
ID=70206194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911150139.3A Active CN111026700B (zh) | 2019-11-21 | 2019-11-21 | 实现加速的存内计算架构及其加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026700B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984921A (zh) * | 2020-08-27 | 2020-11-24 | 华中科技大学 | 一种存内数值计算加速器及存内数值计算方法 |
CN112214326A (zh) * | 2020-10-22 | 2021-01-12 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
CN112529171A (zh) * | 2020-12-04 | 2021-03-19 | 中国科学院深圳先进技术研究院 | 一种存内计算加速器及其优化方法 |
CN113537465A (zh) * | 2021-07-07 | 2021-10-22 | 深圳市易成自动驾驶技术有限公司 | Lstm模型优化方法、加速器、装置及介质 |
CN113723044A (zh) * | 2021-09-10 | 2021-11-30 | 上海交通大学 | 一种基于数据稀疏性的超额行激活存算一体加速器设计 |
WO2022087810A1 (en) * | 2020-10-27 | 2022-05-05 | NeoNexus Pte. Ltd. | Apparatus and method for matrix multiplication using processing-in-memory |
CN118227339A (zh) * | 2024-05-22 | 2024-06-21 | 北京灵汐科技有限公司 | 数据处理方法、数据处理装置、系统、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008112921A1 (en) * | 2007-03-14 | 2008-09-18 | Halliburton Energy Services, Inc. | Neural-network based surrogate model construction methods and applications thereof |
US8818923B1 (en) * | 2011-06-27 | 2014-08-26 | Hrl Laboratories, Llc | Neural network device with engineered delays for pattern storage and matching |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107609641A (zh) * | 2017-08-30 | 2018-01-19 | 清华大学 | 稀疏神经网络架构及其实现方法 |
WO2018201060A1 (en) * | 2017-04-27 | 2018-11-01 | The Regents Of The University Of California | Mixed signal neuromorphic computing with nonvolatile memory devices |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109543815A (zh) * | 2018-10-17 | 2019-03-29 | 清华大学 | 神经网络的加速方法及装置 |
CN109685205A (zh) * | 2018-12-26 | 2019-04-26 | 上海大学 | 一种基于稀疏矩阵的深度网络模型加速方法 |
US20190227799A1 (en) * | 2018-01-19 | 2019-07-25 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Microprocessor with dynamically adjustable bit width for processing data |
WO2019195660A1 (en) * | 2018-04-05 | 2019-10-10 | Rain Neuromorphics Inc. | Systems and methods for efficient matrix multiplication |
-
2019
- 2019-11-21 CN CN201911150139.3A patent/CN111026700B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008112921A1 (en) * | 2007-03-14 | 2008-09-18 | Halliburton Energy Services, Inc. | Neural-network based surrogate model construction methods and applications thereof |
US8818923B1 (en) * | 2011-06-27 | 2014-08-26 | Hrl Laboratories, Llc | Neural network device with engineered delays for pattern storage and matching |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
WO2018201060A1 (en) * | 2017-04-27 | 2018-11-01 | The Regents Of The University Of California | Mixed signal neuromorphic computing with nonvolatile memory devices |
CN107609641A (zh) * | 2017-08-30 | 2018-01-19 | 清华大学 | 稀疏神经网络架构及其实现方法 |
US20190227799A1 (en) * | 2018-01-19 | 2019-07-25 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Microprocessor with dynamically adjustable bit width for processing data |
WO2019195660A1 (en) * | 2018-04-05 | 2019-10-10 | Rain Neuromorphics Inc. | Systems and methods for efficient matrix multiplication |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109543815A (zh) * | 2018-10-17 | 2019-03-29 | 清华大学 | 神经网络的加速方法及装置 |
CN109685205A (zh) * | 2018-12-26 | 2019-04-26 | 上海大学 | 一种基于稀疏矩阵的深度网络模型加速方法 |
Non-Patent Citations (3)
Title |
---|
JINGYU WANG;ZHE YUAN;HUAZHONG YANG;YONGPAN LIU: "An N-way group association architecture and sparse data group association load balancing algorithm for sparse CNN accelerators", 《ASPDAC"19》 * |
ZHE YUAN; JINSHAN YUE; HUANRUI YANG; ZHIBO WANG; JINYANG LI; YIX: "Sticker: A 0.41-62.1 TOPS/W 8Bit Neural Network Processor with Multi-Sparsity Compatible Convolution Arrays and Online Tuning Acceleration for Fully Connected Layers", 《2018 IEEE SYMPOSIUM ON VLSI CIRCUITS》 * |
周徐达: "稀疏神经网络和稀疏神经网络加速器的研究", 《中国博士论文全文数据库.信息科技辑》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984921B (zh) * | 2020-08-27 | 2024-04-19 | 华中科技大学 | 一种存内数值计算加速器及存内数值计算方法 |
CN111984921A (zh) * | 2020-08-27 | 2020-11-24 | 华中科技大学 | 一种存内数值计算加速器及存内数值计算方法 |
WO2022082836A1 (zh) * | 2020-10-22 | 2022-04-28 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
CN112214326A (zh) * | 2020-10-22 | 2021-01-12 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
US12039429B2 (en) | 2020-10-22 | 2024-07-16 | Nanjing Prochip Electronic Technology Co., Ltd | Method and system for accelerating equilibrium computation on sparse recurrent neural network |
WO2022087810A1 (en) * | 2020-10-27 | 2022-05-05 | NeoNexus Pte. Ltd. | Apparatus and method for matrix multiplication using processing-in-memory |
CN112529171B (zh) * | 2020-12-04 | 2024-01-05 | 中国科学院深圳先进技术研究院 | 一种存内计算加速器及其优化方法 |
CN112529171A (zh) * | 2020-12-04 | 2021-03-19 | 中国科学院深圳先进技术研究院 | 一种存内计算加速器及其优化方法 |
CN113537465A (zh) * | 2021-07-07 | 2021-10-22 | 深圳市易成自动驾驶技术有限公司 | Lstm模型优化方法、加速器、装置及介质 |
CN113537465B (zh) * | 2021-07-07 | 2024-10-08 | 深圳市易成自动驾驶技术有限公司 | Lstm模型优化方法、加速器、装置及介质 |
CN113723044A (zh) * | 2021-09-10 | 2021-11-30 | 上海交通大学 | 一种基于数据稀疏性的超额行激活存算一体加速器设计 |
CN113723044B (zh) * | 2021-09-10 | 2024-04-05 | 上海交通大学 | 一种基于数据稀疏性的超额行激活存算一体加速器设计方法 |
CN118227339A (zh) * | 2024-05-22 | 2024-06-21 | 北京灵汐科技有限公司 | 数据处理方法、数据处理装置、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111026700B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026700B (zh) | 实现加速的存内计算架构及其加速方法 | |
Liu et al. | Parallelizing SRAM arrays with customized bit-cell for binary neural networks | |
US11106606B2 (en) | Exploiting input data sparsity in neural network compute units | |
CN107636640B (zh) | 点积引擎、忆阻器点积引擎以及用于计算点积的方法 | |
US10977339B2 (en) | Systems and methods for mapping matrix calculations to a matrix multiply accelerator | |
CN111079919B (zh) | 支持权重稀疏的存内计算架构及其数据输出方法 | |
Cai et al. | Low bit-width convolutional neural network on RRAM | |
Roy et al. | TxSim: Modeling training of deep neural networks on resistive crossbar systems | |
EP3627401B1 (en) | Method and device for training neural network | |
Meng et al. | Structured pruning of RRAM crossbars for efficient in-memory computing acceleration of deep neural networks | |
KR102396447B1 (ko) | 파이프라인 구조를 가지는 인공신경망용 연산 가속 장치 | |
Cao et al. | Neural-pim: Efficient processing-in-memory with neural approximation of peripherals | |
Rasch et al. | Training large-scale artificial neural networks on simulated resistive crossbar arrays | |
Hoang et al. | Tre-map: Towards reducing the overheads of fault-aware retraining of deep neural networks by merging fault maps | |
Lin et al. | Rescuing memristor-based computing with non-linear resistance levels | |
Zhang et al. | Exploring bit-slice sparsity in deep neural networks for efficient ReRAM-based deployment | |
He et al. | Infox: An energy-efficient reram accelerator design with information-lossless low-bit adcs | |
CN112529171B (zh) | 一种存内计算加速器及其优化方法 | |
Ma et al. | Non-volatile memory array based quantization-and noise-resilient LSTM neural networks | |
Wang et al. | Deep neural network mapping and performance analysis on tiled rram architecture | |
Chang et al. | T-eap: Trainable energy-aware pruning for nvm-based computing-in-memory architecture | |
Peng et al. | Network Pruning Towards Highly Efficient RRAM Accelerator | |
de Lima et al. | Quantization-aware in-situ training for reliable and accurate edge ai | |
Al-Shaarawy et al. | PRUNIX: Non-Ideality Aware Convolutional Neural Network Pruning for Memristive Accelerators | |
KR20220046284A (ko) | C-tsvd 기반 크로스바 어레이 장치 및 그 장치를 이용한 아날로그 mac 동작 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |