CN110766127A - 神经网络计算专用电路及其相关计算平台与实现方法 - Google Patents
神经网络计算专用电路及其相关计算平台与实现方法 Download PDFInfo
- Publication number
- CN110766127A CN110766127A CN201810828991.0A CN201810828991A CN110766127A CN 110766127 A CN110766127 A CN 110766127A CN 201810828991 A CN201810828991 A CN 201810828991A CN 110766127 A CN110766127 A CN 110766127A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- calculation
- reading
- pooling
- 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
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
公开了一种神经网络专用电路及其相关计算平台与实现方法。该专用电路包括:数据读取模块,包括在执行depthwise卷积操作时分别用于将特征图数据和权重数据从片上缓存中读取至数据计算模块的特征图读取子模块和权重读取子模块,所述特征图读取子模块还用于在执行池化操作将特征图数据从片上缓存中读取至数据计算模块;所述数据计算模块,包括用于执行depthwise卷积计算的dwconv模块以及用于执行池化计算的pooling模块;以及数据写回模块,用于将所述数据计算模块的计算结果写回所述片上缓存。由此,通过对上述两类操作的读取和写回逻辑的复用降低硬件资源的使用。同时,本发明的专用电路采用高并发流水线设计,能够进一步提升计算性能。
Description
技术领域
本发明涉及硬件架构领域,尤其涉及一种用于神经网络计算的专用电路及其相关计算平台与实现方法。
背景技术
近年来,基于人工神经网络(ANN,Artificial Neural Network),尤其是卷积神经网络(CNN,Convolutional Neural Network)的方法在很多应用中都取得了极大的成功。在计算机视觉领域,特别是针对图像分类问题,CNN的引入使得图像分类的精度大幅提高。
虽然基于人工神经网络的方法具有先进的性能,但与传统方法相比需要更多的计算和内存资源。尤其随着神经网络的发展,大型神经网络具有越来越多的层级和数据量,利用传统的CPU平台,已无法满足其实用性需求。因此,利用FPGA、GPU、ASIC等高并行度异构计算平台进行神经网络加速器设计成为新的研究热点。在这其中,FPGA和ASIC以其高定制性、高能效比和低延时等优势而拥有良好的市场前景。
当利用FPGA和ASIC等的高并行度计算平台来执行计算时,如何能够充分利用电路的可设计性提升计算利用率,成为了神经网络计算平台所需考虑的重要问题。
因此,仍然需要一种能够进一步优化神经网络计算的相关方案。
发明内容
为了解决上述至少一个问题,本发明提出了一种神经网络专用电路,该电路充分考虑depthwise卷积和池化操作中共同点,通过对上述两类操作的读取和写回逻辑的复用降低硬件资源的使用。同时,本发明的专用电路采用高并发流水线设计,能够进一步提升计算性能。
根据本发明的一个方面,提出了一种神经网络计算专用电路,包括:数据读取模块,包括在执行depthwise卷积操作时分别用于将特征图数据和权重数据从片上缓存中读取至数据计算模块的特征图读取子模块和权重读取子模块,所述特征图读取子模块还用于在执行池化操作将特征图数据从片上缓存中读取至数据计算模块;所述数据计算模块,包括用于执行depthwise卷积计算的dwconv模块以及用于执行池化计算的pooling模块;以及数据写回模块,用于将所述数据计算模块的计算结果写回所述片上缓存。
由此,分时执行的dwconv操作和池化操作可以复用相同的读取和写回逻辑,降低了系统的复杂度并提升了该电路本身的硬件利用率。在此,pooling模块执行的池化可以是最大值池化或平均池化。神经网络计算专用电路可由FPGA或ASIC实现。
优选地,本发明的专用电路还可以包括:指令控制模块,用于接收指令信息,从所述指令信息中提取出控制信息分发至所述数据读取模块、所述数据计算模块和所述数据写回模块,以对数据读取、计算和写回进行控制。由此,通过引入专用控制电路,能够进一步提升该专用电路的执行效率。所述指令控制模块接收的指令信息可以包括如下至少一项:卷积核宽度、卷积核高度、像素长度、通道数、卷积核横向步长、卷积核纵向步长、输入源数据地址和输出结果数据地址,以便指示dwconv和池化操作中所需的各自信息。
优选地,所述dwconv模块和所述pooling模块各自包括用于并行执行计算的多个dwconv计算单元和多个pooling计算单元。在执行depthwise卷积操作时所述特征图读取子模块和所述权重读取子模块各自以输入通道并行度将所述特征图数据和所述权重数据送至所述dwconv计算单元的输入端,在执行pooling操作时所述特征图读取子模块以输入通道并行度将所述特征图数据送至所述pooling计算单元的输入端。进一步地,在执行depthwise卷积操作和pooling操作时,可以在所述输入通道并行度的基础上叠加像素并行度执行数据读取。由此,通过合理的并行执行,大幅提升计算效率。
优选地,数据写回模块以可配置的输入通道并行度叠加像素并行度执行数据写回,以便灵活应对各类写回需求。
优选地,每个dwconv计算单元与一个pooling计算单元组成一个处理单元,针对每个处理单元的dwconv计算单元与pooling计算单元,所述特征图读取子模块使用相同的输送路径输送对应的特征图数据。由此,进一步提升对读取逻辑的复用率。在此情况下,该专用电路还可以包括:选通器,用于基于当前正执行操作从每个处理单元中选取相应的dwconv计算结果数据或pooling计算结果数据送入所述数据写回模块,从而确保对计算结果的正确写回。
优选地,dwconv模块和pooling模块至少共用部分计算电路,以进一步提升专用电路的复用率。
根据本发明的另一个方面,提出了一种神经网络专用电路的使用方法,包括:数据读取步骤,数据读取模块基于接收到是depthwise卷积操作指令还是池化操作指令,使用其包括的特征图读取子模块和权重读取子模块将特征图数据和权重数据从片上缓存读取至数据计算模块,或是使用所述特征图读取子模块将特征图数据从片上缓存读取至数据计算模块;数据计算步骤,所述数据计算模块使用其包括的dwconv模块执行depthwise卷积计算,或是使用其包括的pooling模块执行池化计算;以及数据写回步骤,数据写回模块基于接收到的是depthwise卷积操作指令还是池化操作指令,将dwconv计算结果数据或者池化计算结果数据写回所述片上缓存。其中,所述pooling模块可以执行最大值池化或平均池化。
优选地,该方法还可以包括:指令控制步骤,指令控制模块接收指令信息,从所述指令信息中提取出控制信息分发至所述数据读取模块、所述数据计算模块和所述数据写回模块,以对数据读取、计算和写回进行控制。
所述数据读取模块、所述数据计算模块和所述数据写回模块在所述指令控制模块的控制下流水执行各自的所述数据读取、计算和写回操作。
所述数据读取步骤还可以包括:所述特征图读取子模块至少以输入通道并行度将所述特征图数据送至所述dwconv计算单元或是所述pooling计算单元的输入端。
所述数据读取步骤还可以包括:所述特征图读取子模块使用相同的输送路径输送特征图数据到dwconv模块和pooling模块中对应的处理单元。
所述数据写回步骤可以包括:基于当前正执行操作,利用选通器从所述对应的处理单元中选取相应的dwconv计算结果数据或pooling计算结果数据送入所述数据写回模块。
所述数据计算步骤可以包括:所述数据计算模块使用至少部分共用的电路执行depthwise卷积计算和池化计算。
根据本发明的又一个方面,提出了一种神经网络计算平台,包括:片上缓存,用于缓存执行神经网络计算所需的数据和结果数据;如上任一项所述的神经网络专用电路,用于执行depthwise卷积操作和pooling操作;以及常规卷积操作实现电路,用于执行常规卷积操作。优选地,所述神经网络专用电路和所述常规卷积操作实现电路并行执行各自的操作。
由此,本发明的神经网络专用电路通过将depthwise卷积操作和pooling操作两者融合到一个模块,能够充分利用两者的共性来实现读数据逻辑和写数据逻辑的共享,以达到节省硬件资源的目的。由于depthwise卷积操作和pooling操作适于分时执行,因此能够进一步提升该专用电路的硬件利用率。进一步地,可以通过将计算模块实现为各自包括depthwise和pooling计算单元的多个处理单元并合理安排并行度来提升计算效率。本发明的神经网络专用电路采用高并发流水线设计,并能够结合常规卷积计算电路在神经网络计算平台中同时实现,以便通过在实际操作中的流水线和并行操作来一步提升系统效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型CNN的一系列有序运行层。
图2示出了神经网络中一个卷积层的典型操作例。
图3示出了卷积操作的一个例子。
图4示出了根据本发明一个实施例的神经网络计算专用电路的示意图。
图5示出了根据本发明另一个实施例的神经网络计算专用电路的示意图。
图6示出了根据一个实施例的数据计算模块的示意图。
图7示出了dwconv计算单元内部结构的一个例子。
图8示出了本发明专用电路的使用方法步骤。
图9示出了图8所示方法的优选实现。
图10示出了根据本发明一个实施例的神经网络计算平台的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
人工智能近年得到迅速发展,在图像分类、检测、视频和语音处理等领域取得良好的应用效果,并且依然具备极大的发展前景。神经网络是人工智能应用的核心,深度学习神经网络算法是其中最常见的一种神经网络模型。神经网络的工作负载特征是计算和数据密集。神经网络计算所需的乘加操作通常为G数量级,例如目标检测类神经网络SSD的计算量为120G操作次数。而计算所需参数则通常为M至数百M字节数量级,例如分类神经网络VGG的参数为480M字节。
常见的人工神经网络(ANN)包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。卷积神经网络(Convolutional Neural Networks,CNN)是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。以下将结合附图尤其对卷积神经网络进行一定程度的背景说明。
如图1所示,典型的CNN由一系列有序运行的层(Layer)组成。
CNN神经网络由输入层、输出层和多个隐藏层串联组成。CNN的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图)。下面的层读取由上一层产生的激活值,并输出新的激活值。最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。
这些层大致可分为带权重的层(如CONV层、全连接层、批量归一化层等)和不带权重的层(如池化层、ReLU层、Softmax层等)。CONV层(Convolutional layers,卷积层)以一系列特征图作为输入,并以卷积内核卷积获得输出激活值。池化层(Pooling layer)通常与CONV层相连,用于输出每个特征图中的每个分区(sub area)的最大值或平均值,由此通过亚采样降低计算量,同时保持某种程度的位移、尺度和形变不变性。一个CNN中可以包括卷积层和池化层之间的多个交替,由此逐步降低空间分辨率并增加特征映射的数量。CONV层之间也可以不经过池化层直接相连。随后可以连接至至少一个全连接层(FC),通过应用于输入特征向量上的线性变换,得到包括多个特征值的一维向量输出。
总体来说,带权重的层的操作可以表示为:
Y=WX+b,
其中W为权重值,b为偏置,X为输入激活值,Y为输出激活值。
不带权重的层的操作可以表示为:
Y=f(X),
其中f(X)为非线性函数。
在此,“权重”(weights)指代隐藏层中的参数。在CNN网络中,可以将权重认为是针对每一卷积层尺寸可以有所变化,针对每一卷积层的每个通道取值也可以有所变化的卷积核。从广义上理解,权重还可以包括偏置,并且是通过训练过程习得的数值,并且在推理时保持不变。另外,CNN还可以包括用于执行其他操作的参数,例如不带权重的层进行各类操作所需的参数。激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与参数值不同,激活值的分布会根据输入数据样本而动态变化。
如图所示,在特征值被送入FC层之前,从输入特征图(输入图像)开始的各个层都具有多个通道(channel),用以表征输入图像的不同特征。在输入为彩色图像时,最初的输入特征图通常具有RGB三个通道,同一层内不同通道的特征值与尺寸相同但取值可以不同的卷积核分别进行卷积计算以生成该层的输出特征值,随后该特征值被送入通道数与卷积核大小可以不同的下一CONV层(Layer 1)中进行进一步的特征提取。重复上述过程直至Layer 7的输出被送入FC层。如图所示,在输入特征图中的W、H和C分别指代宽、高和通道三个维度。上述箭头可以指代具体计算顺序或计算并行度(尤其是在高并行度计算平台上进行计算的情况下)。
第一个FC层可以是用于将各个通道的特征提取为一个一维特征向量的全连接层。第二个FC层则可以是用于进行分类的分类器。
卷积层的操作
无论是DNN、RNN还是CNN,典型的神经网络模型,尤其是用于计算机视觉应用的神经网络模型都包括如图1所示的多个CONV层。针对每个CONV层,都会从输入的特征图数据中提取出更高级别的抽象数据,以保留输入数据中重要且唯一的信息。现代的DNN能够通过利用深层级(例如,几百个卷积层)来实现优异的视觉性能。
图2示出了神经网络中一个卷积层的典型操作例。上述操作同样适用于全连接层,例如图1所示的FC层。每个卷积层的三维输入是具有多个通道(C)的二维特征图(W×H)。对进行视觉处理的神经网络而言,其第一次的输入通常是具有RGB三个颜色通道的二维图像。多个三维过滤器(具有R×S×C维度的M个过滤器,过滤器也可被称为卷积核)随后与输入特征图进行卷积,并且每个过滤器可以生成输出的三维特征图(具有M个通道的二维E×F特征图)的一个通道。相同的一组M个过滤器可以应用于具有N个输入特征图的批次(B)。于是,N个输入特征图能够获取N个输出特征图(在此,也可以将批次B看作是输入的第四个维度)。此外,可以对经过滤的结果施加1维的偏置(图2中未示出)。
图3示出了卷积操作的一个例子。该卷积操作可以看作是在某一个通道C上,二维过滤器(R×S)与二维特征图(W×H)的卷积。如图3所示,使用一个3x3(R×S)的卷积核,以步长1对一个5x5(W×H)的特征图进行卷积计算。图的左侧示出了第一次卷积计算,中间示出了第二次卷积计算,依次类推。根据卷积计算的定义可知,每次具体的卷积计算可以分解成多次乘加计算。在经过9次卷积计算后,得到图3右侧的经卷积的3x3特征图。这9次的卷积计算之间不存在依赖关系,因此可以在利用高并行度计算平台进行计算时,在单次操作中完成执行(并行度M通常可以达到数千量级)。图3可以看作是CONV层多个通道中的一个通道C的卷积操作,在完成了所有通道C的卷积操作以及后续的相加操作后才能得到输出三维特征图的M个通道中的一个通道的特征图。更进一步地,上述输出三维特征图(具有M个通道的二维E×F特征图)也只是该批次中N个输出三维特征图之一。
Depthwise卷积
在标准的卷积过程中,在使用一个过滤器进行卷积时,需要同时考虑对应图像区域中的所有通道。为了对空间信息和深度信息去耦,可以引入深度可分离卷积结构(depthwise separable convolution)。
如上图2所示,常规的卷积层有m(输出通道数)组filter,每组filter内有c(输入通道数)个卷积核,其中每组filter内的c个卷积核分别与c个输入通道进行卷积操作,之后把c个通道的结果相加得到一个输出通道的结果,m组filter进行同样的操作,得到m个输出通道的结果。
Depthwise卷积则是常规卷积操作的一种变体。Depthwise卷积仅有c个卷积核,c个卷积核分别与c个输入通道进行卷积操作,得到c个输出通道的结果。在得到新的通道结果(特征图)之后,再对这批新的通道特征图进行标准的1x1跨通道卷积操作(pointwise卷积)。这种卷积层相对于常规卷积层既能减少参数量,又能够保留通道相关性与空间相关性。
举例而言,假设输入通道数为3,要求输出通道数为256。使用常规卷积需要3x3x256的卷积核,所需参数量为3x3x3x256=6,912。而使用上述深度可分离卷积结构,参数量仅为3x3x3+3x1x1x256=795,是常规卷积参数量的将近1/9。
因此,深度可分离卷积结构尤其适用于存储空间敏感的应用场合,例如在小型移动端的应用。
本发明的神经网络专用电路
近些年来,随着计算准确率的持续提升,神经网络的规模也不断增长,较为先进的神经网络甚至具有数亿个链接,属于计算和访存密集型应用。随着晶体管电路逐渐接近极限,摩尔定律也将走到尽头。这使得使用常规的CPU进行神经网络计算变得越来越力不从心。GPU相比CPU而言具有更高的并行结构,更适合对并行密集数据进行处理,速度更快,但是在能耗、成本等方面较高。FPGA和ASIC与GPU一样,同样能够进行并行计算,但是在运算速度、功耗和成本等方面相比GPU有了不小优势,并且能够基于进行深度的定制和优化。
据此,本发明提出了一种尤其适用于FPGA或ASIC使用的神经网络计算专用电路,其能够高效处理神经网络中的depthwise计算与池化计算,从而获得更高的计算效率,更低的处理延时和更少的硬件资源消耗。
图4示出了根据本发明一个实施例的神经网络计算专用电路的示意图。该专用电路400包括数据读取模块410、数据计算模块420和数据写回模块430。
数据读取模块410包括特征图读取子模块411和权重读取子模块412。特征图读取子模块411用于读取特征图数据。权重读取子模块412则用于读取权重数据。在此,“权重”从广义上讲包括卷积核数据和偏置数据两者。在一个实施例中,权重读取子模块412还可以进一步包括用于读取卷积核数据的子模块和用于读取偏置数据的子模块(图4中未示出)。
在执行depthwise卷积(以下简称dwconv)操作时,特征图读取子模块411和权重读取子模块412分别用于将特征图数据和权重数据(包括偏置数据)从片上缓存读取至数据计算模块420。在执行池化(也可称为pooling)操作时,特征图读取子模块411用于将特征图数据从片上缓存中读取至数据计算模块420。相应地,数据计算模块420可以包括dwconv模块421和pooling模块422,分别用于执行depthwise卷积计算以及池化计算。在此,执行的池化计算根据具体应用可以包括最大值池化和平均池化。根据具体的池化类型,可以为pooling模块422配置相应的实现电路。
随后,数据写回模块430可以将所述数据计算模块的计算结果写回所述片上缓存,即,在执行dwconv计算时,将dwconv模块421的计算结果写回,而在执行池化计算时,将pooling模块422的计算结果写回。应该理解的是,由于dwconv计算涉及乘累加计算,pooling计算(无论是最大值池化还是平均池化)同样需要对多次输入的数据进行处理才能得到相应结果,因此数据写回模块430通常在数据计算模块进行若干次操作后进行一次数据写回操作。
由此,本发明的专用电路400能够专用于实现神经网络中的dwconv计算和池化(也可称为pooling)计算。由于dwconv计算与池化计算存在二者输入通道数等于输出通道数,输入通道与输出通道一一对应;二者输入数据均包含图像数据(dwconv输入包含图像、权重和偏置,pooling输入数据为图像);二者输出数据均为图像数据这三个共同点,并且二者在实际网络应用中通常不会同时计算,因此将二者融合到一个模块,可以共享读数据逻辑与写数据逻辑。另外,本发明的专用电路优选采用高并发流水线设计,由此在节省读写资源的同时提升计算性能,并降低响应延时。
优选地,本发明的专用电路还包括专用的指令控制模块。图5示出了根据本发明另一个实施例的神经网络计算专用电路的示意图。与图4所示的专用电路400类似,图5所示的专用电路也包括数据读取模块510、数据计算模块520和数据写回模块530。其中,数据读取模块510更为具体地包括特征图读取子模块511、权重读取子模块512和偏置读取子模块513。在此,权重读取子模块512读取的权重为狭义上的权重,即仅包括卷积核,不包括偏置。除此之外,专用电路500还包括指令控制模块540。
指令控制模块540用于接收指令信息,从指令信息中提取出控制信息分发至数据读取模块510、数据计算模块520和数据写回模块530,以对数据读取、计算和写回进行控制。指令控制模块540接收的指令信息可以包括如下至少一项:卷积核宽度、卷积核高度、像素长度、通道数、卷积核横向步长、卷积核纵向步长、输入源数据地址和输出结果数据地址。
具体地,数据读取模块510接收来自指令控制模块540的指令。当接收到dwconv操作指令时,特征图读取子模块511、权重读取子模块512和偏置读取子模块513各自从片上缓存的对应输入源数据地址读取特征图数据、权重数据和偏置数据至数据计算模块520。当指令为pooling计算时,则仅指示特征图读取子模块511基于获取的源地址数据从片上缓存读取特征图数据,不读取权重数据与偏置数据。如图所示,无论是执行dwconv操作还是池化操作,特征图读取子模块511都可以按照输入通道x像素并行度并发执行特征图读取(相对应地,在执行dwconv操作时,权重读取子模块512按照相同的输入通道x像素并行度并发执行权重读取),并将读取的数据送入具有以相应并行度排列的多个处理单元的数据计算模块520。
如图5所示,数据计算模块520包括按照输入通道x像素并行度布置的多个处理单元(PE),其中PExx中的第一个x标示像素并行度,第二个x标示通道并行度。图6示出了根据一个实施例的数据计算模块的示意图。如图6所示,每个处理单元可以包括一个dwconv计算单元和一个pooling计算单元。每个处理单元里的dwconv计算单元可以组成例如图4所示的dwconv模块,而每个处理单元里的pooling计算单元则可组成例如图4所示的pooling模块。由此,针对每个处理单元的dwconv计算单元与pooling计算单元,特征图读取子模块511可以使用相同的输送路径输送对应的特征图数据。由此,通过对特征图读取逻辑的复用,消除了系统原本需要为dwconv和pooling操作各配置一套特征图读取逻辑的需要,由此降低了电路复杂性。虽然在图6中将dwconv计算单元与pooling计算单元示出为逐处理单元布置,但应该理解的是,在具体的电路实现中,并不需要将每个dwconv计算单元与一个pooling计算单元物理上相邻布置,只要其可以共用特征图读取子模块511的数据供给线路即可。而在另一个实施例中,属于一个处理单元的dwconv计算单元与pooling计算单元可以在物理上相邻布置,甚至共用至少部分共用电路。例如,当pooling计算单元用于进行平均池化时,同属一个处理单元的dwconv计算单元与pooling计算单元可共用部分加法或是累加电路。
Dwconv计算单元的计算过程是对特征图数据与权重数据进行乘累加操作,每完成一个卷积核的乘累加后加偏置数据,最后进行移位和非线性操作(例如,ReLU)。图7示出了dwconv计算单元内部结构的一个例子。图中bias与特征图和权重的乘积共同进入累加器(ACC)模块,但偏置受有效信号控制只有在卷积核的最后一个时钟周期有效,其余时刻偏置不参与累加。非线性模块进行ReLU等非线性操作,此模块可根据实际需要拓展使能Leaky-ReLU等功能。例如,图中虽然示出了包括一个乘法器的计算单元,但应该理解的是,每个dwconv计算单元可以包括更多个乘法器,例如,四个乘法器接一个加法器,再接一个累加器,以在计算单元内实现例如4个像素并行度。在其他实施例中,例如在需要包括乘加独立性的实施例中,也可以是四个乘法器中的每一个乘法器直接接连接一个累加器,以在一个计算单元内实现乘加独立的4个像素并行度。
Pooling计算模块根据指令配置进行最大化池化或平均池化。最大化池化计算出池化滑窗内有效数据的最大值,平均池化则首先对输入的有效数据进行求和,最后除以滑窗尺寸得到该滑窗内所有像素的平均值。
图5和图6示出了输入通道x像素并行度的优选实施例,而在一个更为普遍的实施例中,在执行depthwise卷积操作时,特征图读取子模块511和权重读取子模块512各自以输入通道并行度将特征图数据和权重数据送至dwconv计算单元的输入端,在执行pooling操作时特征图读取子模块以输入通道并行度将特征图数据送至所述pooling计算单元的输入端。进一步地,在执行depthwise卷积操作和pooling操作时,可以在输入通道并行度的基础上叠加像素并行度执行数据读取。
在一个实施例中,在进行dwconv操作时,特征图读取子模块可以按照输入通道并行度和像素并行度进行特征图的读取,权重读取子模块则可以仅按照通道并行度进行读取。通过对卷积核的复用,数据计算模块可以按照通达并行度和像素并行度进行计算。相对应地,数据写回模块可以按照相同的通道并行度和像素并行度进行写回,在优选实施例中,也可以对数据写回模块的写回并行度进行不同的配置。
具体地,在数据读取时,可以同时读取多个卷积核的对应某一位置上的单个数据(通道并行度,例如,n个3x3卷积核第一行第一列的数据),读取要与上述例如n个卷积核的单个数据相乘的特征图数据(通道并行度n),并且优选地,可以在同一特征图中读取m个要与该单个数据相乘的数据(叠加像素并行度m)。随后,可以将通道并行度叠加像素并行度的特征图数据(nxm个数据)送至相应位置的dwconv计算单元,例如,图7所示的nxm个乘法器的Img输入端;同时将n卷积核数据送入与其对应通道的特征图数据所在的乘法器的Wgt输入端,其中,每个卷积核数据送入另一输入是对应通道的特征图数据的m个乘法器的Wgt输入端(像素方向的卷积核复用度m)。由此,dwconv计算单元在一个时钟周期内同时执行nxm次乘法操作。随后,在下一时钟周期内,可以读取卷积核后续位置上的数据(例如,n个3x3卷积核第一行第二列的数据)及其对应的特征图数据,同样执行nxm次乘法操作,并使用累加器将该周期内获取的乘法结果与前一周期的乘法结果相累加。在后续的七个时钟周期内实现对卷积核后续每个位置的逐一乘加,并在第9个周期将对应偏置数据送入乘法器的Bia输入,以连同非线性模块进行所需的ReLU或Leaky-ReLU操作。随后,例如在第10个周期内,数据写回模块可将经累加和非线性操作的计算结果写回至片上缓存。
在执行pooling操作的情况下,同样可以利用特征图读取子模块的上述nxm的并行度,在滑窗尺寸对应的时钟周期内得出最大值或平均值结果,并将上述结果经由数据写回模块写回片上缓存。
在其他实施例中,本发明的并行度还可以按照规则以其他的通道并行度和/或像素并行度实现,相应的数据读取并行度通常可以经由数据读取模块的硬件可编辑/可设计性实现。
另外,当特征图读取子模块511读取特征图数据时,可以将特征图数据输送至例如具有相同地址的dwconv计算单元与pooling计算单元两者,例如,包括在同一处理单元内的dwconv计算单元与pooling计算单元两者。随后,只要在处理单元和数据写回模块之间布置基于当前正执行操作而从每个处理单元中选取相应的计算结果的选通器即可。例如,当数据计算模块正执行dwconv计算时,虽然pooling计算单元的输入端也可以有数据送入,但只要选通器统一选择使得各个dwconv计算单元的输出连通,就能够将正确的计算结果(dwconv计算结果)送至数据写回模块。同样地,在执行池化计算时,选通器可以选择连通pooling计算单元,以便将正确的计算结果(池化计算结果)送至数据写回模块。
如上已经结合图4-7描述了本发明的神经网络专用电路的实施例。如下将结合图8-9描述上述电路的使用方法。
图8示出了上述电路的使用方法步骤。具体地,在数据读取步骤S810,数据读取模块基于接收到是depthwise卷积操作指令还是池化操作指令,使用其包括的特征图读取子模块和权重读取子模块将特征图数据和权重数据从片上缓存读取至数据计算模块,或是使用所述特征图读取子模块将特征图数据从片上缓存读取至数据计算模块。随后在数据计算步骤S820,数据计算模块使用其包括的dwconv模块执行depthwise卷积计算,或是使用其包括的pooling模块执行池化计算。在数据写回步骤S830,数据写回模块基于接收到的是depthwise卷积操作指令还是池化操作指令,将dwconv计算结果数据或者池化计算结果数据写回所述片上缓存。
优选地,该方法800还可以包括指令控制步骤,指令控制模块接收指令信息,从所述指令信息中提取出控制信息分发至所述数据读取模块、所述数据计算模块和所述数据写回模块,以对数据读取、计算和写回进行控制。图9示出了图8所示方法的优选实现。
具体地,在步骤S901,指令控制模块接收指令信息。随后,在步骤S902,判定接收的指令信息类型。如果接收到dwconv操作信息,在步骤S911,数据读取模块使用其包括的特征图读取子模块和权重读取子模块将特征图数据和权重数据从片上缓存读取至数据计算模块中的dwconv模块。在步骤S921,数据计算模块中的dwconv模块,例如其包括的每个dwconv计算单元,基于数据读取模块送入数据的平行度(例如,输入通道并行度x像素并行度),并行执行dwconv计算。具体地,数据计算模块首先对输入的图像数据和权重数据进行乘累加操作,之后在卷积核的最后一个有效时钟周期加上偏置数据,得到的结果进行非线性操作,非线性操作由指令控制,可为ReLU、Leaky-ReLU等非线性操作。随后,在步骤S931,数据写回模块读取dwconv计算结果,并将其写回片上缓存。
如果接收到池化操作信息,则在步骤S912,数据读取模块使用其包括的特征图读取子模块将特征图数据从片上缓存读取至数据计算模块中的dwconv模块。在步骤S922,数据计算模块中的pooling模块,例如其包括的每个pooling计算单元,基于数据读取模块送入数据的平行度(例如,输入通道并行度x像素并行度),并行执行池化计算。随后,在步骤S932,数据写回模块读取pooling计算结果,并将其写回片上缓存。
在数据读取步骤中,特征图读取子模块可以至少以输入通道并行度将所述特征图数据送至所述dwconv计算单元或是所述pooling计算单元的输入端,优选地,还可以叠加像素并行度。
在数据读取步骤中,特征图读取子模块可以使用相同的输送路径输送特征图数据到dwconv模块和pooling模块中对应的处理单元。于是,相应地在数据写回步骤中,基于当前正执行操作,可以利用选通器从所述对应的计算单元对中选取相应的dwconv计算结果数据或pooling计算结果数据送入所述数据写回模块。
优选地,在数据计算步骤中,数据计算模块使用至少部分共用的电路执行depthwise卷积计算和池化计算。同样地,pooling模块可以基于具体需求执行最大值池化或平均池化。
在本发明的神经网络专用电路中,上述数据读取、计算和写回模块可以在例如指令控制模块的控制下,并行执行各自的操作,从而通过流水执行提升该电路的整体运算效率。优选地,上述电路可以是神经网络专用计算平台的一部分,该电路自身可用于depthwise卷积和池化操作的分时执行,并且整体上可与计算平台内的常规卷积操作同时流水执行,由此进一步提升计算平台的硬件利用率。
本发明的神经网络专用电路可以用于神经网络计算平台。图10示出了根据本发明一个实施例的神经网络计算平台的示意图。如图10所示,神经网络计算平台1000可以包括片上缓存1010、神经网络专用电路1020以及常规卷积操作电路1030。具体地,片上缓存1010可以缓存执行神经网络计算所需的数据和结果数据,例如,可以缓存执行dwconv和常规卷积操作所需的特征图和权重数据,也可以执行计算结果数据。上述计算结果数据可以是无需存回外部存储器并将直接用于后续片上计算的中间结果数据,也可以是将存回外部存储器的最终结果数据(随后也可能被在此读取)。片上缓存可以使用不同的模块缓存不同类型的数据,也可以使用相同的可灵活配置的模块来缓存各类数据,本发明对此不做限制。
神经网络专用电路1020是如上所述的本发明提出的神经网络专用电路,用于执行depthwise卷积操作和pooling操作。
常规卷积操作电路1030则可用于执行常规卷积操作,例如,可以包括执行常规卷积操作所需的指令控制、数据读取、并行计算和数据写回模块。
相应地,计算平台内的神经网络专用电路1020和常规卷积操作电路1030可以各自流水执行其内的读取、计算和写回操作,并且神经网络专用电路1020和常规卷积操作实现电路1030之间可以并行执行各自的操作。由此,提升计算平台的硬件利用率,从而提升整体的计算效率。上述计算平台可由FPGA或ASIC实现,由此更为方便地实现本发明的软硬件深度定制与优化。
如上已经结合图4-10描述了根据本发明的神经网络专用电路及其相应的使用方法和计算平台。本发明采用高并发流水线设计,高效处理神经网络中的depthwise计算与池化计算,从而实现更好的计算效率、更低的处理延时和更少的硬件资源消耗。
应用例
例1:以Xception网络的某一Separable卷积层为例,做Separable卷积首先要做depthwise卷积,该层的通道数为128,卷积核大小为3x3,步长为1x1。
这里的depthwise卷积可使用本发明的专用电路实现:首先向指令控制模块发送指令,将通道数、卷积核尺寸,步长,数据源地址,结果地址等信息配置给各模块,指令类型配置为depthwise卷积,指令开始执行。数据读取模块按指令要求从缓存中读取图像、权重、偏置数据,数据计算模块根据卷积核尺寸进行卷积操作,数据回写模块将计算结果写回片上缓存。此三个模块并行流水执行。所有结果回写完成后,depthwise卷积计算结束。
例2:以Xception的某一max pooling层为例,该层为极大值池化操作,池化尺寸为3x3,步长为2x2,通道数与上一层一致(128),该层可以用本发明的专用电路实现:首先向指令控制模块发送指令,将通道数、池化尺寸,步长,数据源地址,结果地址等信息配置给各模块,指令类型配置为极大值池化,指令开始执行。数据读取模块按指令要求从缓存中读取图像数据发送至计算模块,计算模块根据池化尺寸对输入数据取极大值,并将结果数据发送至数据回写模块,数据回写模块将计算结果写回到片上缓存中,此三个模块并行流水执行。所有结果回写完成后此极大值池化层计算结束。
由此,两例通过至少共用数据读取逻辑和写回逻辑(甚至部分计算逻辑)实现更少的硬件资源消耗,通过并发流水和分时执行提升资源利用和计算效率。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (22)
1.一种神经网络计算专用电路,包括:
数据读取模块,包括在执行depthwise卷积操作时分别用于将特征图数据和权重数据从片上缓存中读取至数据计算模块的特征图读取子模块和权重读取子模块,所述特征图读取子模块还用于在执行池化操作将特征图数据从片上缓存中读取至数据计算模块;
所述数据计算模块,包括用于执行depthwise卷积计算的dwconv模块以及用于执行池化计算的pooling模块;以及
数据写回模块,用于将所述数据计算模块的计算结果写回所述片上缓存。
2.如权利要求1所述的电路,还包括:
指令控制模块,用于接收指令信息,从所述指令信息中提取出控制信息分发至所述数据读取模块、所述数据计算模块和所述数据写回模块,以对数据读取、计算和写回进行控制。
3.如权利要求2所述的电路,其中,所述指令控制模块接收的指令信息包括如下至少一项:
卷积核宽度、卷积核高度、像素长度、通道数、卷积核横向步长、卷积核纵向步长、输入源数据地址和输出结果数据地址。
4.如权利要求1所述的电路,其中,所述dwconv模块和所述pooling模块各自包括用于并行执行计算的多个dwconv计算单元和多个pooling计算单元。
5.如权利要求4所述的电路,其中,在执行depthwise卷积操作时所述特征图读取子模块和所述权重读取子模块各自以输入通道并行度将所述特征图数据和所述权重数据送至所述dwconv计算单元的输入端,在执行pooling操作时所述特征图读取子模块以输入通道并行度将所述特征图数据送至所述pooling计算单元的输入端。
6.如权利要求5所述的电路,其中,在执行depthwise卷积操作和pooling操作时,在所述输入通道并行度的基础上叠加像素并行度执行数据读取。
7.如权利要求6所述的电路,其中,所述数据写回模块以可配置的输入通道并行度叠加像素并行度执行数据写回。
8.如权利要求4所述的电路,其中,每个dwconv计算单元与一个pooling计算单元组成一个处理单元,针对每个处理单元的dwconv计算单元与pooling计算单元,所述特征图读取子模块使用相同的输送路径输送对应的特征图数据。
9.如权利要求8所述的电路,还包括:
选通器,用于基于当前正执行操作从每个处理单元中选取相应的dwconv计算结果数据或pooling计算结果数据送入所述数据写回模块。
10.如权利要求1所述的电路,其中,所述dwconv模块和所述pooling模块至少共用部分计算电路。
11.如权利要求1所述的电路,其中,所述pooling模块执行最大值池化或平均池化。
12.如权利要求1所述的电路,其中,所述神经网络计算专用电路由FPGA或ASIC实现。
13.一种神经网络专用电路的使用方法,包括:
数据读取步骤,数据读取模块基于接收到是depthwise卷积操作指令还是池化操作指令,使用其包括的特征图读取子模块和权重读取子模块将特征图数据和权重数据从片上缓存读取至数据计算模块,或是使用所述特征图读取子模块将特征图数据从片上缓存读取至数据计算模块;
数据计算步骤,所述数据计算模块使用其包括的dwconv模块执行depthwise卷积计算,或是使用其包括的pooling模块执行池化计算;以及数据写回步骤,数据写回模块基于接收到的是depthwise卷积操作指令还是池化操作指令,将dwconv计算结果数据或者池化计算结果数据写回所述片上缓存。
14.如权利要求13所述的方法,还包括:
指令控制步骤,指令控制模块接收指令信息,从所述指令信息中提取出控制信息分发至所述数据读取模块、所述数据计算模块和所述数据写回模块,以对数据读取、计算和写回进行控制。
15.如权利要求14所述的方法,其中,所述数据读取模块、所述数据计算模块和所述数据写回模块在所述指令控制模块的控制下流水执行各自的所述数据读取、计算和写回操作。
16.如权利要求13所述的方法,其中,所述数据读取步骤还包括:
所述特征图读取子模块至少以输入通道并行度将所述特征图数据送至所述dwconv计算单元或是所述pooling计算单元的输入端。
17.如权利要求15所述的方法,其中,所述数据读取步骤还包括:
所述特征图读取子模块使用相同的输送路径输送特征图数据到dwconv模块和pooling模块中对应的处理单元。
18.如权利要求17所述的方法,其中,所述数据写回步骤包括:
基于当前正执行操作,利用选通器从所述对应的计算单元对中选取相应的dwconv计算结果数据或pooling计算结果数据送入所述数据写回模块。
19.如权利要求13所述的方法,其中,所述数据计算步骤包括:
所述数据计算模块使用至少部分共用的电路执行depthwise卷积计算和池化计算。
20.如权利要求13所述的方法,其中,所述pooling模块执行最大值池化或平均池化。
21.一种神经网络计算平台,包括:
片上缓存,用于缓存执行神经网络计算所需的数据和结果数据;
如权利要求1-12中任一项所述的神经网络专用电路,用于执行depthwise卷积操作和pooling操作;以及
常规卷积操作实现电路,用于执行常规卷积操作。
22.如权利要求21所述的计算平台,其中,所述神经网络专用电路和所述常规卷积操作实现电路并行执行各自的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810828991.0A CN110766127B (zh) | 2018-07-25 | 2018-07-25 | 神经网络计算专用电路及其相关计算平台与实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810828991.0A CN110766127B (zh) | 2018-07-25 | 2018-07-25 | 神经网络计算专用电路及其相关计算平台与实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110766127A true CN110766127A (zh) | 2020-02-07 |
CN110766127B CN110766127B (zh) | 2022-09-23 |
Family
ID=69328084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810828991.0A Active CN110766127B (zh) | 2018-07-25 | 2018-07-25 | 神经网络计算专用电路及其相关计算平台与实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110766127B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738432A (zh) * | 2020-08-10 | 2020-10-02 | 电子科技大学 | 一种支持自适应并行计算的神经网络处理电路 |
CN111738417A (zh) * | 2020-06-19 | 2020-10-02 | 上海兆芯集成电路有限公司 | 神经网络计算装置及其快取管理方法 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN112561034A (zh) * | 2020-12-04 | 2021-03-26 | 深兰人工智能(深圳)有限公司 | 一种神经网络加速装置 |
WO2022001550A1 (zh) * | 2020-07-01 | 2022-01-06 | 腾讯科技(深圳)有限公司 | 一种地址生成的方法、相关装置以及存储介质 |
WO2022013722A1 (en) * | 2020-07-14 | 2022-01-20 | United Microelectronics Centre (Hong Kong) Limited | Processor, logic chip and method for binarized convolution neural network |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504233A (zh) * | 2016-10-18 | 2017-03-15 | 国网山东省电力公司电力科学研究院 | 基于Faster R‑CNN的无人机巡检图像电力小部件识别方法及系统 |
CN106779060A (zh) * | 2017-02-09 | 2017-05-31 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN107844828A (zh) * | 2017-12-18 | 2018-03-27 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108229493A (zh) * | 2017-04-10 | 2018-06-29 | 商汤集团有限公司 | 对象验证方法、装置和电子设备 |
CN108304920A (zh) * | 2018-02-02 | 2018-07-20 | 湖北工业大学 | 一种基于MobileNets优化多尺度学习网络的方法 |
-
2018
- 2018-07-25 CN CN201810828991.0A patent/CN110766127B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504233A (zh) * | 2016-10-18 | 2017-03-15 | 国网山东省电力公司电力科学研究院 | 基于Faster R‑CNN的无人机巡检图像电力小部件识别方法及系统 |
CN106779060A (zh) * | 2017-02-09 | 2017-05-31 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN108229493A (zh) * | 2017-04-10 | 2018-06-29 | 商汤集团有限公司 | 对象验证方法、装置和电子设备 |
CN107844828A (zh) * | 2017-12-18 | 2018-03-27 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108304920A (zh) * | 2018-02-02 | 2018-07-20 | 湖北工业大学 | 一种基于MobileNets优化多尺度学习网络的方法 |
Non-Patent Citations (1)
Title |
---|
HAN CAI ET AL.: "Path-Level Network Transformation for Efficient Architecture Search", 《ARXIV:1806.02639V1 [CS.LG] 7 JUN 2018》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738417A (zh) * | 2020-06-19 | 2020-10-02 | 上海兆芯集成电路有限公司 | 神经网络计算装置及其快取管理方法 |
CN111738417B (zh) * | 2020-06-19 | 2024-03-08 | 格兰菲智能科技有限公司 | 神经网络计算装置及其快取管理方法 |
WO2022001550A1 (zh) * | 2020-07-01 | 2022-01-06 | 腾讯科技(深圳)有限公司 | 一种地址生成的方法、相关装置以及存储介质 |
US11734007B2 (en) | 2020-07-01 | 2023-08-22 | Tencent Technology (Shenzhen) Company Limited | Address generation method, related apparatus, and storage medium |
WO2022013722A1 (en) * | 2020-07-14 | 2022-01-20 | United Microelectronics Centre (Hong Kong) Limited | Processor, logic chip and method for binarized convolution neural network |
CN111738432A (zh) * | 2020-08-10 | 2020-10-02 | 电子科技大学 | 一种支持自适应并行计算的神经网络处理电路 |
CN112561034A (zh) * | 2020-12-04 | 2021-03-26 | 深兰人工智能(深圳)有限公司 | 一种神经网络加速装置 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN112488908B (zh) * | 2020-12-18 | 2021-08-27 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110766127B (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110766127B (zh) | 神经网络计算专用电路及其相关计算平台与实现方法 | |
CN110050267B (zh) | 用于数据管理的系统和方法 | |
US11734006B2 (en) | Deep vision processor | |
CN111684473B (zh) | 提高神经网络阵列的性能 | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
Mahmoud et al. | Diffy: A Déjà vu-free differential deep neural network accelerator | |
Chakradhar et al. | A dynamically configurable coprocessor for convolutional neural networks | |
CN111897579A (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
WO2019136764A1 (zh) | 卷积器及其所应用的人工智能处理装置 | |
CN112529146B (zh) | 神经网络模型训练的方法和装置 | |
CN113051216B (zh) | 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法 | |
CN110766128A (zh) | 卷积计算单元、计算方法及神经网络计算平台 | |
US11144291B1 (en) | Loop-oriented neural network compilation | |
CN112789627B (zh) | 一种神经网络处理器、数据处理方法及相关设备 | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
CN110716751B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
Wang et al. | EASNet: searching elastic and accurate network architecture for stereo matching | |
CN110765413B (zh) | 矩阵求和结构及神经网络计算平台 | |
Dawwd | The multi 2D systolic design and implementation of Convolutional Neural Networks | |
CN110533176B (zh) | 用于神经网络计算的缓存装置及其相关计算平台 | |
Tapiador-Morales et al. | Event-based row-by-row multi-convolution engine for dynamic-vision feature extraction on fpga | |
CN111382848A (zh) | 一种计算装置及相关产品 | |
US20240054330A1 (en) | Exploitation of low data density or nonzero weights in a weighted sum computer |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200901 Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029 Applicant after: Xilinx Electronic Technology (Beijing) Co.,Ltd. Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing. Applicant before: BEIJING DEEPHI INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |