CN115982529A - 卷积运算结构、卷积运算阵列及相关设备 - Google Patents
卷积运算结构、卷积运算阵列及相关设备 Download PDFInfo
- Publication number
- CN115982529A CN115982529A CN202211605351.6A CN202211605351A CN115982529A CN 115982529 A CN115982529 A CN 115982529A CN 202211605351 A CN202211605351 A CN 202211605351A CN 115982529 A CN115982529 A CN 115982529A
- Authority
- CN
- China
- Prior art keywords
- adder
- convolution
- data
- convolution calculation
- convolution operation
- 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
-
- 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
本申请提供了一种卷积运算结构、卷积运算阵列及相关设备,其中,卷积运算结构包括:多个用于进行卷积计算的卷积计算单元;至少一个第一加法器和至少一个第二加法器;多个所述卷积计算单元通过所述第一加法器和所述第二加法器连接;其中,所述第一加法器用于实现两个输入值的加法运算,所述第二加法器用于实现三个输入值的加法运算。本申请通过基础的卷积计算单元,在设计不同大小的卷积核时,只需按卷积核大小的需求采用相应数量的卷积计算单元通过第一加法器和第二加法器连接即可,可以很容易地进行电路扩展,从而基于原有的卷积运算结构就可以很容易地得到适配新的算法需求的卷积运算结构。
Description
技术领域
本申请涉及处理器技术领域,具体而言,涉及一种卷积运算结构、卷5积运算阵列及相关设备。
背景技术
AI(Artificial Intelligence,人工智能)算法(例如机器学习算法、循环神经网络算法等)中存在大量的Convolution(卷积)运算。目前进行卷积0运算时,通常是直接设计所需卷积核大小的卷积运算结构,从而将数据输入该卷积运算结构得到运算结果。在算法需求的卷积核大小发生改变时,不能直接进行卷积运算结构的扩展,原有的卷积运算结构对于改变后的算法需求的适配性不好。
发明内容
5本申请实施例的目的在于提供一种卷积运算结构、卷积运算阵列及相
关设备,用以解决上述问题。
本申请实施例提供了一种卷积运算结构,包括:多个用于进行卷积计算的卷积计算单元;至少一个第一加法器和至少一个第二加法器;多个所
述卷积计算单元通过所述第一加法器和所述第二加法器连接;其中,所述0第一加法器用于实现两个输入值的加法运算,所述第二加法器用于实现三个输入值的加法运算。
在上述实现方式中,通过基础的卷积计算单元,在设计不同大小的卷积核时,只需按算法需求的卷积核大小采用相应数量的卷积计算单元通过
第一加法器和第二加法器连接即可,在算法需求的卷积核大小发生改变后,5只需增减基础的卷积计算单元的数量,并通过第一加法器和第二加法器连接即可,可以很容易地进行电路扩展,实现设定的运算需求,从而基于原有的卷积运算结构就可以很容易地得到适配新的算法需求的卷积运算结构,本申请的卷积运算结构可以更好地适配改变后的算法需求。
进一步地,所述卷积运算结构包括k个所述卷积计算单元;一个所述第一加法器和(k-2)/2个所述第二加法器;所述k为预设的大于等于4的偶数;所述第一加法器分别与第一个所述卷积计算单元和第二个所述卷积计算单元连接;第一个所述第二加法器分别与第三个所述卷积计算单元、第四个所述卷积计算单元和所述第一加法器连接;且在所述k大于等于6时,第j个所述第二加法器分别与第j-1个所述第二加法器、第2j+1个所述卷积计算单元和第2j+2个所述卷积计算单元连接,其中,所述j属于2至(k-2)/2。
在上述实现方式中,通过一个第一加法器和(k-2)/2个第二加法器就可以实现k个卷积计算单元之间的累加,从而可以使得卷积运算结构可以实现设定的运算需求。
进一步的,所述第一加法器与第1个所述第二加法器之间通过第一数据选择器连接;所述第一数据选择器用于根据控制信号,将所述第一加法器的结果数据输出给第1个所述第二加法器,或直接输出所述第一加法器的结果数据。
在上述实现方式中,通过在第一加法器和第二加法器之间设置第一数据选择器,从而可以通过第一数据选择器的作用,实现两个卷积计算单元的卷积运算结果的输出或是所有卷积计算单元的卷积运算结果的累加后输出,从而可以适用于不同的AI运算需求。
在各第二加法器之间设置第二数据选择器,从而可以通过第一数据选择器和第二数据选择器的作用,按需实现不同数量的卷积计算单元的卷积运算结果的累加,从而可以适用于不同的AI运算需求。
进一步的,第j个所述第二加法器与第j-1个所述第二加法器之间通过第二数据选择器连接;所述第二数据选择器用于根据控制信号,将第j-1个所述第二加法器的结果数据输出给第j个所述第二加法器,或直接输出第j-1个所述第二加法器的结果数据。
在上述实现方式中,通过在各第二加法器之间设置第二数据选择器,从而可以通过第二数据选择器和第二数据选择器的作用,按需实现不同数量的卷积计算单元的卷积运算结果的累加,从而可以适用于不同的AI运算需求。
进一步的,每个所述卷积计算单元通过第三数据选择器与对应的加法器连接;所述对应的加法器为所述第一加法器或所述第二加法器;所述第三数据选择器用于根据控制信号,直接输出所述卷积计算单元的结果数据,或将所述卷积计算单元的结果数据输出给所述对应的加法器。
在上述实现过程中,通过在每个卷积计算单元之后设置第三数据选择器,从而可以通过第三数据选择器的作用,可以实现各卷积计算单元的卷积运算结果的单独输出,从而可以适用于不同的AI运算需求。
本申请实施例还提供了一种卷积运算阵列,包括:多个前述的卷积运算结构;相邻两个所述卷积运算结构中,位于相同位置处的两个所述卷积计算单元相连。
本申请实施例还提供了一种AI算法架构的实现装置,包括:存储单元,用于存储待运算数据和权重数据;访存控制单元,用于从所述存储单元获取所述权重数据和所述待运算数据;上述的卷积运算阵列,所述卷积运算阵列用于根据所述权重数据和所述待运算数据进行卷积运算。
本申请实施例还提供了一种处理器,包括:上述的AI算法架构的实现装置。
本申请实施例还提供了一种电子部件,包括上述的处理器。
本申请实施例还提供了一种电子设备,包括上述的处理器,或包括上述的电子部件。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种具有一个第一加法器和一个第二加法器的卷积运算结构的结构示意图;
图2为本申请实施例提供的一种基于一个第一加法器和多个第二加法器实现的卷积运算结构的结构示意图;
图3-1为本申请实施例中,基于图2所示的方案提供的一种具有第一数据选择器的卷积运算结构的结构示意图;
图3-2为本申请实施例中,基于图2所示的方案提供的一种具有第二数据选择器的卷积运算结构的结构示意图;
图3-3为本申请实施例中,基于图2所示的方案提供的一种同时具有第一数据选择器和第二数据选择器的卷积运算结构的结构示意图;
图4为本申请实施例中,基于图2所示的方案提供的一种具有第三数据选择器的卷积运算结构的结构示意图;
图5为本申请实施例中,基于图2所示的方案提供的一种同时具有第一数据选择器、第二数据选择器和第三数据选择器的卷积运算结构的结构示意图;
图6为本申请实施例中,基于图2所示的方案提供的另一种同时具有第一数据选择器、第二数据选择器和第三数据选择器的卷积运算结构的结构示意图;
图7为本申请实施例提供的一种基于一个第二加法器和多个第一加法器实现的卷积运算结构的结构示意图;
图8为本申请实施例中,基于图7所示的方案提供的一种同时具有第一数据选择器、第二数据选择器和第三数据选择器的卷积运算结构的结构示意图;
图9为本申请实施例提供的一种基于多个第二加法器和多个第一加法器实现的卷积运算结构的结构示意图;
图10为本申请实施例中,基于图9所示的方案提供的一种同时具有第一数据选择器、第二数据选择器和第三数据选择器的卷积运算结构的结构示意图;
图11为本申请实施例提供的一种卷积运算阵列的结构示意图;
图12为本申请实施例提供的一种可选的卷积计算单元的结构示意图;
图13为本申请实施例提供的一种AI算法架构的实现装置的结构示意图;
图14为本申请实施例提供的一种第一加法器的结构示意图;
图15为本申请实施例提供的一种第二加法器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了解决现有技术存在的问题,本申请实施例中提供了一种卷积运算结构。可以参见图1至图10所示,图1至图10示出了本申请所提供的卷积运算结构。
请参见图1所示,本申请所提供的卷积运算结构包括多个用于进行卷积计算的卷积计算单元,以及至少一个第一加法器和至少一个第二加法器。多个卷积计算单元通过第一加法器和第二加法器连接。
其中,第一加法器用于实现两个输入值的加法运算,第二加法器用于实现三个输入值的加法运算。
在本申请实施例的一种可选实施方式中,可以参见图2所示:可以通过配置1个用于实现两个输入值的加法运算的第一加法器,和多个用于实现三个输入值的加法运算的第二加法器,实现卷积运算结构内多个卷积计算单元的连接。
示例性的,假设卷积运算结构中包括k个卷积计算单元,则可以通过1个第一加法器和(k-2)/2个第二加法器实现连接。需要说明的是,本示例方案中仅讨论k为预设的大于等于4的偶数的情况,若k为2,则仅通过该第一加法器实现两个卷积计算单元的连接即可。
此时,若k等于4,则可以参见图1所示,在卷积运算结构中,包括一个第一加法器和一个第二加法器。第一加法器分别与第一个卷积计算单元和第二个卷积计算单元连接,第二加法器分别与第三个卷积计算单元、第四个卷积计算单元和第一加法器连接。
若k大于等于6,则第一加法器仍旧分别与第一个卷积计算单元和第二个卷积计算单元连接,第一个第二加法器分别与第三个卷积计算单元、第四个卷积计算单元和第一加法器连接,而第j(j属于2至(k-2)/2)个第二加法器分别与第j-1个第二加法器、第2j+1个卷积计算单元和第2j+2个卷积计算单元连接。
例如图2所示,图2示出了8个卷积计算单元(即k等于8)通过3个第二加法器实现连接的情况。显然,通过第一加法器和各第二加法器的作用,最终的输出为对8个卷积计算单元的结果数据累加后的数据。
在上述可选实施方式中,可参见图3-1所示,第一加法器与第1个第二加法器之间可以通过第一数据选择器连接,其中,第一数据选择器用于根据控制信号,将第一加法器的结果数据输出给第1个第二加法器,或直接输出第一加法器的结果数据。这样,可以通过第一数据选择器的作用,实现两个卷积计算单元的卷积运算结果的输出或是进入后续卷积计算单元中,进行卷积运算结果的累加,从而可以适用于不同的AI运算需求。
在上述可选实施方式中,可参见图3-2所示,各第二加法器之间也可以通过第二数据选择器连接。其中,第二数据选择器用于根据控制信号,将前一个第二加法器的结果数据输出给后一个第二加法器,或直接输出前一个第二加法器的结果数据。这样,通过第二数据选择器的设置,就实现的数据流向的控制,从而可以按需实现不同数量的卷积计算单元的卷积运算结果的累加,从而可以适用于不同的AI运算需求。
应理解,在上述可选实施方式中,也可以既采用第一数据选择器,也采用第二数据选择器,从而实现更为丰富的不同数量的卷积计算单元的卷积运算结果的累加,适应更为丰富的AI运算需求,例如图3-3所示。图3-3示出了8个卷积计算单元(即k等于8)通过3个第二加法器实现连接的情况。显然,通过第一数据选择器的作用,可以选择输出第一加法器的结果数据,或者继续由第二加法器进行结果数据的累加。而通过第二数据选择器的作用,可以选择输出任一个第二加法器的数据,从而可以实现不同数量的卷积计算单元的卷积运算结果的累加。
在上述可选实施方式中,卷积运算结构中的每个卷积计算单元也可以通过第三数据选择器与对应的加法器连接。其中,卷积运算结构中的第一个卷积计算单元和第二个卷积计算单元对应的加法器为第一加法器,而后续各卷积计算单元对应的加法器为所连接的第二加法器。
第三数据选择器用于根据控制信号,将卷积计算单元的结果数据输出给对应的加法器,或直接输出卷积计算单元的结果数据。这样,通过第三数据选择器的设置,也可以实现的数据流向的控制,从而可以按需实现直接输出某一卷积计算单元的结果数据,或是输出多个卷积计算单元的结果数据累加后的数据。
应理解,在本申请实施例中,可以仅设置布设于加法器之间的第一数据选择器和第二数据选择器,也可以仅设置第三数据选择器,还可以同时设置第一数据选择器、第二数据选择器和第三数据选择器。
例如,参见图4所示,图4示出了8个卷积计算单元(即k等于8)通过3个第二加法器实现连接的情况。图4中仅设置了第三数据选择器,从而可以实现每个卷积计算单元的结果数据的单独输出,也可以实现8个卷积计算单元的结果数据的累加后输出。
又例如,参见图5所示,图5也示出了8个卷积计算单元(即k等于8)通过3个第二加法器实现连接的情况。图5中既设置了第三数据选择器,也设置了第四选择器和第五选择器,从而可以实现每个卷积计算单元的结果数据的单独输出,也可以实现多个卷积计算单元的结果数据的累加后输出。
考虑到每个卷积计算单元的实现结构可以一致,因此也可以在对加法器之间通过数据选择器连接的方案中,仅针对一个卷积计算单元设置一个第三数据选择器,从而同样可以实现不同数量的卷积计算单元的结果数据的累加后输出。
例如,参见图6所示,图6也示出了8个卷积计算单元(即k等于8)通过3个第二加法器实现连接的情况。图6中既设置了1个第三数据选择器,也设置了第一数据选择器和第二数据选择器,通过该第三数据选择器可以实现1个卷积计算单元的结果数据的输出,而通过第一数据选择器和第二数据选择器可以实现2个卷积计算单元的结果数据的累加后输出,4个卷积计算单元的结果数据的累加后输出,6个卷积计算单元的结果数据的累加后输出,以及8个卷积计算单元的结果数据的累加后输出。
应理解,在本申请实施例中,控制信号可以携带于卷积计算单元所接收的待运算数据中,对卷积计算单元中的各数据选择器进行选通控制。
还应理解,在本申请实施例中,除了可以通过一个第一加法器和(k-2)/2个第二加法器实现k个卷积计算单元之间的累加外,也可以通过多个第一加法器和一个第二加法器实现k个卷积计算单元之间的累加,或通过多个第一加法器和多个第二加法器实现k个卷积计算单元之间的累加。
示例性的,可以通过k-3个第一加法器实现连接前k-2个卷积计算单元之间的累加,并通过一个第二加法器实现最后两个卷积计算单元与在先的各卷积计算单元之间的累加。例如图7所示,图7示出了采用6个卷积计算单元(即k等于6)通过3个第一加法器和一个第二加法器实现连接的情况。
可以理解,在通过k-3个第一加法器实现连接前k-2个卷积计算单元之间的累加,并通过一个第二加法器实现最后两个卷积计算单元与在先的各卷积计算单元之间的累加的方案中,与前文方案类似的,也可以设置第一数据选择单元、第二数据选择单元和第三数据选择单元中的至少之一,以实现更为灵活可控的结果数据的累加控制。
例如,可以参见图8所示,图8中既设置了1个第三数据选择器,也设置了第一数据选择器和第二数据选择器,通过该第三数据选择器可以实现1个卷积计算单元的结果数据的输出,而通过第一数据选择器和第二数据选择器可以实现2个卷积计算单元的结果数据的累加后输出,3个卷积计算单元的结果数据的累加后输出,4个卷积计算单元的结果数据的累加后输出,以及6个卷积计算单元的结果数据的累加后输出。
应理解,图8示出的为同时包含有第一数据选择器、第二数据选择器和第三数据选择器的情况,在本申请实施例中,也可以仅包含第一数据选择器、第二数据选择器和第三数据选择器中的一种或两种,对此本申请实施例不做限制。
又示例性的,可以通过m个第一加法器实现连接前m+1个卷积计算单元之间的累加,并通过n个第二加法器实现最后的2n个卷积计算单元与在先的各卷积计算单元之间的累加。其中,m和n均为大于1小于k的正整数,且m+1+2n=k。
例如图9所示,图9示出了采用8个卷积计算单元(即k等于8)通过3个第一加法器和两个第二加法器实现连接的情况。
可以理解,在通过m个第一加法器实现连接前m+1个卷积计算单元之间的累加,并通过n个第二加法器实现最后2n个卷积计算单元与在先的各卷积计算单元之间的累加的方案中,与前文方案类似的,也可以设置第一数据选择单元、第二数据选择单元和第三数据选择单元中的至少之一,以实现更为灵活可控的结果数据的累加控制。
例如,可以参见图10所示,图10中既设置了1个第三数据选择器,也设置了第一数据选择器和第二数据选择器,通过该第三数据选择器可以实现1个卷积计算单元的结果数据的输出,而通过第一数据选择器和第二数据选择器可以实现2个卷积计算单元的结果数据的累加后输出,3个卷积计算单元的结果数据的累加后输出,4个卷积计算单元的结果数据的累加后输出,6个卷积计算单元的结果数据的累加后输出,以及8个卷积计算单元的结果数据的累加后输出。
应理解,图10示出的为同时包含有第一数据选择器、第二数据选择器和第三数据选择器的情况,在本申请实施例中,也可以仅包含第一数据选择器、第二数据选择器和第三数据选择器中的一种或两种,对此本申请实施例也不做限制。
还应理解,上述提供的各卷积运算结构的实现结构仅是本申请实施例中所示例的几种具体可行的实现结构,但不作为限制。
基于同一发明构思,本申请实施例中还提供了一种卷积运算阵列,例如图11所示,在该卷积运算阵列中可以包括多个前述的卷积运算结构,且相邻两个卷积运算结构中,位于相同位置处的两个卷积计算单元相连,以保证用于进行卷积计算的待运算数据和权重数据可以在各卷积运算结构的卷积计算单元中传递。
可选的,参见图12所示,卷积计算单元可以包括权重传输子单元、权重执行子单元、数据传输子单元和卷积运算电路。其中,权重执行子单元用于在权重数据与卷积计算单元匹配时,加载该权重数据。其中,为了保证卷积运算的正确性,数据传输子单元可以在权重执行子单元完成对权重数据的加载后,获取待运算数据。而卷积运算电路则可以根据权重执行子单元中的权重数据对待运算数据进行卷积运算。
在本申请实施例中,权重传输子单元、权重执行子单元和数据传输子单元可以通过寄存器实现。本申请实施例中,卷积运算电路可以采用各类已有的可以实现卷积运算的电路实现,对此本申请实施例中不做限制。
此时,相邻两个卷积运算结构中,位于相同位置处的两个卷积计算单元之间,可以是两个卷积计算单元的权重传输子单元相连,以实现权重数据的传输,两个卷积计算单元的数据传输子单元也相连,以实现权重数据的传输。
基于同一发明构思,本申请实施例中还提供了一种AI算法架构的实现装置,可参见图13所示,包括:存储单元、访存控制单元和前述的卷积运算阵列。其中:
存储单元用于存储待运算数据和权重数据。
访存控制单元用于从存储单元获取权重数据和待运算数据。
卷积运算阵列用于根据权重数据和待运算数据进行卷积运算。
在本申请实施例中,权重数据和待运算数据为芯片使用过程中需要参与卷积运算的权重和数据。待运算数据可以为对图像、音频、通信数据、频谱信息等转换为二进制数后得到的数据。本申请实施例可应用于AI训练、金融、高精度计算、智能驾驶、安防、通信、频谱测量、智能推理等领域中的一个或多个领域。
在本申请实施例中,存储单元可以采用各类存储器实现,例如可以采用SPM(Scratch Pad Memory,记事本存储器)来实现,而访存控制单元则可以采用各类数据读取电路实现,但不作为限制。
可以理解,本申请实施例中的AI算法架构的实现装置还可以具有其他的部件,对此本申请实施例中不做限制。
可以理解,本申请实施例中,第一加法器的一种实现结构可以如图14所示:包括异常判断单元,exp_max计算单元,移位操作数选择单元,对阶移位器,尾数加法器和可选的浮点数规格化处理单元。第一加法器负责将2个卷积计算单元输出的结果(即操作数0和操作数1)进行移位累加。其中,卷积计算单元输出的结果中可以包含异常标志位,浮点指数exp,浮点尾数man。其中,异常判断单元根据2个卷积计算单元输出的异常标志位进行加法异常处理。例如:对于NAN、INF的浮点数按照IEEE规定的处理方式进行输出浮点异常结果即可。
exp_max计算单元根据卷积计算单元输出的2个指exp0、exp1找到最大的指数exp_max:
exp_diff0=exp0-exp1;
exp_diff1=exp1-exp0;
max_exp=exp_diff0>=0?exp0:exp1。
在本申请实施例中,公式A=a>=0?A1:A2表征:判断a是否大于等于0?若是,A等于A1,否则A等于A2。后文不再对该公式进行赘述。
移位操作数选择单元根据指数阶差进行操作数选择和指数阶差的选择,并将指数较小的尾数和指数阶差送到移位器进行对阶移位。其中,指数阶差exp_diff的确定方式如下:
max_man=exp_diff0>=0?man0:man1;
min_man=exp_diff0>=0?man1:man0;
exp_diff=exp_diff0>=0?exp_diff0:exp_diff1;
其中,max_man表征卷积计算单元输出的2个浮点尾数man0和man1中的大值,min_man表征卷积计算单元输出的2个浮点尾数man0和man1中的小值。
对阶移位器根据指数阶差,对指数较小的尾数进行对阶移位:
min_man_align=min_man>>exp_diff;
其中,>>为右移符号。min_man_align为对min_man对阶移位后的浮点尾数。在本申请实施例中,公式A=a>>b表征:A等于将a右移b位后的值。
尾数加法器加法器完成对阶后的尾数加法,并输出加法结果和结果的指数result_exp到后级模块:
Result_man=min_man_align+max_man;
Result_exp=max_exp。
浮点数规格化处理单元是可选项,其可以根据控制条件决定是否对第一加法器单元输出的浮点Result_man,Result_exp和异常标志位进行浮点数规格化处理并输出标准浮点数据。若第一级加法器输出的Result_man需要和其他卷积单元的输出进行累加则不进行规格化处理,否则对Result_man进行规格化处理并输出IEEE规定的浮点数数据格式。
可以理解,本申请实施例中,第二加法器的一种实现结构可以如图15所示:包含异常判断单元,exp_max计算单元,指数阶差计算单元,对阶移位器和csa32部分积压缩模块和尾数加法器。第二加法器负责将2个卷积计算单元和可选的第一加法器输出的结果(即操作数0、操作数1和操作数2)进行移位累加。其中,卷积计算单元的输出和第一加法器的输出结果中包含异常标志位、浮点指数exp、浮点尾数man。其中,异常判断单元根据3个卷积计算单元输出的异常标志位进行加法异常处理,并输出异常标志位到后级模块。加法异常处理可以按照IEEE规定进行处理,例如:对于NAN、INF的浮点数按照IEEE规定的处理方式进行输出浮点异常结果即可。
exp_max计算单元根据卷积计算单元输出的3个指exp[0]、exp[1]、exp[2]找到最大的指数exp_max。
指数阶差计算单元完成指数阶差计算:
exp_diff[0]=exp_max–exp_max[0];
exp_diff[1]=exp_max–exp_max[1];
exp_diff[2]=exp_max–exp_max[2];
对阶移位器根据指数阶差,对尾数进行对阶移位:
man_align[0]=man[0]>>exp_diff[0];
man_align[1]=man[1]>>exp_diff[1];
man_align[2]=man[2]>>exp_diff[2];
csa32部分积压缩模块和尾数加法器完成对阶后的尾数加法,并输出加法结果Result_man和结果的指数result_exp到后级模块:
Result_man=man_align[0]+man_align[1]+man_align[2];
Result_exp=max_exp。
浮点数规格化处理单元是可选项,其可以根据控制条件决定是否对第一加法器单元输出的浮点Result_man,Result_exp和异常标志位进行浮点数规格化处理并输出标准浮点数据。若第一级加法器输出的Result_man需要和其他卷积单元的输出进行累加则不进行规格化处理,否则对Result_man进行规格化处理并输出IEEE规定的浮点数数据格式。
可以理解,本申请实施例中异常判断单元、exp_max计算单元、指数阶差计算单元、csa32部分积压缩模块等单元或模块可以采用已有的各种可实现上述各单元或模块功能的相应电路实现,具体电路结构在本申请实施例中不做限制。
本申请实施例中还提供了一种处理器,该处理器中包括前述的AI算法架构的实现装置。
需要说明的是,本申请实施例提供的处理器可以是GPU(Graphic ProcessingUnit,图形处理器)、CPU(Central Processing Unit,中央处理器)、AI处理器等可以布设上述AI算法架构的实现装置,实现AI运算的处理器。
本申请实施例中还提供了一种电子部件,该电子部件中包括有前述的处理器。
可选的,该电子部件可以是诸如边缘处理盒子等可以实现IA运算的部件。
本申请实施例中还提供了一种电子设备,该电子设备中包括有前述的处理器或者包括有前述的电子部件。
可选的,该电子设备可以是诸如电脑、手机、服务器等设备,但不作为限制。
在本申请所提供的实施例中,应该理解到,所揭露装置,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另一点,所显示或讨论的相互之间的连接可以是通过一些接口电性连接的。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上,“/”是指或的关系。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种卷积运算结构,其特征在于,包括:
多个用于进行卷积计算的卷积计算单元;
至少一个第一加法器和至少一个第二加法器;多个所述卷积计算单元通过所述第一加法器和所述第二加法器连接;
其中,所述第一加法器用于实现两个输入值的加法运算,所述第二加法器用于实现三个输入值的加法运算。
2.如权利要求1所述的卷积运算结构,其特征在于,所述卷积运算结构包括k个所述卷积计算单元;一个所述第一加法器和(k-2)/2个所述第二加法器;所述k为预设的大于等于4的偶数;
所述第一加法器分别与第一个所述卷积计算单元和第二个所述卷积计算单元连接;第一个所述第二加法器分别与第三个所述卷积计算单元、第四个所述卷积计算单元和所述第一加法器连接;且在所述k大于等于6时,第j个所述第二加法器分别与第j-1个所述第二加法器、第2j+1个所述卷积计算单元和第2j+2个所述卷积计算单元连接,其中,所述j属于2至(k-2)/2。
3.如权利要求2所述的卷积运算结构,其特征在于,
所述第一加法器与第1个所述第二加法器之间通过第一数据选择器连接;所述第一数据选择器用于根据控制信号,将所述第一加法器的结果数据输出给第1个所述第二加法器,或直接输出所述第一加法器的结果数据。
4.如权利要求2所述的卷积运算结构,其特征在于,在所述k大于等于6时:
第j个所述第二加法器与第j-1个所述第二加法器之间通过第二数据选择器连接;所述第二数据选择器用于根据控制信号,将第j-1个所述第二加法器的结果数据输出给第j个所述第二加法器,或直接输出第j-1个所述第二加法器的结果数据。
5.如权利要求2-4任一项所述的卷积运算结构,其特征在于,
每个所述卷积计算单元通过第三数据选择器与对应的加法器连接;所述对应的加法器为所述第一加法器或所述第二加法器;
所述第三数据选择器用于根据控制信号,直接输出所述卷积计算单元的结果数据,或将所述卷积计算单元的结果数据输出给所述对应的加法器。
6.一种卷积运算阵列,其特征在于,包括:
多个如权利要求1-5任一项所述的卷积运算结构;
相邻两个所述卷积运算结构中,位于相同位置处的两个所述卷积计算单元相连。
7.一种AI算法架构的实现装置,其特征在于,包括:
存储单元,用于存储待运算数据和权重数据;
访存控制单元,用于从所述存储单元获取所述权重数据和所述待运算数据;
如权利要求6所述的卷积运算阵列,所述卷积运算阵列用于根据所述权重数据和所述待运算数据进行卷积运算。
8.一种处理器,其特征在于,包括:如权利要求7所述的AI算法架构的实现装置。
9.一种电子部件,其特征在于,包括如权利要求8所述的处理器。
10.一种电子设备,其特征在于,包括包括如权利要求9所述的电子部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211605351.6A CN115982529B (zh) | 2022-12-14 | 2022-12-14 | 卷积运算结构、卷积运算阵列及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211605351.6A CN115982529B (zh) | 2022-12-14 | 2022-12-14 | 卷积运算结构、卷积运算阵列及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115982529A true CN115982529A (zh) | 2023-04-18 |
CN115982529B CN115982529B (zh) | 2023-09-08 |
Family
ID=85963936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211605351.6A Active CN115982529B (zh) | 2022-12-14 | 2022-12-14 | 卷积运算结构、卷积运算阵列及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982529B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
KR20190005043A (ko) * | 2017-07-05 | 2019-01-15 | 울산과학기술원 | 연산 속도를 향상시킨 simd mac 유닛, 그 동작 방법 및 simd mac 유닛의 배열을 이용한 콘볼루션 신경망 가속기 |
CN111832705A (zh) * | 2020-06-30 | 2020-10-27 | 南京航空航天大学 | 一种卷积神经网络的压缩方法及其实现电路 |
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
CN111915001A (zh) * | 2020-08-18 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 卷积计算引擎、人工智能芯片以及数据处理方法 |
CN114528526A (zh) * | 2022-04-24 | 2022-05-24 | 深圳思谋信息科技有限公司 | 卷积数据处理方法、装置、卷积运算加速器和存储介质 |
CN114998107A (zh) * | 2022-06-13 | 2022-09-02 | 河北工业职业技术学院 | 一种图像盲超分辨网络模型、方法、设备及存储介质 |
-
2022
- 2022-12-14 CN CN202211605351.6A patent/CN115982529B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190005043A (ko) * | 2017-07-05 | 2019-01-15 | 울산과학기술원 | 연산 속도를 향상시킨 simd mac 유닛, 그 동작 방법 및 simd mac 유닛의 배열을 이용한 콘볼루션 신경망 가속기 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN111832705A (zh) * | 2020-06-30 | 2020-10-27 | 南京航空航天大学 | 一种卷积神经网络的压缩方法及其实现电路 |
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
CN111915001A (zh) * | 2020-08-18 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 卷积计算引擎、人工智能芯片以及数据处理方法 |
CN114528526A (zh) * | 2022-04-24 | 2022-05-24 | 深圳思谋信息科技有限公司 | 卷积数据处理方法、装置、卷积运算加速器和存储介质 |
CN114998107A (zh) * | 2022-06-13 | 2022-09-02 | 河北工业职业技术学院 | 一种图像盲超分辨网络模型、方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115982529B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995027B2 (en) | Neural processing accelerator | |
CN107844322B (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN101438232B (zh) | 不同浮点格式的浮点加法 | |
US5339266A (en) | Parallel method and apparatus for detecting and completing floating point operations involving special operands | |
CN110689125A (zh) | 计算装置 | |
CN110163360B (zh) | 一种计算装置及方法 | |
CN115640494B (zh) | 卷积计算单元、ai运算阵列及相关设备 | |
JPH06195322A (ja) | 汎用型ニューロコンピュータとして用いられる情報処理装置 | |
US11226791B2 (en) | Arithmetic processing device and method of controlling arithmetic processing device that enables suppression of size of device | |
JPH02294820A (ja) | 浮動小数点数演算処理装置および演算処理方法 | |
CN110147249B (zh) | 一种网络模型的计算方法及装置 | |
EP3782019B1 (en) | Multi-input floating-point adder | |
EP0291356A2 (en) | Apparatus and method for performing a shift operation in a multiplier array circuit | |
CN115982529B (zh) | 卷积运算结构、卷积运算阵列及相关设备 | |
CN115983337A (zh) | 卷积计算单元、ai运算阵列及相关设备 | |
US20110153706A1 (en) | Fast fourier transform architecture | |
CN109558109B (zh) | 数据运算装置及相关产品 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 | |
CN111368986B (zh) | 一种神经网络计算装置和方法 | |
US20140136582A1 (en) | Method and apparatus for digital automatic gain control | |
US20220342638A1 (en) | Multiplication/accumulation operators having multiple operation circuits | |
CN111313906A (zh) | 一种浮点数的转换电路 | |
US6895424B2 (en) | Method and circuit for alignment of floating point significants in a SIMD array MPP | |
EP4020162A1 (en) | Efficient dual-path floating-point arithmetic operators | |
US20220222045A1 (en) | Processing-in-memory devices having multiplication-and-accumulation circuits |
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 |