CN108205701B - 一种执行卷积计算的系统及方法 - Google Patents
一种执行卷积计算的系统及方法 Download PDFInfo
- Publication number
- CN108205701B CN108205701B CN201711366904.6A CN201711366904A CN108205701B CN 108205701 B CN108205701 B CN 108205701B CN 201711366904 A CN201711366904 A CN 201711366904A CN 108205701 B CN108205701 B CN 108205701B
- Authority
- CN
- China
- Prior art keywords
- convolution
- filter
- matrix
- calculations
- mode
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- 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
Abstract
本发明提供一种以矩阵模式或者滤波器模式执行卷积计算的系统。分析模块生成模式选择信号,以基于分析卷积特征的结果而选择矩阵模式或者滤波器模式。该结果包括至少矩阵模式和滤波器模式之间的资源利用的比较。卷积模块包括多个处理元件,每个处理元件进一步包括算术计算电路。卷积模块用于根据矩阵模式执行自卷积计算转换而来的矩阵乘法,并用于根据滤波器模块执行卷积计算。本发明还提供了对应的方法。本发明能有效执行卷积计算,并提高资源利用率。
Description
优先权声明
本申请主张在2016年12月20日提出的申请号为62/436,488号的美国临时专利申请的优先权,且上述美国专利申请整体以引用方式并入本文中。
技术领域
本发明的实施例涉及用于卷积计算(convolution computing)的计算机架构,更具体地,涉及一种执行卷积计算的系统及方法。
背景技术
在计算机视觉、语音识别、自然语言处理和生物信息学的领域中,深度学习以其优越的性能已得到广泛的认可。深度学习是机器学习的分支,其利用包含多个隐藏层的人工神经网络。称为卷积神经网络(convolutional neural network,CNN)的一种类型的人工神经网络由深度学习在大数据集上使用,例如,图像数据的大数据集。CNN已在图像应用中显现出良好的结果。例如,CNN可以被用在特征提取上。从输入端所接收的原始图像像素中,CNN可以在输出端为不同级别的特征生成分数。
CNN的计算工作量很大。CNN的核心计算为卷积,其涉及高阶嵌套环(high-ordernested loop)。对于特征提取,CNN在信道集(例如,红、绿和蓝)上对具有二维滤波器集的输入图像像素进行卷积,然后进行非线性计算、向下采样计算和级别分数计算。已经了解卷积计算对资源要求很高。除了CNN,卷积计算还经常用于解决科学问题和工程问题。因此,需要优化卷积计算以提高性能。
发明内容
本发明的目的在于,提供一种执行卷积计算的系统及方法,以解决上述问题。
在一个实施例中,提供了一种用于执行卷积计算的系统。该系统包括分析模块,其根据分析多个卷积特征的多个结果,生成模式选择信号以选择矩阵模式和滤波器模式中的一个。所述多个结果包括至少矩阵模式和滤波器模式之间的资源利用的比较。该系统还包括与所述分析模块耦接的卷积模块。该卷积模块包括多个处理元件,每个处理元件包括算术计算电路。所述卷积模块用于根据所述矩阵模式执行自多个卷积计算转换而来的多个矩阵乘法,并用于根据所述滤波器模式执行所述多个卷积计算。
在另一实施例中,提供了用于执行卷积计算的方法。该方法包括:卷积模块接收用于选择矩阵模式和滤波器模式中的一个的模式选择信号。所述模式选择信号是基于分析多个卷积特征的多个结果生成而来,所述多个卷积特征包括至少矩阵模式和滤波器模式之间的资源利用的比较。所述卷积模块包括多个处理元件,每个处理元件包括算术计算电路。该方法还包括:响应于选择所述矩阵模式,执行自多个卷积计算转换而来的多个矩阵乘法;以及响应于选择所述滤波器模式,执行所述多个卷积计算。
通过根据一个给定的CNN问题的特征而使用处理元件的配置和/或数据调度到处理元件,本发明实施例使得卷积计算有效,实施例的有益效果将在下文中详细解释。
本发明通过分析卷积特征,根据分析的结果产生模式选择信号以选择矩阵模式或滤波器模式,进而多个处理元件根据矩阵模式进行矩阵乘法,并根据滤波器模式进行卷积计算,有效执行卷积计算,并通过多个处理元件既进行矩阵乘法又进行卷积计算,提高资源利用率。
附图说明
在下列相同的标号表示相似的元件的附图中,本发明通过举例的方式进行说明,而非限制的方式。应该注意的是,本发明中的“a”或者“一个”实施例的不同引用不一定是指同一实施例,并且这种引用意味着至少一个。此外,当描述与实施例相关的特定特征、结构或特征时,应认为,无论是否明确描述,实现这些特征、结构或者与其他实施例相同的特征,均是在本领域技术人员的知识内。
图1是根据一个实施例的执行CNN计算的系统。
图2A是根据一个实施例的包括矩阵引擎和滤波器引擎的卷积模块。
图2B是根据另一实施例的包括混合引擎的卷积模块。
图3是根据一个实施例的矩阵引擎。
图4是根据一个实施例的滤波器引擎。
图5是根据一个实施例的混合引擎。
图6是根据另一实施例的卷积模块。
图7是根据一个实施例的矩阵模式中具有调度数据(dispatched data)的硬件配置。
图8是根据一个实施例的滤波器模式中具有调度数据的硬件配置。
图9是根据一个实施例的执行卷积计算的方法的流程示意图。
具体实施方式
在下文中,进行了大量的具体说明。然而,可以理解的是,本发明的实施例可以无需这些具体说明而被实施。在其他示例中,为了不模糊本文的理解,已知的电路、结构和技术不进行详细说明。但是,可以理解的是,本领域的技术人员可以实施本发明,而无需这些具体说明。通过本文,本领域的技术人员将能实现适当的功能,而无需试验。
本发明实施例提供一种用于有效卷积计算的方法及系统。该系统包括卷积模块,其进一步包括用于执行卷积计算的处理元件。卷积模块是卷积计算系统的核心计算模块。在下文中,以CNN为例,对卷积计算进行描述。可以理解的是,本文所描述的卷积计算技术可以被应用到计算卷积的任何应用或者问题中。
在描述用于CNN计算的硬件架构之前,可能先描述CNN计算中使用的一些技术是有帮助的。通常,相比于输入图像尺寸,用于CNN计算的滤波器在尺寸上是较小的。例如,一个滤波器可以由5x 5的滤波器权重构成,即沿着宽度维有5个滤波器权重,且沿着高度维有5个滤波器权重。相对而言,在每个宽度维和高度维中,输入图像可以具有成千上万个像素。除了宽度和高度,输入图像具有深度维,其可以是输入图像中颜色信道的数量。在卷积期间,滤波器滑过输入图像的宽度和/或高度,并且计算任何位置处的滤波器权重与图像像素值之间的点积(dot product)。当滤波器在输入图像上滑动时,生成二维输出特征图。输出特征图表示位于输入图像的每个空间位置处的滤波器响应。当多个滤波器被应用到输入图像时,生成多个输出特征图。每个输出特征图通过使用滤波器而产生,并且不同的输出特征图可以用于检测输入图像中的不同的特征。当计算点积(即卷积)时,滤波器可以按照一次一个像素的方式在输入图像上滑动。在一些情况中,滤波器可以按照一次多个像素的方式在输入图像上滑动。滤波器在卷积的每个步骤中在输入图像上滑过的像素的数量称为步幅大小(stride size)。
在一个实施例中,CNN计算系统包括至少两个引擎:矩阵引擎和滤波器引擎。矩阵引擎执行两个矩阵的矩阵乘法,其自输入图像和滤波器的卷积转换而来。很容易并行执行矩阵乘法,但是需要较大存储器及带宽。滤波器引擎可以包括处理元件,其接收图像数据和以对卷积计算有效的方式而分配的滤波器权重。但是,当问题尺寸和硬件尺寸不匹配时,滤波器引擎或者矩阵引擎可能遭受硬件利用效率低的问题。
图1示出了本发明实施例可操作的系统100的示例。该系统100包括处理模块110,其与用于执行卷积计算的卷积模块120耦接。处理模块110可以包括一个或者多个处理器,每个处理器进一步包括用于执行算术操作和/或逻辑操作的电路。处理器的实施例包括,但不限于,中央处理单元(central processing unit,CPU)、算术和逻辑单元(arithmeticand logic unit,ALU)、向量处理器(vector processor)和其他通用和/或专用处理电路。卷积模块120是用于执行卷积的执行引擎。卷积模块120可以包括多个被参考为处理元件的硬件组件,其中每个包括算术计算电路,例如一个或多个乘法器、加法器、累加器(accumulator,ACC)、ALU、处理器或其任何组合。处理元件可以被设置成一个或多个阵列。根据来自于分析模块150的模式选择信号,卷积模块120以矩阵模式或滤波器模式执行卷积计算。
在一个实施例中,卷积模块120的输出可以被发送到处理模块110,其根据具体的图像应用的要求,执行非线性操作、环路操作、全连接的神经网络操作等的组合。在一个实施例中,处理模块110和卷积模块120一起用作特征提取器,其用于从给定的输入图像中提取特定特征(例如,车、人、船等)。可选地,处理模块110和卷积模块120执行CNN计算,以用于不限于上述说明的大量的图像应用。系统100可以是计算设备、通信设备或者计算和通信设备的组合的一部分。在另一实施例中,处理模块110和卷积模块120一起可以执行与CNN相关或者不相关的其他科学的计算或者工程计算。
分析模块150对卷积特征集进行分析。在一个实施例中,分析模块150可以与处理模块110和/或存储器130耦接,以接收卷积特征。分析模块150也可以与卷积模块120耦接,以发送模式选择信号,其用于根据分析结果选择卷积模式。在一个可选的实施例中,分析模块150可以是处理模块110的一部分。分析模块150可以是硬件组件或者存储在由诸如处理模块110中的电路的机器执行的机器可读介质中的软件程序。
在一个实施例中,,考虑到如果存在的硬件约束和用户需求,分析模块150确定每个卷积特征如何影响包括资源利用的性能统计。性能统计也可以包括所需要的处理时间和/或能量消耗限度。在一个实施例中,分析模块150可以线上(即在运行操作的期间)或线下执行这个分析。硬件约束可以包括,但不限于卷积模块120中的处理元件的数量,分配给矩阵模式和滤波器模式中每个的处理元件阵列的高度和宽度,每个处理元件的能量消耗,处理速度和通信带宽,以及存储器容量和存储器带宽。用户需求可以包括用于能量消耗的上限、所需处理时间的上限以及用于诸如存储器资源和处理资源的利用的资源利用的下限中的一个或多个。
当用于图像应用的给定具体卷积特征时,对于卷积模块120中如果存在的给定的硬件和需求而言,分析模块150比较矩阵模式和滤波器模式之间的性能统计。分析模块150比较这两个模式的性能,并相应地产生用于卷积模块150的模式选择信号。在一个实施例中,基于卷积计算的尺寸与卷积模块120中的阵列或者阵列组尺寸是否匹配,或者卷积计算的尺寸与卷积模块120中的阵列或者阵列组尺寸的不匹配程度,分析模块150可以进行模式选择。
在一个实施例中,由分析模块150所分析的卷积特征可以包括,但不限于输入图像高度和宽度、信道数量、输入图像计数、输入滤波器高度和宽度、输入滤波器计数、步幅大小、输入批量尺寸(input batch size)、并行维度、输入信道顺序、输出信道顺序等。更具体而言,输入批量尺寸是在卷积计算中一起处理以提高重新使用率的数据集合的尺寸。并行维度是并行分配给卷积计算的处理元件的维度。这些所分配的处理元件被称为并行处理单元(parallel processing unit,PPU)。例如,一个PPU可以包括3x3=9个ALU,以用于并行的卷积计算,并且另一个PPU可以包括7x7=49个ALU。并行纬度也包括PPU放置形状。例如,具有32个ALU的PPU可以被放置在8x4个ALU的二维阵列,或者16x2个ALU的二维阵列,或者32x1个ALU的一维阵列中,以用于不同的输入数据足迹(data footprints)。关于输入信道和输出信道的信道顺序,信道顺序表示关于颜色信道排列的存储器中的图像足迹(imagefootprint)。对于RGB信道,一个信道顺序可以是RGB的重复模型(repeated pattern),另一个信道顺序可以是所有R信道,其后先是所有G信道,再是所有的B信道。
分析模块150用覆盖宽范围的情景的卷积特征的不同组合,可以计算用于矩阵模式和滤波器模式两者的性能统计。在系统运行操作期间,当系统100被给定用于图像应用的卷积特征集时,基于所计算的性能统计,分析模块150确定将选择哪个模式。分析模块150可以在系统100的运行时间中产生并发送模式选择信号到卷积模块120。
虽然图1示出分析模块150作为位于处理模块110外部的硬件模块,但是在一些实施例中,分析模块150和处理模块110可以被实现为一个包含通用计算元件和专用计算元件中至少一个的硬件设备。在一个实施例中,分析模块150可以是可编程的。在可选实施例中,分析模块150可以在另一处理平台上,例如计算设备,并与卷积模块120通过网络交互分析结果。在一个实施例中,分析模块150可以执行机器可读指令,以执行上述的分析,并以机器可读指令的形式发送模式选择信号到卷积模块120,以选择矩阵模式或者滤波器模式。
在一个实施例中,系统100可以包括存储器130,其可以位于片上(on-chip)(即与处理模块110中的处理器位于相同的芯片上),并包括高速缓存器、寄存器文件和由随机访问存储器(random access memory,RAM)组成的缓存器,例如,静态随机访问存储器(staticrandom access memory,SRAM)设备。可选地,存储器130可以位于片下(off-chip),并是由RAM组成的主存储器的一部分,例如动态随机访问存储器(dynamic random accessmemory,DRAM)设备。存储器130可以由卷积模块120中的所有处理元件共享。系统100还可以与系统存储器140耦接,例如DRAM设备或者其他易失性设备和/或非易失性设备。
图2A示出了根据图1中的卷积模块120的第一实施例的卷积模块210。卷积模块210包括矩阵引擎230和滤波器引擎240。矩阵引擎230和滤波器引擎240中每个为硬件设备,并分别包括处理元件的第一阵列231和第二阵列241。第一阵列231中的处理元件具有第一阵列配置,第二阵列241中的处理元件具有第二阵列配置。第一阵列配置和第二阵列配置的具体描述将结合图3和图4来分别提供。第一阵列231和第二阵列241可以是相同尺寸或者不同尺寸。当来自于分析模块150(图1中)的模式选择信号表示矩阵模式被选择以用于图像应用时,矩阵引擎230被激活以用于卷积计算(其首先被转换成矩阵乘法)。当来自于分析模块150的模式选择信号表示滤波器模式被选择以用于图像应用时,滤波器引擎240被激活以用于卷积计算。
图2B示出了根据图1中的卷积模块120的第二实施例的卷积模块220。卷积模块220包括混合引擎250,其进一步包括由矩阵模式和滤波器模式所共享的处理元件的混合阵列251。当来自于分析模块150的模式选择信号表示矩阵模式被选择以用于图像应用时,混合引擎250用于根据矩阵模式而用作第一阵列配置。当来自于分析模块150的模式选择信号表示滤波器模式被选择以用于图像应用时,混合引擎250用于根据滤波器模式而用作第二阵列配置。
图3示出了根据一个实施例的矩阵引擎230的示例。为了说明目的,图3显示了矩阵引擎230中的硬件组件以及由硬件组件将进行卷积的数据(用虚线表示)的示例。待卷积的数据包括输入图像(例如,由九个像素值M0,M1,M2,….,M8所构成的3x3图像M)和四个2x2滤波器F、G、H和I,其所有或者部分可以被存储在存储器130中。如上所述,当卷积模块120的矩阵模式被选择时,矩阵引擎230被激活。
在本示例中,矩阵引擎230包括处理元件310的第一阵列331,其可以根据第一阵列配置通过垂直连接和水平连接而相互连接。第一阵列331是图2A的第一阵列231的一个示例。每个处理元件310与累加器315耦接,以对部分和(partial sum)进行累加。在可选实施例中,累加器315可以是处理元件310的部分。矩阵引擎230可以与第一输入缓存器320、第二输入缓存器330和输出缓存器340耦接。第一输入缓存器320可以用于暂时存储输入图像的像素值;因此,在所示的本示例中,像素值可以从上到下(即沿着垂直方向)进入第一阵列331。第二输入缓存器330可以用于暂时存储一个或多个滤波器的滤波器权重;因此,在所示的本示例中,滤波器权重可以从左到右(即沿着水平方向)进入第一阵列331。输出缓存器340可以用于暂时存储输出特征图的值(即像素值和滤波器权重的卷积结果),或者至少部分输出特征图。可选地,像素值可以以水平方向进入第一阵列331,并且滤波器权重可以以垂直方向进入第一阵列331。
矩阵引擎230高效地执行矩阵乘法。在一个实施例中,矩阵引擎230包括数据调度引擎350,其将二维卷积窗口(convolution window)中的像素值展开到展开的图像矩阵360的行中,并通过输入缓存器320或者输入缓存器330,将展开的像素值分配到第一阵列331。被应用到输入图像的每个滤波器定义二维卷积窗口。当二维卷积窗口(即滤波器)在整个输入图像M上滑动时,生成展开的图像矩阵360的行。在本简化的示例中,3x3的输入图像M被展开到更大的4x4的展开的图像矩阵360中。数据调度引擎350还将滤波器权重展开到展开的滤波器矩阵370的行中,并通过输入缓存器320或者输入缓存器330,将展开的滤波器权重分配到第一阵列331中。在本示例中,每个滤波器的滤波器权重被展开到展开的滤波器矩阵370的单行中。在可选实施例中,图像数据和滤波器数据的展开可以在矩阵引擎230的外部由另一引擎来执行,即系统100中的处理器或者电路,并被存储在由矩阵引擎230可访问的存储器130中。应注意,展开的图像矩阵360中的每个元件也是输入图像M的元件,并且展开的滤波器矩阵370中的每个元件也是其中一个滤波器的元件。
如图3所示,展开的图像矩阵360的行可以在从第一阵列331的上到下的垂直方向上继续,而展开的图像矩阵370的列在第一阵列331的从左到右的水平方向上继续。所有的处理元件310均相同,并且在相同时钟下运行。第一阵列331中的每对处理元件310和累加器315执行乘法-加法操作以及累加操作,以将像素值乘以滤波器权重,并将乘积增加到累加的部分和中。矩阵乘法的结果是输入特征图的卷积结果,其被发送到输出缓存器340中。
由矩阵引擎230所执行的矩阵乘法很容易在单指令多数据(single-instruction-multiple-data,SIMD)架构上并行执行,例如处理元件310的第一阵列331。但是,由于展开的图像矩阵比原始输入图像占用更多存储空间,并占据更多存储器带宽,将输入图像展开到展开的图像矩阵(例如展开的图像矩阵360)在系统资源上创建了大量的开销,例如存储器容量和存储器带宽。
图4示出了根据一个实施例的滤波器引擎240的示例。如上所述,当卷积模块120的滤波器模式被选择时,滤波器引擎240被激活。
滤波器引擎240包括处理元件410的第二阵列441,其根据第二阵列配置,通过垂直连接、水平连接和对角线连接相互连接。第二阵列441是图2A的第二阵列241的一个示例。滤波器引擎240可以与第一输入缓存器420、第二输入缓存器430和输出缓存器440耦接。水平连接允许滤波器权重的行水平地穿过处理元件410而被重新使用。对角线连接允许像素值的行对角线地穿过处理元件410而被重新使用,垂直连接允许部分和垂直地被累加。
在图4的实施例中,数据调度引擎450通过输入缓存器420和输入缓存器430,将像素值和滤波器权重分配到第二阵列441中。通过各自的对角线连接,滤波器权重传播通过第二阵列441。每个处理元件410在一对像素值和滤波器权重上进行操作,并通过各自的垂直连接传播结果。累加器415将在各自垂直连接上传播的卷积的部分和进行累加。在可选实施例中,滤波器权重可以使用垂直连接,部分和可用使用水平连接。另外,可选的对角线连接可以正交于图4中所显示的,即可选的对角线连接可以从左下指向右上。
在一个实施例中,在同一对角线上的所有处理元件410可以直接连接到第一输入缓存器420,以在同一周期内接收相同的图像像素值。同理,在同一行中的所有处理元件410可以直接连接到第二输入缓存器430,以在同一周期内接收相同的滤波器权重。每个处理元件410执行一维卷积,即乘法-加法操作,将像素值乘以滤波器权重,并将乘积增加到同一处理元件中累加的部分和中。所有处理元件410均相同,并在相同的时钟下运行。重新使用同一值的所有处理元件410在同一周期内接收该值。从每个处理元件410中产生的部分和被立即发送到其相邻的处理元件410。
滤波器引擎240提供硬件加速器平台,其允许二维卷积直接映射到处理元件的阵列(即第二阵列441)上。该映射简单明了且易如实现。但是,当二维卷积的尺寸与第二阵列441的尺寸之间存在不一致时,一些处理元件410可以保留不被使用,并导致资源利用效率低。
因此,图1的分析模块150用于分析卷积计算的参数,以在计算发生前确定矩阵模式或者滤波器模式是否是最适合于计算。在一个实施例中,分析模块150可以在用于矩阵模式的矩阵引擎230与用于滤波器模式的滤波器引擎240之间进行选择。在可选的实施例中,分析模块150可以在相同硬件引擎的矩阵模式和滤波器模式之间进行选择,例如,图2B的混合引擎250。
图5是根据一个实施例的混合引擎250的示例示意图。混合引擎250包括处理元件510的混合阵列251,其可以用于在运行期间在矩阵模式被选择时具有第一阵列配置,并在滤波器模式被选择时具有第二阵列配置。更具体地,当矩阵模式被选择时,混合阵列251可以禁用其对角线连接,并使能其垂直连接和水平连接,以用于分别传播像素值和滤波器权重。在矩阵模式中的混合引擎250执行与图3的矩阵引擎230相同的操作,并且每个处理元件510执行与相应的一对处理元件310和累加器315的相同的操作。当累加操作由处理元件510来执行时,矩阵模式中的累加器515可以被禁能。当滤波器模式被选择时,混合阵列251可以使能其对角线连接以用于传播像素值,并且也使能其垂直连接和水平连接以分别传播部分和滤波器权重。滤波器模式中的混合引擎250执行与图4的滤波器引擎240的相同的操作,并且每个处理元件510执行与相应的处理元件410的相同的操作。滤波器模式中的累加器可以被使能以执行部分和的累加。
混合引擎250包括数据调度引擎550,其根据模式选择信号将数据分配到混合阵列251。在一个实施例中,如图3所示,矩阵模式中的数据调度引擎分别将像素值和滤波器权重展开到展开的图像矩阵和展开的滤波器矩阵中,并且分别在垂直方向和水平方向上将像素值和滤波器权重调度到混合阵列251中。在可选的实施例中,图像数据和滤波器数据的展开可以在混合引擎250的外部由另一引擎来执行,即处理器或电路,并可以被存储在由混合引擎250可访问的存储器中。结合图4所述,滤波器模式中的数据调度引擎550分别在对角线方向和水平方向上将像素值和滤波器权重调度到混合阵列251中。
在可选实施例中,矩阵模式操作中,由垂直连接和水平连接所承载的数据可以互换,例如像素值可以在水平连接上被发送,滤波器权重可以在垂直连接上被发送。结合滤波器模式操作,如上所述,也可以对由对角线连接、垂直连接和水平连接所承载的数据做出相似的改变。
混合引擎250还包括第一输入缓存器520、第二输入缓存器530和输出缓存器540,其用于矩阵模式和滤波器模式中,以缓存混合阵列251的输入数据和输出数据。由于无论选择哪个模式均使用相同的处理元件集和相同的缓存器集,混合引擎250的使用可以提高资源利用率。
图6示出了根据另一实施例的系统100(即图1中)的卷积模块610。卷积模块610可以是图1中的卷积模块120的一个实施例。在本实施例中,加载引擎620从存储器130中加载图像数据和滤波器权重到卷积模块610中的本地缓存器630中。本地缓存器630与数据调度引擎640耦接,其根据模式选择信号将来自于本地缓存器630的数据调度到处理元件阵列(processing element array,PE阵列)650中的相应的处理元件。在一个实施例中,卷积模块610包括两个PE阵列650,其中一个用作矩阵引擎以用于执行矩阵乘法,另一个用作滤波器引擎以用于执行卷积计算。在另一实施例中,卷积模块610包括一个PE阵列650,其用作混合引擎以用于根据来自于分析模块150的模式选择信号而执行矩阵乘法或者卷积计算。在图6的示例中,一个PE阵列650以虚线所示,以表示在不同的实施例中卷积模块610可以包括一个PE阵列650或者两个PE阵列650。
在本实施例中,PE阵列650包括一维阵列的处理元件,其中每个包括算术计算电路,例如乘法器、加法器、累加器、ALU、处理器或者上述任何组合中的一个或多个。在一个实施例中,PE阵列650可以是向量处理器,其根据向量命令执行向量操作。
图7示出了根据一个实施例的矩阵模式中的数据调度引擎740和PE阵列750。数据调度引擎740为数据调度引擎640的一个示例,并且PE阵列750为PE阵列650(图6中)的一个示例。数据调度引擎740将展开的滤波器权重(由阵列A的元件所示)和展开的图像数据(由阵列B的元件所示)展开到PE阵列750中的处理元件710中,以用于矩阵乘法。
在本示例中,每个处理元件710被显示以包括累加器711、加法器712和乘法器713,以用于先执行乘法-加法操作然后执行累加操作。在可选的实施例中,每个处理元件710可以包括可编程电路,其执行指令或命令来执行乘法-加法操作和累加操作。可理解的是,PE阵列750中所示的硬件组件为示意的,在可选实施例中,PE阵列750可以包括不同数量和/或不同类型的硬件组件。
图8示出了根据一个实施例的滤波器模式中的数据调度引擎840和PE阵列850。数据调度引擎840为数据调度引擎640的一个示例,并且PE阵列850为PE阵列650(图6中)的一个示例。数据调度引擎840将滤波器权重(由阵列F的元件所示)和图像数据(由阵列I的元件所示)展开到PE阵列850中的处理元件810中,以用于卷积计算。在图8的示例中,作为卷积计算的部分,滤波器权重F1被调度到所有四个处理元件810,以用于具有四个不同的图像数据元件的乘法。
在本示例中,每个处理元件810被显示以包括累加器811、加法器812和乘法器813,以用于先执行乘法-加法操作然后执行累加操作。在可选的实施例中,每个处理元件810可以包括可编程电路,其执行指令或命令来执行乘法-加法操作和累加操作。可理解的是,PE阵列850中所示的硬件组件为示意的,在可选实施例中,PE阵列850可以包括不同数量和/或不同类型的硬件组件。
图9示出了根据一个实施例的用于执行卷积计算的方法900的流程图。在一个实施例中,方法900可以由系统(例如图1的系统100)来执行,更具体地,由包括多个处理元件的卷积模块来执行,其中每个处理元件进一步包括算术计算电路。方法900开始于卷积模块接收选择矩阵模式和滤波器模式中一个的模式选择信号(步骤910)。基于分析卷积特征的结果生成模式选择信号,该结果包括至少矩阵模式和滤波器模式之间的资源利用率的比较。响应于选择矩阵模式,卷积模块执行自卷积计算转换而来的矩阵乘法(步骤920)。响应于选择滤波器模式,卷积模块执行卷积计算(步骤930)。
在一个实施例中,卷积模块可以包括两个PE阵列:一个PE阵列用作矩阵引擎,其执行自卷积计算转换而来的矩阵乘法,另一个PE阵列用作滤波器引擎,其执行卷积计算。在可选实施例中,卷积模块可以包括一个PE阵列,其用作混合引擎,其在运行期间根据模式选择信号执行矩阵模式中的矩阵乘法和滤波器模式中的卷积计算。这一个PE阵列或者两个PE阵列可以是二维、一维或者其他维度。
图9的流程图的操作已结合图1到图8的示例性实施例而被描述。但是,应理解的是,图9的流程图的操作可以由本发明的除了图1到图8中讨论的实施例之外的实施例来执行,并且图1到图8中讨论的实施例可以执行与这些结合流程图所讨论的操作不同的操作。虽然图9的流程图显示了由本发明的某些实施例执行的操作的特定顺序,但是,应理解的是,这个顺序是示例性的(例如,可选实施例可以以不同的顺序执行这些操作,组合某些操作,覆盖某些操作等)。例如,步骤920和步骤930可以以基于在不同时刻处所选择的模式的任何顺序而被执行。
本文已描述了各种功能组件或模块。由本领域技术人员将所理解的是,功能模块将优选地通过电路(专用电路,或通用电路,其在一个或多个处理器的控制,及编码指令下进行操作),其通常将包括晶体管,该晶体管以根据本文所描述的功能和操作而控制电路的操作的这样一种方式来被配置。
虽然以几个实施例的形式已描述了本发明,但本领域的技术人员将认识到的是,本发明不限于所描述的实施例,并且可以用落入所附的权利要求的精神和范围内的变形和修改来实施。因此,本文被认为是示意性的,而不是限制性的。
Claims (20)
1.一种执行卷积计算的系统,其特征在于,包括:
分析模块,用于根据分析多个卷积特征的多个结果,生成模式选择信号以选择矩阵模式和滤波器模式中的一个,其中所述多个结果包括至少所述矩阵模式和所述滤波器模式之间的资源利用的比较;以及
卷积模块,与所述分析模块耦接,包括多个处理元件,每个所述处理元件包括算术计算电路,其中所述卷积模块用于根据所述矩阵模式执行自多个卷积计算转换而来的多个矩阵乘法,并根据所述滤波器模式执行所述多个卷积计算。
2.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个处理元件配置为两个二维阵列,所述两个二维阵列包括用于执行所述矩阵模式中的所述多个矩阵乘法的第一二维阵列,以及用于执行所述滤波器模式中的所述多个卷积计算的第二二维阵列。
3.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个处理元件用作一个混合二维阵列,所述混合二维阵列在运行期间根据所述模式选择信号执行所述矩阵模式中的所述多个矩阵乘法和所述滤波器模式中的所述多个卷积计算。
4.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个处理元件用作两个一维阵列,所述两个一维阵列包括用于执行所述矩阵模式中的所述多个矩阵乘法的第一一维阵列,以及用于执行所述滤波器模式中的所述多个卷积计算的第二一维阵列。
5.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个处理元件用作一个混合一维阵列,所述混合一维阵列在运行期间根据所述模式选择信号执行所述矩阵模式中的所述多个矩阵乘法和所述滤波器模式中的所述多个卷积计算。
6.如权利要求1中的执行卷积计算的系统,其特征在于,还包括:
数据调度引擎,用于根据所述模式选择信号将输入图像数据和多个滤波器权重调度到相应的所述多个处理元件中。
7.如权利要求1中的执行卷积计算的系统,其特征在于,所述卷积计算包括卷积神经网络计算。
8.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个结果包括所述矩阵模式与所述滤波器模式之间的功率性能比较。
9.如权利要求1中的执行卷积计算的系统,其特征在于,所述多个卷积特征包括输入图像的维度、所述卷积计算中所使用的滤波器的维度以及用于并行执行所述卷积计算的所述多个处理元件的纬度。
10.如权利要求9中的执行卷积计算的系统,其特征在于,所述多个卷积特征还包括输入滤波器计数、关于所述输入图像的多个像素值的多个滤波器权重的步幅大小、输入数据批量尺寸、输入到所述卷积计算的所述多个滤波器权重和所述多个像素值的多个颜色信道排列以及所述卷积计算输出的多个卷积结果的多个颜色信道排列中的一个或多个。
11.一种执行卷积计算的方法,其特征在于,包括:
卷积模块接收用于选择矩阵模式和滤波器模式中的一个的模式选择信号,其中所述模式选择信号是基于分析多个卷积特征的多个结果生成而来,所述多个卷积特征包括至少所述矩阵模式和所述滤波器模式之间的资源利用的比较,所述卷积模块包括多个处理元件,每个处理元件包括算术计算电路;
响应于选择所述矩阵模式,执行自多个卷积计算转换而来的多个矩阵乘法;以及
响应于选择所述滤波器模式,执行所述多个卷积计算。
12.如权利要求11中的执行卷积计算的方法,其特征在于,还包括:
由所述多个处理元件的第一二维阵列执行所述矩阵模式中的所述多个矩阵乘法;以及
由所述多个处理元件的第二二维阵列执行所述滤波器模式中的所述多个卷积计算,其中所述第二二维阵列包括与所述第一二维阵列不同的多个处理元件。
13.如权利要求11中的执行卷积计算的方法,其特征在于,还包括:
由混合二维阵列执行所述矩阵模式中的所述多个矩阵乘法和所述滤波器模式中的所述多个卷积计算,其中所述混合二维阵列包括所述多个处理元件的相同集以用于所述多个矩阵乘法和所述多个卷积计算。
14.如权利要求11中的执行卷积计算的方法,其特征在于,还包括:
由所述多个处理元件的第一一维阵列执行所述矩阵模式中的所述多个矩阵乘法;以及
由所述多个处理元件的第二一维阵列执行所述滤波器模式中的所述多个卷积计算,其中所述第二一维阵列包括与所述第一一维阵列不同的多个处理元件。
15.如权利要求11中的执行卷积计算的方法,其特征在于,还包括:
由混合一维阵列执行所述矩阵模式中的所述多个矩阵乘法和所述滤波器模式中的所述多个卷积计算,其中所述混合一维阵列包括所述多个处理元件的相同集以用于所述多个矩阵乘法和所述多个卷积计算。
16.如权利要求11中的执行卷积计算的方法,其特征在于,还包括:
根据所述模式选择信号,将输入图像数据和多个滤波器权重调度到相应的所述多个处理元件中。
17.如权利要求11中的执行卷积计算的方法,其特征在于,所述卷积计算包括卷积神经网络计算。
18.如权利要求11中的执行卷积计算的方法,其特征在于,所述多个结果包括所述矩阵模式与所述滤波器模式之间的功率性能比较。
19.如权利要求11中的执行卷积计算的方法,其特征在于,所述多个卷积特征包括输入图像的维度、所述卷积计算中所使用的滤波器的维度以及用于并行执行所述卷积计算的所述多个处理元件的纬度。
20.如权利要求19中的执行卷积计算的方法,其特征在于,所述多个卷积特征还包括输入滤波器计数、关于所述输入图像的多个像素值的多个滤波器权重的步幅大小、输入数据批量尺寸、输入到所述卷积计算的所述多个滤波器权重和所述多个像素值的多个颜色信道排列以及所述卷积计算输出的多个卷积结果的多个颜色信道排列中的一个或多个。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662436488P | 2016-12-20 | 2016-12-20 | |
US62/436,488 | 2016-12-20 | ||
US15/787,897 US10394929B2 (en) | 2016-12-20 | 2017-10-19 | Adaptive execution engine for convolution computing systems |
US15/787,897 | 2017-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108205701A CN108205701A (zh) | 2018-06-26 |
CN108205701B true CN108205701B (zh) | 2021-12-28 |
Family
ID=62561579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711366904.6A Active CN108205701B (zh) | 2016-12-20 | 2017-12-18 | 一种执行卷积计算的系统及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10394929B2 (zh) |
CN (1) | CN108205701B (zh) |
TW (1) | TWI639119B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190036863A1 (en) * | 2015-05-20 | 2019-01-31 | Ryan Bonham | Managing government messages |
CN108073550A (zh) * | 2016-11-14 | 2018-05-25 | 耐能股份有限公司 | 缓冲装置及卷积运算装置与方法 |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
US10402527B2 (en) | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
EP3388981B1 (en) * | 2017-04-13 | 2021-09-01 | Nxp B.V. | Convolutional processing system |
CN109213962B (zh) | 2017-07-07 | 2020-10-09 | 华为技术有限公司 | 运算加速器 |
WO2019143026A1 (ko) | 2018-01-16 | 2019-07-25 | 한국과학기술원 | 특징맵 압축을 이용한 이미지 처리 방법 및 장치 |
WO2019143027A1 (ko) | 2018-01-16 | 2019-07-25 | 한국과학기술원 | 이미지 파이프라인 처리 방법 및 장치 |
KR102017995B1 (ko) * | 2018-01-16 | 2019-09-03 | 한국과학기술원 | 라인 단위 연산을 이용한 초해상화 방법 및 장치 |
US11966835B2 (en) | 2018-06-05 | 2024-04-23 | Nvidia Corp. | Deep neural network accelerator with fine-grained parallelism discovery |
CN108985450B (zh) * | 2018-06-28 | 2019-10-29 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
US10860918B2 (en) * | 2018-08-21 | 2020-12-08 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
US10824943B2 (en) * | 2018-08-21 | 2020-11-03 | GM Global Technology Operations LLC | High precision low bit convolutional neural network |
CN109118011A (zh) * | 2018-08-28 | 2019-01-01 | 摩佰尔(天津)大数据科技有限公司 | 码头堆场的智能调度方法和系统 |
US11769040B2 (en) * | 2018-09-10 | 2023-09-26 | Nvidia Corp. | Scalable multi-die deep learning system |
CN110929855B (zh) * | 2018-09-20 | 2023-12-12 | 合肥君正科技有限公司 | 一种数据交互方法和装置 |
US20220004856A1 (en) * | 2018-11-06 | 2022-01-06 | Genesys Logic, Inc. | Multichip system and data processing method adapted to the same for implementing neural network application |
EP3654247A1 (en) | 2018-11-15 | 2020-05-20 | IMEC vzw | Convolution engine for neural networks |
TWI696961B (zh) * | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
US10922077B2 (en) * | 2018-12-29 | 2021-02-16 | Intel Corporation | Apparatuses, methods, and systems for stencil configuration and computation instructions |
US11321819B2 (en) * | 2019-01-07 | 2022-05-03 | Hcl Technologies Limited | System and method for performing a convolution operation |
US11138292B1 (en) * | 2019-05-16 | 2021-10-05 | Facebook, Inc. | Circuit and method for computing depthwise convolution |
US11108457B2 (en) * | 2019-12-05 | 2021-08-31 | Bae Systems Information And Electronic Systems Integration Inc. | Spatial energy rank detector and high-speed alarm |
TWI733334B (zh) * | 2020-02-15 | 2021-07-11 | 財團法人工業技術研究院 | 卷積神經網路運算裝置及其運算的方法 |
US11593609B2 (en) | 2020-02-18 | 2023-02-28 | Stmicroelectronics S.R.L. | Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks |
TWI768326B (zh) * | 2020-04-20 | 2022-06-21 | 國立陽明交通大學 | 卷積運算模組及方法以及其適用之卷積神經網路系統 |
US11531873B2 (en) | 2020-06-23 | 2022-12-20 | Stmicroelectronics S.R.L. | Convolution acceleration with embedded vector decompression |
US20220100699A1 (en) * | 2020-09-30 | 2022-03-31 | Beijing Tsingmicro Intelligent Technology Co., Ltd. | Computing array and processor having the same |
CN112614040B (zh) * | 2020-12-16 | 2021-09-21 | 上海壁仞智能科技有限公司 | 用于卷积计算的方法、计算设备和计算机可读存储介质 |
GB2602524B (en) * | 2021-01-04 | 2024-02-14 | Imagination Tech Ltd | Neural network comprising matrix multiplication |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5195050A (en) * | 1990-08-20 | 1993-03-16 | Eastman Kodak Company | Single chip, mode switchable, matrix multiplier and convolver suitable for color image processing |
US6021421A (en) * | 1996-03-04 | 2000-02-01 | Oren Semiconductor Ltd., Israeli Company | Enhanced DSP apparatus |
WO2004006624A1 (fr) * | 2002-07-02 | 2004-01-15 | Thales | Systeme de spatialisation de sources sonores |
CN1894703A (zh) * | 2003-12-16 | 2007-01-10 | 佳能株式会社 | 模式识别方法、设备以及程序 |
CN101536333A (zh) * | 2006-09-29 | 2009-09-16 | 联发科技股份有限公司 | 联合检测中的初始信道估计的预缩放 |
WO2010033521A2 (en) * | 2008-09-16 | 2010-03-25 | Quantum Leap Research, Inc. | Methods for enabling a scalable transformation of diverse data into hypotheses, models and dynamic simulations to drive the discovery of new knowledge |
US8121236B1 (en) * | 2007-10-12 | 2012-02-21 | Harris Corporation | Communications system using adaptive filter circuit using parallel adaptive filters |
CN102467658A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 一种笑脸识别方法、装置及移动终端 |
CN102663428A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院上海光学精密机械研究所 | 神经网络模式识别系统和模式识别方法 |
CN104517122A (zh) * | 2014-12-12 | 2015-04-15 | 浙江大学 | 一种基于优化卷积架构的图像目标识别方法 |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105550749A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型网络拓扑结构的卷积神经网络的构造方法 |
CN105680825A (zh) * | 2016-02-16 | 2016-06-15 | 天津大学 | 数字滤波器解析设计法及其滤波器 |
CN105760859A (zh) * | 2016-03-22 | 2016-07-13 | 中国科学院自动化研究所 | 基于多任务卷积神经网络的网纹人脸图像识别方法及装置 |
WO2016130203A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks |
CN106160929A (zh) * | 2015-04-09 | 2016-11-23 | 北京三星通信技术研究有限公司 | 对uci进行编码、确定uci的传输功率的方法和设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356146B1 (en) * | 1999-07-13 | 2002-03-12 | Pmc-Sierra, Inc. | Amplifier measurement and modeling processes for use in generating predistortion parameters |
US20010033287A1 (en) * | 2000-01-11 | 2001-10-25 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer which utilizes a window ID to specify pixel characteristics |
CN1674480A (zh) * | 2004-03-25 | 2005-09-28 | 皇家飞利浦电子股份有限公司 | 卷积编码器及其编码方法 |
US7596282B2 (en) * | 2005-02-03 | 2009-09-29 | Siemens Medical Solutions Usa, Inc. | System and method for efficient feature estimation for medical images |
US20160026912A1 (en) | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
-
2017
- 2017-10-19 US US15/787,897 patent/US10394929B2/en active Active
- 2017-12-18 CN CN201711366904.6A patent/CN108205701B/zh active Active
- 2017-12-19 TW TW106144577A patent/TWI639119B/zh active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5195050A (en) * | 1990-08-20 | 1993-03-16 | Eastman Kodak Company | Single chip, mode switchable, matrix multiplier and convolver suitable for color image processing |
US6021421A (en) * | 1996-03-04 | 2000-02-01 | Oren Semiconductor Ltd., Israeli Company | Enhanced DSP apparatus |
WO2004006624A1 (fr) * | 2002-07-02 | 2004-01-15 | Thales | Systeme de spatialisation de sources sonores |
CN1894703A (zh) * | 2003-12-16 | 2007-01-10 | 佳能株式会社 | 模式识别方法、设备以及程序 |
CN101536333A (zh) * | 2006-09-29 | 2009-09-16 | 联发科技股份有限公司 | 联合检测中的初始信道估计的预缩放 |
US8121236B1 (en) * | 2007-10-12 | 2012-02-21 | Harris Corporation | Communications system using adaptive filter circuit using parallel adaptive filters |
WO2010033521A2 (en) * | 2008-09-16 | 2010-03-25 | Quantum Leap Research, Inc. | Methods for enabling a scalable transformation of diverse data into hypotheses, models and dynamic simulations to drive the discovery of new knowledge |
CN102467658A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 一种笑脸识别方法、装置及移动终端 |
CN102663428A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院上海光学精密机械研究所 | 神经网络模式识别系统和模式识别方法 |
CN104517122A (zh) * | 2014-12-12 | 2015-04-15 | 浙江大学 | 一种基于优化卷积架构的图像目标识别方法 |
WO2016130203A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks |
CN107209871A (zh) * | 2015-02-13 | 2017-09-26 | 高通股份有限公司 | 具有回调的卷积矩阵相乘以用于深度卷积神经网络的深度瓦片化 |
CN106160929A (zh) * | 2015-04-09 | 2016-11-23 | 北京三星通信技术研究有限公司 | 对uci进行编码、确定uci的传输功率的方法和设备 |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105550749A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型网络拓扑结构的卷积神经网络的构造方法 |
CN105680825A (zh) * | 2016-02-16 | 2016-06-15 | 天津大学 | 数字滤波器解析设计法及其滤波器 |
CN105760859A (zh) * | 2016-03-22 | 2016-07-13 | 中国科学院自动化研究所 | 基于多任务卷积神经网络的网纹人脸图像识别方法及装置 |
Non-Patent Citations (5)
Title |
---|
《cuDNN: Efficient primitives for deep learning》;S. Chetlur 等;《arXiv》;20141208;1-10 * |
Data driven prognostics using a Kalman filter ensemble of neural network models;Leto Peel;《2008 International Conference on Prognostics and Health Management》;20081212;1-6 * |
Neural Network Inverse Modeling and Applications to Microwave Filter Design;Humayun Kabir;《IEEE Transactions on Microwave Theory and Techniques》;20080404;867-879 * |
基于Kalman滤波的Camshift运动跟踪算法;翟卫欣;《北京大学学报(自然科学版)》;20150902;第51卷(第5期);799-804 * |
鼻咽癌细胞协同模式分类识别方法研究;邹刚;《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》;20120415(第(2012)04期);I138-15 * |
Also Published As
Publication number | Publication date |
---|---|
TWI639119B (zh) | 2018-10-21 |
US20180173676A1 (en) | 2018-06-21 |
CN108205701A (zh) | 2018-06-26 |
TW201824096A (zh) | 2018-07-01 |
US10394929B2 (en) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205701B (zh) | 一种执行卷积计算的系统及方法 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN111667051B (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
EP3179415B1 (en) | Systems and methods for a multi-core optimized recurrent neural network | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
KR102523263B1 (ko) | 하드웨어 기반 풀링을 위한 시스템 및 방법 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN111242289A (zh) | 一种规模可扩展的卷积神经网络加速系统与方法 | |
Kästner et al. | Hardware/software codesign for convolutional neural networks exploiting dynamic partial reconfiguration on PYNQ | |
EP3674982A1 (en) | Hardware accelerator architecture for convolutional neural network | |
Motamedi et al. | Fast and energy-efficient CNN inference on IoT devices | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
Kala et al. | UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs | |
KR20200081044A (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
KR20220015813A (ko) | 딥러닝 연산 수행 방법 및 장치 | |
US10755169B2 (en) | Hybrid non-uniform convolution transform engine for deep learning applications | |
CN113469350A (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
CN112884137A (zh) | 神经网络的硬件实现方式 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN115130672B (zh) | 一种软硬件协同优化卷积神经网络计算的方法及装置 | |
CN110930290B (zh) | 一种数据处理方法及装置 | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN112884138A (zh) | 神经网络的硬件实现方式 | |
Xiao et al. | FGPA: Fine-grained pipelined acceleration for depthwise separable CNN in resource constraint scenarios | |
CN110765413A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |