CN109840585B - 一种面向稀疏二维卷积的运算方法和系统 - Google Patents
一种面向稀疏二维卷积的运算方法和系统 Download PDFInfo
- Publication number
- CN109840585B CN109840585B CN201811124528.4A CN201811124528A CN109840585B CN 109840585 B CN109840585 B CN 109840585B CN 201811124528 A CN201811124528 A CN 201811124528A CN 109840585 B CN109840585 B CN 109840585B
- Authority
- CN
- China
- Prior art keywords
- cache
- characteristic diagram
- data
- convolution kernel
- convolution
- 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.)
- Active
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
Abstract
本发明涉及一种面向稀疏二维卷积的运算方法和系统,利用稀疏二维卷积具有分块计算的特性,将稀疏二维卷积转化为规则的二维卷积,使得不用对原始的运算单元进行侵入式地修改,只需要增加一个控制单元,就能消除稀疏二维卷积的冗余计算,从而获得更高的计算效率。
Description
技术领域
本发明涉及神经网络计算领域,特别涉及一种面向稀疏二维卷积的运算方法和系统。
背景技术
深度卷积神经网络已经广泛应用于图像识别,语音识别等领域。近年来面向深度卷积神经网络的计算芯片成为研究热点。二维卷积运算作为深度卷积神经网络的基本运算,其运算量占据了深度卷积神经网络总运算量的90%以上。因此,加速二维卷积运算,是加速深度卷积神经网络运算的关键。图1示出了二维卷积运算的示意图。
一个二维卷积运算的过程如下:卷积核重复与输入特征图的不同区域进行内积,得到输出特征图对应位置的输出。可以用以下计算公式表示:
其中,O(x,y)表示输出特征图中索引为(x,y)的象素点的值,K(i,j)表示卷积核中索引为(i,j)的象素点的值,I(x+i,y+j)表示输入特征图中索引为(x+i,y+j)的象素点的值,H和W分别为输入特征图的高度和宽度,R和S分别为卷积核的高度与宽度,E和F分别为输出特征图的高度和宽度。值得注意的是,输出特征图的索引值是从(1-R,1-S)开始计算,输入特征图和卷积核的索引值则从(0,0)开始计算。
随着深度卷积神经网络规模的扩大,使用现有的加速器并不能高效地处理规模越来越大的深度神经网络。神经网络模型的稀疏化是解决这一难题的途径之一。研究表明,稀疏化神经网络能够有效地减少神经网络参数中的冗余权重,并且不损失模型精度。很多研究工作通过剪枝、量化、压缩的方法,将现有的神经网络模型进行优化。例如,美国斯坦福大学[Han2015]采用网络剪枝以及量化的方法最神经网络的权重进行近似,减少了98%的权重。
稀疏化使得网络模型中存在大量的0值,将这些0值作为操作数的计算不对最后结果产生影响,所以这些0值的存储和计算都是冗余的。因此,模型的稀疏化使得神经网络模型中计算量和数据存储量大幅降低。然而,传统的稀疏卷积处理架构,[Cambricon-X],[cnvlutin],[SCNN]等,需要对运算阵列做侵入式地改动,才能支持稀疏卷积神经网络模型的运算。这样的做法开销太大,并且可扩展性不强。此外,这些设计还会带来对稠密卷积神经网络处理的兼容性问题。
发明人在进行稀疏卷积神经网络运算架构的研究时,发现现有技术没有考虑到稀疏二维卷积的计算特性,而是选择设计更复杂的运算单元来支持稀疏神经网络。发明人经过研究发现,稀疏二维卷积具有分块计算的特性,这一特性能够将稀疏二维卷积转化为规则的二维卷积,使得不用对原始的运算单元进行侵入式地修改,只需要增加一个控制单元,就能消除稀疏二维卷积的冗余计算。
发明内容
本发明的目的是提供一种克服现有的卷积运算架构设计在处理稀疏二维卷积时,没有消除冗余计算的功能,制约性能的提高,因此本发明提供一种稀疏二维卷积的运算系统,以消除稀疏卷积中的冗余计算。
本发明提供一种面向稀疏二维卷积的运算方法,包括:
步骤1,获取运算单元中乘累加阵列的阵列行数和列数,并根据该阵列的行数和列数,将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
步骤2,根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
步骤3,根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;
步骤4,该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
步骤5,将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则执行步骤2,否则将该Pk指针指向卷积核缓存中的第一行;
步骤6,将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则执行步骤2,否则输出该输出特征图缓存,计算结束。
该面向稀疏二维卷积的运算方法,其中该步骤2还包括:
步骤21,根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
该面向稀疏二维卷积的运算方法,其中卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
该面向稀疏二维卷积的运算方法,其中该步骤2还包括:
步骤22,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
步骤23,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
步骤24,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
步骤25,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
该面向稀疏二维卷积的运算方法,其中
该步骤22具体包括,
计算该卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s):
其中floor()函数为向下取整,%为取余函数,Ii为该卷积核缓存中第(i+1)个缓存行存储的索引数据,S为该卷积核的宽度;
该步骤23具体包括,根据当前缓存行第一个数据的坐标(j,0),计算(j,0)在输入特征图中的坐标记为(h,w):
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中ceil()函数为向上取整,M为乘累加阵列的列数,N为乘累加阵列的行数,W为输入特征图宽度;
根据(h,w)计算该第二坐标信息:
其中矩阵A代表该第二坐标信息,min()函数为取两个数的较小值,H为该输入特征图的高度;
步骤24中该第三坐标信息的计算公式为:
其中R为该卷积核的高度,S为该卷积核的宽度,矩阵B为该第三坐标信息;
该步骤25具体为,对于该矩阵B的任意元素(r,c),计算其在输出特征图中缓存地址(x,y):
y=M×(r%N)+c%M
对该矩阵B中所有元素坐标进行上述运算,以求得所有输出特征图缓存的地址。
本发明还提出了一种面向稀疏二维卷积的运算系统,其中包括:
初始化模块,用于获取运算单元中乘累加阵列的阵列行数和列数,并根据该阵列的行数和列数,将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
数据读取模块,用于根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,并根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
矩阵运算模块,用户将该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
判断模块,用于将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则执行步骤2,否则将该Pk指针指向卷积核缓存中的第一行;将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则执行步骤2,否则输出该输出特征图缓存,计算结束。
该面向稀疏二维卷积的运算系统,其中该数据读取模块还包括:根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
该面向稀疏二维卷积的运算系统,其中卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
该面向稀疏二维卷积的运算系统,其中该数据读取模块还包括:
第一坐标信息生成模块,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
第二坐标信息生成模块,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
第三坐标信息生成模块,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
地址生产模块,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
该面向稀疏二维卷积的运算系统,其中
该第一坐标信息生成模块具体包括,
计算该卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s):
其中floor()函数为向下取整,%为取余函数,Ii为该卷积核缓存中第(i+1)个缓存行存储的索引数据,S为该卷积核的宽度;
该第二坐标信息生成模块具体包括,根据当前缓存行第一个数据的坐标(j,0),计算(j,0)在输入特征图中的坐标记为(h,w):
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中ceil()函数为向上取整,M为乘累加阵列的列数,N为乘累加阵列的行数,W为输入特征图宽度;
根据(h,w)计算该第二坐标信息:
其中矩阵A代表该第二坐标信息,min()函数为取两个数的较小值,H为该输入特征图的高度;
第三坐标信息生成模块中该第三坐标信息的计算公式为:
其中R为该卷积核的高度,S为该卷积核的宽度,矩阵B为该第三坐标信息;
该步骤25具体为,对于该矩阵B的任意元素(r,c),计算其在输出特征图中缓存地址(x,y):
y=M×(r%N)+c%M
对该矩阵B中所有元素坐标进行上述运算,以求得所有输出特征图缓存的地址。
本发明的优点在于:将稀疏二维卷积分解成为稠密的标量矩阵乘累加运算,以此消除稀疏二维卷积中的冗余计算,从而获得更高的计算效率。
附图说明
图1为二维卷积运算过程的示意图;
图2为运算系统顶层结构图;
图3为卷积核存储流程示意图;
图4为输入特征图存储流程示意图;
图5为输出特征图存储流程示意图
图6为本发明实施例中二维卷积的配置和运算阵列的配置示意图;
图7为本发明实施例中步骤a至步骤h的流程示意图;
图8为本发明实施例中步骤i至步骤o的流程示意图。
具体实施方式
本发明提供一种面向稀疏二维卷积的运算方法,包括:
步骤1,获取运算单元中乘累加阵列的阵列行数和列数,并根据该阵列的行数和列数,将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
步骤2,根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
步骤3,根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;
步骤4,该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
步骤5,将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则执行步骤2,否则将该Pk指针指向卷积核缓存中的第一行;
步骤6,将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则执行步骤2,否则输出该输出特征图缓存,计算结束。
该面向稀疏二维卷积的运算方法,其中该步骤2还包括:
步骤21,根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
该面向稀疏二维卷积的运算方法,其中卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
该面向稀疏二维卷积的运算方法,其中该步骤2还包括:
步骤22,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
步骤23,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
步骤24,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
步骤25,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。其中需要注意的是若无特殊说明,下文中稀疏二维卷积是指卷积核为稀疏的二维卷积运算。
具体地说,本发明提供了一种用于实现稀疏二维卷积的装置,包括:运算单元,用于进行标量与矩阵的乘累加操作;输入特征图缓存,用于存储输入特征图的数据;输出特征图缓存,用于存储输出特征图的数据;卷积核缓存,用于存储压缩编码的卷积核数据,该数据包含索引块和数据值块;缓存控制器,用于控制上述三个缓存单元与运算单元之间的数据流;控制单元,用于确定并且向所述的缓存控制器发送所述的标量矩阵乘累加操作相关数据的位置信息,并且对稀疏二维运算操作的迭代层级进行控制。在根据本发明的用于实现稀疏二维卷积的装置中,所述的缓存控制器可以进一步包括:第一缓存控制器,用于根据所述控制单元提供的迭代层级,读取所述卷积核缓存中的数据,并将该数据的索引块发送到控制单元,用于确定输出特征图的位置信息,将该数据的数据值块发送到运算单元,该第一缓存控制器还用于根据所述控制单元的迭代层级,读取所述输入特征图缓存中的数据;第二缓存控制器,用于根据所述控制单元提供的输出特征图缓存的地址信息,读取所述输出特征图缓存中的数据,并将该数据发送到运算单元用于矩阵累加操作,并且该累加操作的结果根据上述地址信息存回到输出特征图缓存。
在根据本发明的用于实现稀疏二维卷积的装置中,所述的卷积核缓存可以进一步包括:数据值块,用于存储卷积核中的非零数据值;索引块,用于存储非零数据值的相对位置信息;缓存行指针,用于控制卷积核的数据迭代层级。
在根据本发明的用于实现稀疏二维卷积的装置中,所述的运算单元可以进一步包括:输入矩阵寄存器组,用于存储进行标量矩阵乘法的输入矩阵数据;标量寄存器,用于存储标量矩阵乘法的标量数据;输出矩阵寄存器组,用于存储矩阵累加的初始矩阵数据;乘累加阵列,用于将标量数据与输入矩阵数据进行相乘,再把结果与输出矩阵寄存器组的初始矩阵数据进行矩阵相加,结果存回输出矩阵寄存器组。
根据本发明的用于实现稀疏二维卷积的装置中,所述的输入特征图缓存由多个存储体(bank)组成,每个存储体包含多个存储行(entry)。存储体的个数等同于所述的运算单元中乘累加阵列的列数,每个存储体中的一个存储行能存储的数据个数等同于所述的运算单元中乘累加阵列的行数。该输入特征缓存图还可以包括缓存行指针,用于控制输入特征图的迭代层级。
根据本发明的用于实现稀疏二维卷积的装置中,所述的输出特征图缓存由多个存储体(bank)组成,每个存储体包含多个存储行(entry)。存储体的个数等同于所述的运算单元中乘累加阵列的列数,每个存储体中的一个存储行能存储的数据个数等同于所述的运算单元中乘累加阵列的行数。
本发明还提供一种用于实现稀疏二维卷积的方法,包括:依据控制信息读取读取卷积核缓存与输入特征图缓存中的数据;对卷积核缓存的数据值块与输入特征缓存的数据进行标量矩阵乘法;控制单元依据卷积参数信息和上述卷积核缓存的索引块计算输出特征图缓存的地址;根据输出特征图缓存的地址读取输出特征图缓存的数据,与标量矩阵乘法的结果进行累加,再存储回上述输出缓存特征图的地址。
请参考图2,为了实现上述目的,本发明提供一种实现消除冗余计算的二维卷积运算系统,包括控制单元1、运算单元2、卷积核缓存3、输入特征图缓存4、输出特征图缓存5、第一缓存控制器6和第二缓存控制器7。
其中,所述的控制单元1与所述的运算单元2、第一缓存控制器6、第二缓存控制器7连接;所述的运算单元2还连接到所述的第一缓存控制器6、第二缓存控制器7连接;所述的第一缓存控制器6还连接到所述的卷积核缓存3、输入特征缓存4;所述的第二缓存控制器7还与输出特征图缓存5连接。
上述技术方案中,所述的运算单元2由输出矩阵寄存器组、标量寄存器、输入矩阵寄存器组、乘累加阵列组成,乘累加阵列的列数记为M,行数记为N,该乘累加阵列可以并发执行M*N个乘累加操作,即标量寄存器的数据与输入矩阵寄存器的数据相乘,再与输出矩阵寄存器的数据相加,结果存回输出矩阵寄存器
上述技术方案中,所述的卷积核缓存3由索引部分、数据值部分、缓存行指针Pk组成。
上述技术方案中,所述的输入特征图缓存4由多个存储体(bank)和缓存行指针Pi组成。每个存储体由多个缓存行(entry)组成。存储体的个数为M,即等同于所述运算单元2中乘累加阵列的列数。每个存储体的每个缓存行能够容纳的数据个数为N,即等同于所述运算单元2中乘累加阵列的行数。
上述技术方案中,所述的输出特征图缓存5由多个存储体(bank)和缓存行指针Pi组成。每个存储体由多个缓存行(entry)组成。存储体的个数为N,即等同于所述运算单元2中乘累加阵列的列数。每个存储体的每个缓存行能够容纳的数据个数为M,即等同于所述运算单元2中乘累加阵列的行数。
一种利用这一运算系统实现消除稀疏二维卷积中冗余计算的方法,具体包括以下步骤:
步骤100、将二维卷积的输入特征图存储到输入特征缓存4中,将压缩编码的卷积核数据存储到卷积核缓存3中,将初始化的输出特征图(全0)存储到输出特征图缓存中。卷积核缓存3中的缓存行指针Pk指向卷积核缓存3的第一个缓存行,输入特征图缓存4的缓存行指针Pi指向输入特征图缓存4的第一个缓存行。
步骤200、第一缓存控制器6读取卷积核缓存3中Pk指针指向缓存行的索引值和数据值,并将索引值和Pk指向的地址传递到控制单元1中,将数据值传递到运算单元2中的标量寄存器中。
步骤300、第一缓存控制器6读取输入特征图缓存4中Pi指针指向缓存行所对应的所有存储体的数据值,将该数据值传递到运算单元2中的输入矩阵寄存器组中,将Pi指向的地址传递到控制单元1中。
步骤400、控制单元通过卷积配置参数、索引值、Pk指向地址和Pi指向地址计算得到输出特征图缓存的地址,并将该地址传递给第二缓存控制器7,其中卷积配置参数包括:输入特征图的尺寸(输入特征图高H、输入特征图宽W)、卷积核的尺寸(卷积核高R、卷积核宽S)、运算阵列高N、运算阵列宽M。
步骤500、第二缓存控制器7根据输出特征图缓存的地址读取输出特征图缓存4中的数据,传递到运算单元2中的输出矩阵寄存器组中。
步骤600、运算单元2中标量寄存器中的标量数据与输入矩阵寄存器组中的矩阵数据进行标量矩阵乘法,所得结果再与输出矩阵寄存器组中的矩阵进行矩阵加法,所得结果存入输出矩阵寄存器组中。
步骤700、运算单元2将输出矩阵寄存器组中的数据传递给第二缓存控制7。
步骤800、第二缓存控制器7将该数据根据地址寄存器中的地址写回到输出特征图缓存5中。
步骤900、Pk指向下一个缓存行,如果Pk指向的缓存行中存储有卷积核数据,则转至步骤200;否则,Pk指向第一个缓存行,执行下一步。
步骤1000、Pi指向下一个缓存行若Pi指向的缓存行存储有输入特征图缓存的数据,则转至步骤200;否则,二维卷积运算的迭代已经结束,结束计算,输出特征图缓存中存储的数据即为二维卷积的结果。
上述技术方案中,需要对步骤100中卷积核缓存3中存储数据的形式作进一步说明。卷积核缓存中存储了压缩编码形式的卷积核。卷积核编码满足以下两个条件:1)记录卷积核中非零数据值,2)记录能够还原非零数据值在二维卷积核中坐标位置的信息。例如游程编码压缩等。图3示出了一种满足上述两个条件的编码形式,在该编码形式中,记录了卷积核中的非零数据值,以及相邻非零数据值中的零值个数。在本例中以行优先的形式来确定相邻非零数据值之间0的个数,比如K0,2与K1,1相差1行,两个数据中间的零值为2个,即K0,3和K1,0。在本发明接下来的说明中,如无特殊说明,也以该方式对卷积核数据进行存储。
上述技术方案中,需要对步骤100中输入特征图缓存4中存储数据的形式作进一步说明。在存储输入特征图时,将输入特征图按照所述运算单元2中乘累加阵列的大小分解成块,每一块按照行优先的顺序依次存入输入特征缓存4的缓存行中。为了便于理解,图4示出了输入特征图存储的例子。在该例子中,给定的运算单元2中乘累加阵列的大小为3*2,给定的输入特征图大小为5*5。
上述技术方案中,需要对步骤100中输入特征图缓存5中存储数据的形式作进一步说明。在存储输出特征图时,将输出特征图按照所述运算单元2中乘累加阵列的大小分解成块,每一块按照行优先的顺序依次存入输入特征缓存4的缓存行中。为了便于理解,图5示出了输出特征图存储的例子。在该例子中,给定的运算单元2中乘累加阵列的大小为3*2,给定的输入特征图大小为8*8。
上述技术方案中,需要对步骤400中如何进行输出特征图数据的地址计算作进一步说明。
首先二维卷积的参数设置如下:输入特征图高度为H,输入特征图宽度为W,卷积核高度为R,卷积核宽度为S,输出特征图高度为E,输出特征图宽度为F,其中E=H+R-1,F=W+S-1。
所述运算单元2中的乘累加阵列的列数记为M,行数记为N。该乘累加阵列能并发执行M*N个乘累加操作。
假设当前Pk当前指向的缓存行的地址为i,Pi当前指向的缓存行地址为j。步骤400中地址计算的步骤可以分为如下四步:
第一步,计算卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s),计算的公式如下:
其中,floor()函数为对一个数向下取整,%为取余函数,如5%3=2。Ii为卷积核缓存中第(i+1)个缓存行存储的索引数据,S为卷积核的宽度。
第二步,计算输入特征图缓存中当前缓存行在输入特征图中的坐标,由于当前缓存行存储的数据为一个矩阵块,因此只需要计算当前缓存行第一个数据,即(j,0)的坐标即可,其中j代表当前缓存行的行数。(j,0)在输入特征图中的坐标记为(h,w),其计算公式如下:
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中,floor()函数为对一个数向下取整,ceil()函数为对一个数向上取整,%为取余函数,如5%3=2。其他参数见卷积配置参数和运算阵列参数。
计算出(j,0)的地址(h,w)之后,可以推算出,该输入特征缓存当前缓存行存储的数据在输入特征图中的坐标为:
其中,min()函数为取两个数的较小值。由于输入特征图缓存行中的数据为输入特征图中的一个矩阵块,因此上述矩阵的形式表示数据的坐标值。
第三步,计算运算单元的运算结果在输出特征图中的坐标,该坐标的计算公式如下:
其中,min()函数为取两个数的较小值。
第四步,计算运算单元的运算结果在输出特征图缓存中的地址,对于上述矩阵B的任意一个坐标,计算其在输出特征图中缓存地址的计算公式如下,假设B中某个元素为(r,c)那么其对应的输出缓存中的地址(x,y)则为:
x=ceil(E/M)×floor(r/N)+floor(c/M)
y=M×(r%N)+c%M
其中floor()函数为对一个数向下取整,ceil()函数为对一个数向上取整,%为取余函数,如5%3=2。对矩阵B中所有坐标元素进行上述运算,则可以求得所有输出特征图缓存的地址。
下面以一个具体的实例,对该系统处理稀疏二维卷积的过程进行说明。假设二维卷积的配置和运算阵列的配置如图5。
具体实现如下:
步骤a、将输入特征图存储到输入特征缓存4中,将游程编码压缩的卷积核数据存储到卷积核缓存3中,将初始化的输出特征图(全0)存储到输出特征图缓存中。Pk指向卷积核缓存3的第一个缓存行(Pk=0),Pi指向输入特征图缓存4的第一个缓存行(Pi=0)。
步骤b、第一缓存控制器6读取卷积核缓存3中Pk指针指向缓存行中的索引值和数据值,并将索引值和Pk指向的地址传递到控制单元1中,将数据值传递到运算单元2中的标量寄存器中。
步骤c、第一缓存控制器6读取输入特征图缓存4中Pi指针指向缓存行中的数据值,将数据值传递到运算单元2中的输入矩阵寄存器组中,将Pi指向的地址传递到控制单元1中。
步骤d、控制单元通过卷积配置参数、索引值、Pk指向地址和Pi指向地址计算得到输出特征图数据的地址,并将该地址传递给第二缓存控制器7。
步骤e、第二缓存控制器7根据输出特征图数据的地址读取输出特征图缓存4中的数据,传递到运算单元2中的输出矩阵寄存器组中。
步骤f、运算单元2中标量寄存器中的标量数据与矩阵寄存器组中的矩阵数据进行标量矩阵乘法,所得结果再与输出矩阵寄存器组中的矩阵进行矩阵加法,所得结果存入输出矩阵寄存器组中。
步骤g、运算单元2将输出矩阵寄存器组中的数据传递给第二缓存控制7。
步骤h、第二缓存控制器7将该数据根据地址寄存器中的地址写回到输出特征图缓存5中。
步骤i、Pk指向下一个缓存行,Pk=1。因为Pk指向的缓存行存储有卷积核缓存数据,因此第一缓存控制器6读取卷积核缓存3中Pk指针指向缓存行中的索引值和数据值,并将索引值和Pk指向的地址传递到控制单元1中,将数据值传递到运算单元2中的标量寄存器中。
步骤j、第一缓存控制器6读取输入特征图缓存4中Pi指针指向缓存行中的数据值,将数据值传递到运算单元2中的输入矩阵寄存器组中,将Pi指向的地址传递到控制单元1中。
步骤k、控制单元通过卷积配置参数、索引值、Pk指向地址和Pi指向地址计算得到输出特征图数据的地址,并将该地址传递给第二缓存控制器7。
步骤l、第二缓存控制器7根据输出特征图数据的地址读取输出特征图缓存4中的数据,传递到运算单元2中的输出矩阵寄存器组中。
步骤m、运算单元2中标量寄存器中的标量数据与矩阵寄存器组中的矩阵数据进行标量矩阵乘法,所得结果再与输出矩阵寄存器组中的矩阵进行矩阵加法、所得结果存入输出矩阵寄存器组中。
步骤n、运算单元2将输出矩阵寄存器组中的数据传递给第二缓存控制7。
步骤o、第二缓存控制器7将该数据根据地址寄存器中的地址写回到输出特征图缓存5中。
步骤p、Pk指向下一个缓存行,Pk=2。因为Pk指向的缓存行存储有卷积核缓存数据……
后续的步骤不再赘述。
图6示出了步骤a至步骤h,图7示出了步骤i至步骤o。
以下为与上述方法实施例对应的系统实施例,本实施系统可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施系统中依然有效,为了减少重复,这里不再赘述。相应地,本实施系统中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种面向稀疏二维卷积的运算系统,其中包括:
初始化模块,用于获取运算单元中乘累加阵列的阵列行数和列数,并根据该阵列的行数和列数,将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
数据读取模块,用于根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,并根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
矩阵运算模块,用户将该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
判断模块,用于将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则执行步骤2,否则将该Pk指针指向卷积核缓存中的第一行;将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则执行步骤2,否则输出该输出特征图缓存,计算结束。
该面向稀疏二维卷积的运算系统,其中该数据读取模块还包括:根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
该面向稀疏二维卷积的运算系统,其中卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
该面向稀疏二维卷积的运算系统,其中该数据读取模块还包括:
第一坐标信息生成模块,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
第二坐标信息生成模块,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
第三坐标信息生成模块,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
地址生产模块,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
该面向稀疏二维卷积的运算系统,其中
该第一坐标信息生成模块具体包括,
计算该卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s):
其中floor()函数为向下取整,%为取余函数,Ii为该卷积核缓存中第(i+1)个缓存行存储的索引数据,S为该卷积核的宽度;
该第二坐标信息生成模块具体包括,根据当前缓存行第一个数据的坐标(j,0),计算(j,0)在输入特征图中的坐标记为(h,w):
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中ceil()函数为向上取整,M为乘累加阵列的列数,N为乘累加阵列的行数,W为输入特征图宽度;
根据(h,w)计算该第二坐标信息:
其中矩阵A代表该第二坐标信息,min()函数为取两个数的较小值,H为该输入特征图的高度;
第三坐标信息生成模块中该第三坐标信息的计算公式为:
其中R为该卷积核的高度,S为该卷积核的宽度,矩阵B为该第三坐标信息;
该步骤25具体为,对于该矩阵B的任意元素(r,c),计算其在输出特征图中缓存地址(x,y):
y=M×(r%N)+c%M
对该矩阵B中所有元素坐标进行上述运算,以求得所有输出特征图缓存的地址。
虽然本发明以上述实施例公开,但具体实施例仅用以解释本发明,并不用于限定本发明,任何本技术领域技术人员,在不脱离本发明的构思和范围内,可作一些的变更和完善,故本发明的权利保护范围以权利要求书为准。
Claims (10)
1.一种面向稀疏二维卷积的运算方法,其特征在于,包括:
步骤1,获取运算单元中乘累加阵列的阵列行数和列数,以将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
步骤2,根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
步骤3,根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;
步骤4,该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
步骤5,将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则执行步骤2,否则将该Pk指针指向卷积核缓存中的第一行;
步骤6,将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则执行步骤2,否则输出该输出特征图缓存,计算结束。
2.如权利要求1所述的面向稀疏二维卷积的运算方法,其特征在于,该步骤2还包括:
步骤21,根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
3.如权利要求1所述的面向稀疏二维卷积的运算方法,其特征在于,卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
4.如权利要求1所述的面向稀疏二维卷积的运算方法,其特征在于,该步骤2还包括:
步骤22,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
步骤23,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
步骤24,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
步骤25,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
5.如权利要求4所述的面向稀疏二维卷积的运算方法,其特征在于,
该步骤22具体包括,
计算该卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s):
其中floor()函数为向下取整,%为取余函数,Ii为该卷积核缓存中第(i+1)个缓存行存储的索引数据,S为该卷积核的宽度;
该步骤23具体包括,根据当前缓存行第一个数据的坐标(j,0),计算(j,0)在输入特征图中的坐标记为(h,w):
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中ceil()函数为向上取整,M为乘累加阵列的列数,N为乘累加阵列的行数,W为输入特征图宽度;
根据(h,w)计算该第二坐标信息:
其中矩阵A代表该第二坐标信息,min()函数为取两个数的较小值,H为该输入特征图的高度;
步骤24中该第三坐标信息的计算公式为:
其中R为该卷积核的高度,S为该卷积核的宽度,矩阵B为该第三坐标信息;
该步骤25具体为,对于该矩阵B的任意元素(r,c),计算其在输出特征图中缓存地址(x,y):
y=M×(r%N)+c%M
对该矩阵B中所有元素坐标进行上述运算,以求得所有输出特征图缓存的地址。
6.一种面向稀疏二维卷积的运算系统,其特征在于,包括:
初始化模块,用于获取运算单元中乘累加阵列的阵列行数和列数,以将输入特征图存储至输入特征缓存,将卷积核经过压缩处理后存储至卷积核缓存,并将初始化的输出特征图存储至输出特征图缓存,Pk指针指向该卷积核缓存中的第一行,Pi指针指向该输入特征图缓存中的第一行;
数据读取模块,用于根据卷积配置参数、该Pk指针指向的索引值、该Pk指针指向的地址和该Pi指针指向的地址,得到输出特征图缓存的地址,并根据输出特征图缓存的地址,读取该输出特征图缓存中的数据,并将其存储至输出矩阵寄存器组;该卷积配置参数包括:该阵列行数、该阵列列数、该输入特征图的尺寸和该卷积核的尺寸;
矩阵运算模块,用户将该Pk指针指向的数据值和该Pi指针指向的数据值进行标量矩阵乘法,所得结果再与该输出矩阵寄存器组中数据进行矩阵加法,所得结果根据输出特征图数据的地址写回至该输出特征图缓存;
判断模块,用于将Pk指向下一行,判断该Pk指针指向的缓存行是否存有卷积核数据,若是,则调用该数据读取模块,否则将该Pk指针指向卷积核缓存中的第一行;将Pi指向下一行,判断该Pi指针指向的缓存行是否存储有输入特征图数据,若是,则调用该数据读取模块,否则输出该输出特征图缓存,计算结束。
7.如权利要求6所述的面向稀疏二维卷积的运算系统,其特征在于,该数据读取模块还包括:根据该输入特征图的尺寸和该卷积核的尺寸,得到输出特征图高度和输出特征图宽度。
8.如权利要求6所述的面向稀疏二维卷积的运算系统,其特征在于,卷积核数据采用压缩编码的形式存储,该编码方式包括:记录卷积核中非零数据值;记录能够还原非零数据值在二维卷积核中坐标位置的信息。
9.如权利要求6所述的面向稀疏二维卷积的运算系统,其特征在于,该数据读取模块还包括:
第一坐标信息生成模块,根据该卷积核缓存的索引信息、该卷积核缓存行中的地址信息和卷积配置参数,得到该卷积核缓存中当前缓存行的数据在卷积核中的第一坐标信息;
第二坐标信息生成模块,根据该输入特征图缓存中缓存行指针的信息、卷积配置参数、该乘累加阵列的行数和列数,得到输入特征图当前缓存行存储数据在输入特征图的第二坐标信息;
第三坐标信息生成模块,根据卷积配置参数、该第一坐标信息和该第二坐标信息,得到对应的输出特征图中的第三坐标信息;
地址生产模块,根据卷积配置参数、该第三坐标信息,得到输出特征图数据在输出特征图缓存中的地址。
10.如权利要求9所述的面向稀疏二维卷积的运算系统,其特征在于,
该第一坐标信息生成模块具体包括,
计算该卷积核缓存中当前缓存行的值在卷积核中的坐标(r,s):
其中floor()函数为向下取整,%为取余函数,Ii为该卷积核缓存中第(i+1)个缓存行存储的索引数据,S为该卷积核的宽度;
该第二坐标信息生成模块具体包括,根据当前缓存行第一个数据的坐标(j,0),计算(j,0)在输入特征图中的坐标记为(h,w):
h=floor(j/ceil(W/M))*N
w=j%ceil(W/M)*N
其中ceil()函数为向上取整,M为乘累加阵列的列数,N为乘累加阵列的行数,W为输入特征图宽度;
根据(h,w)计算该第二坐标信息:
其中矩阵A代表该第二坐标信息,min()函数为取两个数的较小值,H为该输入特征图的高度;
第三坐标信息生成模块中该第三坐标信息的计算公式为:
其中R为该卷积核的高度,S为该卷积核的宽度,矩阵B为该第三坐标信息;
该步骤25具体为,对于该矩阵B的任意元素(r,c),计算其在输出特征图中缓存地址(x,y):
y=M×(r%N)+c%M
对该矩阵B中所有元素坐标进行上述运算,以求得所有输出特征图缓存的地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018100228618 | 2018-01-10 | ||
CN201810022861 | 2018-01-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840585A CN109840585A (zh) | 2019-06-04 |
CN109840585B true CN109840585B (zh) | 2023-04-18 |
Family
ID=66883032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811124528.4A Active CN109840585B (zh) | 2018-01-10 | 2018-09-26 | 一种面向稀疏二维卷积的运算方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840585B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110211618B (zh) * | 2019-06-12 | 2021-08-24 | 中国科学院计算技术研究所 | 一种用于区块链的处理装置及方法 |
WO2021000285A1 (zh) * | 2019-07-03 | 2021-01-07 | 华为技术有限公司 | 数据处理系统与方法、编码单元、处理单元与存储介质 |
CN110399972B (zh) * | 2019-07-22 | 2021-05-25 | 上海商汤智能科技有限公司 | 数据处理方法、装置及电子设备 |
CN111415004B (zh) * | 2020-03-17 | 2023-11-03 | 阿波罗智联(北京)科技有限公司 | 用于输出信息的方法和装置 |
CN114329324A (zh) * | 2021-12-29 | 2022-04-12 | 寒武纪行歌(南京)科技有限公司 | 数据处理电路、数据处理方法及相关产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06342450A (ja) * | 1993-06-01 | 1994-12-13 | Fujitsu Ltd | 行列乗算装置 |
CN1862524A (zh) * | 2005-06-06 | 2006-11-15 | 威盛电子股份有限公司 | 数字信号处理器中执行多个向量稀疏卷积方法与系统 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367519B2 (en) * | 2013-08-30 | 2016-06-14 | Microsoft Technology Licensing, Llc | Sparse matrix data structure |
-
2018
- 2018-09-26 CN CN201811124528.4A patent/CN109840585B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06342450A (ja) * | 1993-06-01 | 1994-12-13 | Fujitsu Ltd | 行列乗算装置 |
CN1862524A (zh) * | 2005-06-06 | 2006-11-15 | 威盛电子股份有限公司 | 数字信号处理器中执行多个向量稀疏卷积方法与系统 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
Non-Patent Citations (1)
Title |
---|
Sparse Convolutional Neural Networks;Baoyuan Liu等;《IEEE》;20151231;第806-814页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109840585A (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840585B (zh) | 一种面向稀疏二维卷积的运算方法和系统 | |
CN111062472B (zh) | 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法 | |
CN110321997B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN108416427A (zh) | 卷积核堆积数据流、压缩编码以及深度学习算法 | |
WO2023045204A1 (zh) | 一种有限状态熵编码表的生成方法、系统、介质及设备 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN112257844B (zh) | 一种基于混合精度配置的卷积神经网络加速器及其实现方法 | |
CN111915001A (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN112668708A (zh) | 一种提高数据利用率的卷积运算装置 | |
CN103929642A (zh) | 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法 | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN111984189A (zh) | 神经网络计算装置和数据读取、数据存储方法及相关设备 | |
JP7174831B2 (ja) | 畳み込みニューラルネットワークに基づくビデオメモリ処理方法、装置及び記録媒体 | |
CN113762493A (zh) | 神经网络模型的压缩方法、装置、加速单元和计算系统 | |
CN110032538A (zh) | 一种数据读取系统和方法 | |
CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN113254391A (zh) | 一种神经网络加速器卷积计算和数据载入并行方法及装置 | |
CN117217274A (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN116842304A (zh) | 一种不规则稀疏矩阵的计算方法及系统 | |
CN108920097B (zh) | 一种基于交织存储的三维数据处理方法 | |
CN113222160A (zh) | 一种量子态的转换方法及装置 | |
CN113449152B (zh) | 图数据预取器及预取方法 | |
KR101672539B1 (ko) | 그래픽 처리 유닛 및 그 캐싱 방법 | |
CN111078589B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190604 Assignee: YUSUR TECHNOLOGY Co.,Ltd. Assignor: Institute of Computing Technology, Chinese Academy of Sciences Contract record no.: X2019990000091 Denomination of invention: An operation method and system for sparse two-dimensional convolution License type: Common License Record date: 20190919 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |