CN110046702A - 神经网络计算加速器及其执行的方法 - Google Patents
神经网络计算加速器及其执行的方法 Download PDFInfo
- Publication number
- CN110046702A CN110046702A CN201910036553.5A CN201910036553A CN110046702A CN 110046702 A CN110046702 A CN 110046702A CN 201910036553 A CN201910036553 A CN 201910036553A CN 110046702 A CN110046702 A CN 110046702A
- Authority
- CN
- China
- Prior art keywords
- block
- engine
- input
- convolution
- accelerator
- 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
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/08—Learning methods
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
- 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/048—Activation functions
-
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本申请提供了提供神经网络计算加速器及其执行的方法。其中,所述神经网络计算加速器包括多个硬件引擎,包括卷积引擎和至少一个第二引擎,每个硬件引擎包括执行神经网络运算的电路;和加速器内的缓冲存储器,用于存储输入特征图的第一输入区块和至少一个第二输入区块,其中所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠;其中所述卷积引擎运算以从所述缓冲存储器获取所述第一输入区块,对所述第一输入区块执行卷积运算以生成中间特征图的中间区块,并通过所述缓冲存储器将所述中间区块传递给所述第二引擎。实施本发明实施例,可以减少从系统内存中取出相邻区块所引起的数据移动。
Description
技术领域
本发明涉及神经网络技术领域,并且更具体地,涉及神经网络计算加速器及其执行的方法。
背景技术
深度学习(Deep learning)因其在计算器视觉,语音识别,自然语言处理,生物信息学等领域中的优越性能而获得广泛接受。深度学习是机器学习的一个分支,它使用包含多个隐藏层的人工神经网络。一种称为卷积神经网络(CNN,Convolutional NeuralNetwork)的人工神经网络已被深度学习用于诸如图像数据的大数据集。
神经网络不仅是计算密集型的,而且还导致大量的内存访问。例如,神经网络计算的核心计算是卷积。对于特征提取,输入图像可以与一组输入通道(例如,红色,绿色和蓝色)上的一组滤波器卷积,然后是非线性计算,下采样计算和类别得分计算。计算通常会对处理器外部的系统内存进行大量数据访问。因此,需要改进神经网络计算以提高系统性能。
发明内容
本发明提供神经网络计算加速器及其执行的方法,可以减少从系统内存中取出相邻区块所引起的数据移动。
本发明提供一种神经网络计算加速器,包括:多个硬件引擎,包括卷积引擎和至少一个第二引擎,每个硬件引擎包括执行神经网络运算的电路;和加速器内的缓冲存储器,用于存储输入特征图的第一输入区块和至少一个第二输入区块,其中所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠;其中所述卷积引擎运算以从所述缓冲存储器获取所述第一输入区块,对所述第一输入区块执行卷积运算以生成中间特征图的中间区块,并通过所述缓冲存储器将所述中间区块传递给所述第二引擎。
本发明提供一种用于神经网络计算的加速器执行的方法,包括:通过加速器中的卷积引擎获取来自加速器内的缓冲存储器的输入特征图的第一输入区块;对所述第一输入区块执行卷积运算以生成中间特征图的中间区块;和通过缓冲存储器将所述中间区块传递到加速器中的第二引擎;其中所述缓冲存储器存储第一输入区块和至少一个第二输入区块,所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠。
由上可知,本发明的技术方案中所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠,因此,可以减少从系统内存中取出相邻区块所引起的数据移动。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据一个实施例的包括用于神经网络计算的DLA 100的系统。
图2说明了卷积运算的一个例子。
图3A和图3B示出了根据一些实施例的输入特征图310中的重叠输入区块的示例。
图4A和图4B示出了根据一些实施例的卷积缓冲器151的存储内容。
图5示出了根据一个实施例的池化引擎113的输入的示例。
图6示出了根据一个实施例的中间特征图530中的跨区块数据重用的示例。
图7是示出根据一个实施例的用于在深度学习加速器中对第一引擎的输出区块和第二引擎的输入区块执行跨区块数据重用的方法700的流程图。
图8是示出根据一个实施例的用于执行神经网络计算的基于区块的执行的方法800的流程图。
具体实施方式
在说明书及权利要求当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求当中所提及的“包含”及“包括”为一个开放式的用语,故应解释成“包含但不限定于”。“大体上”是指在可接受的误差范围内,本领域技术人员能够在一个定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一个词在此包含任何直接及间接的电性连接手段。因此,若文中描述一个第一装置耦接于一个第二装置,则代表所述第一装置可直接电性连接于所述第二装置,或通过其它装置或连接手段间接地电性连接至所述第二装置。以下所述为实施本发明的较佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当视后附的权利要求所界定者为准。
接下面的描述为本发明预期的最优实施例。这些描述用于阐述本发明的大致原则而不应用于限制本发明。本发明的保护范围应在参考本发明的权利要求的基础上进行认定。
本发明的实施例提供了一种用于管理神经网络处理器(也称为深度学习加速器(DLA,Deep Learning Accelerator))中的数据重用(reuse)和数据移动的系统和方法。在一个实施例中,从DLA外部的系统内存获取到DLA的输入数据,并将其存储在DLA内部的缓冲存储器中。由于缓冲区大小有限,在任何给定的时间点,只有一小部分输入资料可以存储在缓冲存储器中。因此,输入数据可以被划分为多个区块(tile),并且缓冲存储器可以同时存储一个或多个区块。
神经网络处理由一系列层(layer)组成。在每一层,输入特征图(input featuremap)由DLA中的神经网络引擎(也称为“引擎”)处理成输出特征图(output feature map)。DLA包括执行不同类型的神经网络计算的多个不同引擎。每个引擎在逐个区块的基础上处理输入特征图;也就是说,每个引擎一次处理输入特征图的一个区块。例如,第一引擎(例如,卷积引擎)对第一输入区块执行运算以产生输出区块,并且经由缓冲存储器将输出区块传递到第二引擎。第二引擎在第一引擎对第二输入区块运算时对该输出区块进行运算。因此,引擎可以并行处理区块,通过缓冲存储器将数据从一个引擎传递到另一个引擎以减少系统内存访问。
在一个实施例中,运行时的DLA可以为一个或多个神经网络运算层选择区块方案和区块遍历方案。区块方案指定用于在XY平面中平铺输入特征图的一个或多个区块尺寸,并且区块遍历方案指定在X,Y和Z维度中生成区块的顺序。
在一个实施例中,输入特征图的区块可以彼此重叠。例如,如果区块T0和T1重叠,则重叠部分T01可以作为T0的一部分从系统内存取出一次,并且可以留在缓冲存储器中以作为T1的一部分重新使用。因此,可以减少从系统内存中取出相邻区块所引起的数据移动。
在一个实施例中,输出特征图的区块可以彼此重叠。例如,卷积引擎在第一输入区块上执行卷积以产生第一输出区块,并在第二输入区块上执行卷积以产生第二输出区块。第一和第二输出区块可以彼此重叠。因此,在一个实施例中,DLA可以存储两个输出区块的重叠部分,使得重叠部分仅计算一次。在以上示例中,卷积引擎可以计算第二输出区块的非重叠部分。然后,可以将未重叠部分与存储的重叠部分组合以形成第二输出区块。因此,输出数据的重用(下文中称为“跨区块重用”)可以减少DLA的计算工作量。
图1示出了根据一个实施例的包括用于神经网络计算的DLA 100的系统。DLA 100耦合到主处理器130(例如,中央处理单元(CPU),图形处理单元(GPU),数字信号处理器(DSP),媒体处理器或其他通用和/或专用处理电路)。DLA 100还耦合到DLA 100外部的系统内存140。系统内存140可以包括一个或多个动态随机存取内存(DRAM)设备,或其他易失性或非易失性内存设备。在图1中,粗箭头表示数据流(例如,输入和输出特征图数据的流),细箭头表示控制流(例如,命令,用于控制运算的系统统计等)。
DLA 100包括多个引擎,每个引擎执行一种类型的神经网络运算。每个引擎包括用于执行数学计算的硬件电路(例如,乘法器,加法器,累加器等)。在该示例中,DLA 100包括用于执行卷积运算的卷积引擎111,用于执行逐元数学运算(例如,整流(ReLU),批量归一化(BN)等)的激活引擎112,用于执行下采样运算的池化引擎113和数学函数引擎114(例如,用于计算三角函数,最大/最小函数,绝对值等)。DLA 100可以包括另外的引擎,这里省略了这些引擎以简化图标。
如前所述,神经网络处理由一系列层组成。在每一层,其中一个引擎对输入特征图执行运算以生成输出特征图。第一引擎的输出特征图可以成为第二引擎的输入特征图。这些特征图(包括输入特征图和输出特征图)中的每一个都是多维数组,也称为张量(tensor)。例如,特征图可以具有三个维度,包括宽度,高度和深度。出于解释的目的,在以下描述中,假设宽度,高度和深度维度分别与X,Y和Z维度对齐。
在一个实施例中,DLA 100包括缓冲存储器150,缓冲存储器150还包括一个或多个缓冲器,例如卷积缓冲器151和共享缓冲器152。卷积缓冲器151存储输入数据和滤波器权重以供卷积引擎111使用,共享缓冲器152存储用于由多个或所有引擎111-114共享访问的中间输入和输出数据。在一个实施例中,缓冲器151和152可以包括静态随机存取内存(SRAM)设备,或其他易失性或非易失性内存设备。
DLA 100还包括控制器120,其将命令从主处理器130发送到引擎111-114。根据命令,引擎111-114从缓冲存储器150获取输入并执行神经网络计算。DLA 100经由I/O接口160从系统内存140加载(load)数据并将数据存储到系统内存140。从系统内存140加载的数据可以存储在缓冲存储器150中以便快速访问数据。根据在运行时由控制器120选择的区块方案和区块遍历方案从系统内存140加载数据。
DLA 100还包括监视器170,其可以由控制器120控制以监视和收集系统统计数据,包括DLA计算负载和对系统内存140的数据访问量(即,DLA 100和系统内存140之间的连接上的数据流量的数量)。收集的系统统计信息被发送到控制器120,用于选择区块方案和区块遍历方案,这将在后面详细描述。DLA 100还包括历史引擎180,其控制可重复使用数据在系统内存140和/或缓冲存储器150中的存储和加载。
在描述本发明的实施例之前,解释卷积运算中使用的一些术语是有帮助的。图2说明了卷积运算的一个例子。卷积引擎111使用一组滤波器220对输入特征图210执行卷积。每个滤波器220的高度和宽度通常小于输入特征图的高度和宽度。例如,滤波器可以由XY平面中的5×5个权重组成;也就是说,沿X维度的五个权重和沿Y维度的五个权重。输入特征图210(例如,输入图像)可以在X和Y维度中的每一个中具有数百或数千或更多像素。另外,输入特征图210具有尺寸C的深度(Z维度),其等于输入特征图210中的信道数。每个滤波器220在Z维度上具有相同数量(C)的权重或者等效地,每个滤波器220由C个通道或C个深度片(slice)组成。在卷积传递期间,滤波器220在XY平面中滑过输入特征图210,并且在任何位置处的权重和像素值之间计算点积。输出特征图230是输入图像的每个空间位置处的滤波器响应的表示。与N个滤波器220卷积将产生具有N个深度片的输出特征图230。N个深度片中的每一个对应于N个滤波器220中的一个。N个滤波器220可以被划分为一个或多个滤波器组(或等效地,权重组),例如图2的示例中的WG0,WG1和WG2。权重组的数量与输出过滤器映射230中的Z维度包括的分割(partition)的数量相同。
输入特征图210可以被划分为多个输入区块;例如,T0是一个输入区块。每个输入区块(例如,T0)包含C个深度片(slice)。图2示出了Z维度中具有长度C的方形长方体或矩形长方体形式的T0(虚线圆280)的等效表示。对于每个输入区块,卷积引擎111应用N个滤波器220以产生相应的N个输出区块;例如,输出区块t0是在T0上应用一个滤波器(例如,滤波器290)的结果。这些对应的N个输出区块位于输出特征图230的相应N个深度片中。
在一个实施例中,输入区块可以彼此重叠,并且每个区块被分成相等大小的非重叠块(block)。块(例如,块211)是计算的基本单元。例如,引擎(例如,卷积引擎111)可以包括乘法和累加(MAC,Multiply-And-Accumulate)电路的数组,并且块的大小可以等于MAC数组的大小。因此,可以在引擎内并行地执行对块的运算。输入区块的大小可以由缓冲器的大小(例如,卷积缓冲器151)确定。例如,整个输入区块应该适合卷积缓冲器151。在一个实施例中,程序员可以在设计时运行编译程序以基于在DLA 100上可用硬件组件和要运行的软件应用程序的预期特征来确定多个区块大小。
图3A和图3B示出了根据一些实施例的输入特征图310中的重叠输入区块的示例。输入特征图310可以是图1中的卷积引擎111的输入。在两个示例中,输入特征图310被划分为XY平面中的4个重叠输入区块;例如,T0-T3。如前所述,卷积引擎111在输入区块上运算,一次一个区块,以产生输出特征图。卷积引擎111可以通过首先遍历X维度或首先遍历Y维度来遍历输入特征图中的区块。
图3A突出显示了根据一个实施例的T0和T1之间的重叠部分T01。如果卷积引擎111首先遍历X维度中的输入区块(即,以T0,T1,T2,T3的顺序),则仅需要从系统内存140取出T01一次,作为卷积计算中T0的一部分使用和T1的一部分重新使用。图3B突出显示了T0和T2之间的重叠部分T02。如果卷积引擎111首先遍历Y维度中的输入区块(即,以T0,T2,T1,T3的顺序),则仅需要从系统内存140取出T02一次,作为卷积计算中T0的一部分使用和T2的一部分重新使用。虽然T01(在图3A中)也可以与图3B中的Y维度优先区块遍历一起重复使用,但是在一个实施例中,卷积缓冲器151具有有限的空间并且只能存储连续遍历的输入区块的重叠部分。卷积缓冲器151的存储内容的示例在图4A和图4B中示出。
图4A和图4B示出了根据一些实施例的卷积缓冲器151的存储内容。卷积缓冲器151在Buf_Tile 410中存储一个或多个输入区块并在Buf_WG 420中存储过滤权重以供卷积引擎111使用。由于输入区块一次被处理一个块,因此Buf_Tile 410可以实现为环形缓冲器,使得第一区块中使用的块被第二区块中的新块覆盖。在图4A中,卷积缓冲器151存储第一输入区块T0(包括重叠部分T01)和三个权重组(例如,WG0,WG1和WG2)中的滤波器权重。当使用图3A的示例首先遍历X维度时,卷积缓冲器151还可以存储第二输入区块(例如,T1)的一些或全部非重叠部分。将T01存储在卷积缓冲器151中作为T0和T1的一部分不仅节省了缓冲空间,而且还减少了系统内存总在线的数据流量。如图4B所示,当逐块处理T0时,T1的块可以被加载到卷积缓冲器151中的部分430中以覆盖经处理的T0块。或者,当已经处理了所有T0块时,可以将T1加载到部分430中。
卷积缓冲器151还可以以权重组(例如,WG0,WG1和WG2)存储滤波器权重。每个权重组包含用于卷积运算的滤波器子集的权重(例如,根据图2中的示例的三个滤波器的权重)。每个权重组对应于输出特征图中的Z维部分。返回参考图2中的示例,WG0中的滤波器权重被应用于输入区块T0以在输出特征图230中产生第一组输出区块(即,输出特征图230的前三个深度片中的输出区块。类似地,WG1中的滤波器权重被应用于输入区块T0以产生第二组输出区块,并且WG2中的滤波器权重被应用于输入区块T0以产生第三组输出区块(其中每组输出区块由不同的填充图案或颜色表示)。
为了优化计算速度,最好将所有权重组加载到卷积缓冲器151中。然而,卷积缓冲器151中的有限空间在输入区块存储和权重组存储之间进行权衡。在所有权重组存储在卷积缓冲器151中的第一实施例中,输入区块可以被重新用于具有所有权重组的卷积,以在相应的XY位置中沿Z维度生成所有输出区块。因此,如果卷积首先在Z维度上进行,则相同的输入区块可以仅从系统内存140加载到卷积缓冲器151中一次,并且可以有效地计算相应的输出区块。在第二实施例中,卷积引擎111首先遍历XY平面中的输入区块(例如,在所有输入区块和WG0之间执行卷积,然后是所有输入区块和WG1,以及所有输入区块和WG2等),然后可以将更多缓冲空间分配给输入区块,并且可以将少于所有权重组存储在卷积缓冲器151中。
因此,区块遍历方案可以是确定卷积缓冲器151中的输入区块存储和权重组存储的相对大小的因素。当首先在XY平面中遍历卷积输入区块(即,首先是X维度,或者首先是Y维度)时,可以更充分地利用卷积输出区块相关的跨区块数据重用。例如,如第二实施例中那样,当卷积输入区块首先在XY平面中遍历时,池化引擎(pooling engine)113可以更有效地重用卷积输出区块。然而,与第一实施例中一样,当生成沿着Z维度对应于输入区块的所有输出区块时(即,当首先在Z维度中遍历/生成卷积输出区块时),可以更有效地执行卷积计算,并且可以更好地重用输入区块。在第一实施例和第二实施例中,Buf_Tile 410可以实现为环形缓冲器,而不管存储在Buf_WG 420中的权重组的数量。
在一个实施例中,图1中的控制器120可以为神经网络运算的一个或多个层动态地选择区块方案和区块遍历方案。例如,每个卷积层可以使用Lx和Ly的组合作为区块方案,其中Lx和Ly分别是输入特征图的X和Y维度中的区块的数量。区块遍历方案指定在X,Y和Z维度中生成输出特征图中的输出区块的顺序。如上所述,设计时的神经网络设计者可以运行编译程序来确定多个选项。控制器120可以在运行时选择神经网络层可提供优化性能的选项之一。在一个实施例中,控制器120可以基于由图1中的监视器170收集的系统统计数据进行选择。
在一个实施例中,图1中的监视器170监视并收集运行时系统统计信息,并将收集的信息提供给控制器120。系统统计信息可包括但不限于DLA 100中每个引擎的计算负载,系统内存总在线的数据流量,访问过滤器权重导致的内存延迟,以及访问区块导致的内存延迟。然后,控制器120相应地选择区块方案和区块遍历方案。例如,当由访问过滤器权重引起的内存延迟长于阈值时,控制器120可以选择重用权重,否则可以选择重用输入区块。
图5示出了根据一个实施例的池化引擎113的输入的示例。该示例中的卷积引擎111将滤波器520应用于输入特征图510以产生输出,这里称为中间特征图530,因为卷积输出变为池化引擎113的输入。中间特征图530在Z维度中具有两个部分:Z0和Z1,其中Z0和Z1分别对应于将输入特征图510与权重组WG0和WG1卷积。通过将输入区块与滤波器520之一进行卷积来生成中间特征图530中的每个区块(这里称为中间区块);例如,通过输入区块T0与滤波器F0的卷积生成t0。
同一个XY平面中的中间区块可以彼此重叠。重叠的区块部分可以计算一次并由其他中间区块重复使用。池化引擎113的输出被称为输出特征图540。输出特征图540中的输出区块p0是中间区块t0的下采样版本。在备选实施例中,中间特征图530可以是激活引擎112的输出,其在卷积引擎111的输出上运算。
图6示出了根据一个实施例的中间特征图530中的跨区块数据重用的示例。在该示例中,首先在X维度中遍历区块,并且示出中间特征图530的一个深度片(在XY平面中)包含九个重叠的区块t0-t8。还参考图1,当卷积引擎111在(a)中生成t0(具有粗边界线的左上方)时,历史引擎180刷新(即,存储)资料610,其是t0,t1和t3重叠的部分(以斜线图示)。数据610可以存储在存储位置中,该存储位置可以在共享缓冲器152,系统内存140或两者的组合中。例如,数据610与t1重叠的部分可以存储在共享缓冲器152中,因为池化引擎113在t0之后立即处理t1,并且数据610与t3重叠的部分可以存储在系统内存140中,因为在t0之后不立即处理t3。然后,池化引擎113对t0执行池化运算。
为了使池化引擎113在(b)中对t1执行池化,历史引擎180从存储的位置加载与t0重叠的t1的第一部分620(以交叉阴影线图案示出)。由于卷积引擎111已经在(a)中计算了t1的第一部分620,因此卷积引擎111不必在(b)中再次计算t1的第一部分620。因此,卷积引擎111可以计算尺寸减小的t1(即,没有部分620的t1)以节省计算工作量。然后,池化引擎113对t1执行池化运算,其通过组合缩小尺寸的t1和部分620而形成。历史引擎180存储与t2和t4重叠的t1的第二部分630(以斜线图案示出)在存储的位置以供以后重用。数据610,620和630也称为边界区块部分或边界数据。以与区块t0和t1类似的方式继续运算区块t2-t8。
在图6的示例中,对于除了区块遍历的顺序的第一区块(t0)和最后区块(t8)之外的中间特征图530中的每个区块,历史引擎180执行加载和存储。对于给定区块,历史引擎180加载先前已由池化引擎113处理的一个或多个相邻区块(即,给定区块的邻居)的第一组边界资料。历史引擎180还存储给定区块的第二组边界数据,以供池化引擎113尚未处理的一个或多个相邻区块。边界数据的大小可能取决于区块大小,卷积滤波器大小等。使用t4作为在(e)中给定区块,加载先前已由池化引擎113处理的一个或多个相邻区块(即,t4的邻居t1和t3)的第一组边界资料(也即,加载与t1和t3重叠的t4的第一部分(以交叉阴影线图案示出))。由于卷积引擎111已经在(e)之前计算了t4的第一部分,因此卷积引擎111不必在(e)中再次计算t4的第一部分。因此,卷积引擎111可以计算尺寸减小的t4(即,没有第一部分的t4)以节省计算工作量。然后,池化引擎113对t4执行池化运算,其通过组合缩小尺寸的t4和第一部分620而形成。对t4执行池化运算之后,历史引擎180存储给定区块t4的第二组边界资料(也即,图6中以斜线图案示出的t4与t5重叠的部分及t4与t7的重叠部分),以供池化引擎113尚未处理的一个或多个相邻区块(也即,t5和t7)重用。
图7是示出根据一个实施例的用于在深度学习加速器中对第一引擎的输出区块和第二引擎的输入区块执行跨区块数据重用的方法700的流程图。在一个实施例中,方法700可以由神经网络处理器(例如,图1的DLA 100)执行。
当DLA 100在步骤710从第一存储位置获取由第一引擎生成的一个或多个在先区块的第一组边界数据时,方法700开始。在步骤720,DLA 100通过将第一组边界数据合并到由第一引擎生成的当前区块中来形成第二引擎的输入区块。在步骤730,第二引擎对输入区块进行运算。在步骤740,DLA 100将输入区块的第二组边界数据存储在第二存储位置中。在替代实施例中,步骤730可以与步骤740同时或在步骤740之后执行。
每个特征图中的区块尺寸可以是均匀的或不均匀的。在一些实施例中,特征图可以包含不同大小的区块。跨越神经网络的不同层的区块可以具有不同的大小。关于输入区块和输出区块的上述数据重用适用于均匀或不均匀的任何区块尺寸。
图8是示出根据一个实施例的用于执行神经网络计算的基于区块的执行的方法800的流程图。在一个实施例中,方法800可以由神经网络处理器(例如,图1的DLA 100)执行。
当DLA中的卷积引擎从DLA内的缓冲存储器获取输入特征图的第一输入区块时,方法800开始于步骤810。在步骤820,卷积引擎对第一输入区块执行卷积运算,以生成中间特征图的中间区块。在步骤830,卷积引擎通过缓冲存储器将中间区块传递给DLA中的第二引擎。缓冲存储器存储第一输入区块和至少一个第二输入区块,至少一个第二输入区块与缓冲存储器中的第一输入区块重叠。在一个实施例中,第二引擎对中间区块执行第二运算,而卷积引擎对输入特征图的第二输入区块执行卷积运算。在一个实施例中,第二引擎在中间区块上执行第二运算,同时卷积引擎对输入特征图的第二输入区块执行卷积运算。
在一个实施例中,在非暂时性计算器可读介质上存储指令,当在系统的一个或多个处理器上执行该指令时,该指令使系统执行图7的方法700和图8的方法800。上面已经参考图1描述了该系统的示例。
已经参考图1的示例性实施例描述了图7和图8的流程图的运算。然而,应该理解,图7和图8的流程图的运算可以通过除了参考图1讨论的实施例之外的本发明的实施例来执行,并且参考图1讨论的实施例可以执行与参考流程图所讨论的运算不同的运算。虽然图7和图8的流程图示出了由本发明的某些实施例执行的特定运算顺序,但是应该理解,这种顺序是示例性的(例如,替代实施例可以以不同顺序执行运算,组合某些运算,重叠某些运算等)。
在一些实施例中,术语“大约”,“大约”和“基本上”可以用于表示目标值的±10%以内。术语“大约”,“大约”和“基本上”可以包括目标值。应当理解,术语“大约”,“大约”和“基本上”可以用于指代小于目标值的±10%的范围,例如:目标值的±5%,±2.5%目标值的±1%,目标值的±1%。
在权利要求中使用诸如“第一”,“第二”,“第三”等的序数术语来修改权利要求要素本身并不意味着一个个权利要求要素优先于另一个个或者时间的任何优先权,优先权或顺序。执行方法的行为的顺序,但仅用作标签以将具有特定名称的一个个权利要求元素与具有相同名称的另一个个元素(但是用于使用序数术语)区分,以区分权利要求元素。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。
Claims (19)
1.一种神经网络计算加速器,其特征在于,包括:
多个硬件引擎,包括卷积引擎和至少一个第二引擎,每个硬件引擎包括执行神经网络运算的电路;和
加速器内的缓冲存储器,用于存储输入特征图的第一输入区块和至少一个第二输入区块,其中所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠;
其中所述卷积引擎运算以从所述缓冲存储器获取所述第一输入区块,对所述第一输入区块执行卷积运算以生成中间特征图的中间区块,并通过所述缓冲存储器将所述中间区块传递给所述第二引擎。
2.如权利要求1所述的加速器,其特征在于,当所述卷积引擎在至少一个所述第二输入区块上执行所述卷积运算时,所述第二引擎在所述中间区块上执行第二运算。
3.如权利要求1所述的加速器,其特征在于,所述缓冲存储器包括卷积缓冲器,用于由卷积引擎访问以获取输入,所述卷积缓冲器包括用于存储输入特征图的一个或多个输入区块的第一部分,以及用于存储卷积运算的一组或多组滤波器权重的第二部分。
4.如权利要求3所述的加速器,其特征在于,所述卷积缓冲器的第一部分是环形缓冲器。
5.如权利要求1所述的加速器,其特征在于,所述卷积引擎在生成所述中间区块时,无需生成第一边界资料;
所述加速器还包括:历史引擎用于:
存储所述第一边界数据,当所述第二引擎对所述中间区块执行运算时,加载所述第一边界数据给所述第二引擎作为所述中间区块的一部分重新使用,其中所述第一边界数据为所述中间特征图中所述中间区块与一个或多个第一相邻区块的重叠部分且所述一个或多个第一相邻区块已被所述卷积引擎生成和已被所述第二引擎处理;和
当所述第二引擎对所述中间区块执行运算后存储第二边界数据,以便作为一个或多个第二相邻区块的一部分重新使用,
其中所述第二边界数据为所述中间特征图中所述一个或多个第二相邻区块与所述中间区块的重叠部分,且所述一个或多个第二相邻区块尚未被所述卷积引擎生成和尚未被所述第二引擎处理。
6.如权利要求1-5中任一项所述的加速器,其特征在于,所述第二引擎是对所述中间区块执行池化运算的池化引擎。
7.如权利要求1-5中任一项所述的加速器,其特征在于,所述硬件引擎还包括可运算以执行逐元数学计算的激活引擎,并且其中所述中间区块进一步为所述激活引擎的输出,并且所述第二引擎是池化引擎以在所述激活引擎的输出上执行池化运算。
8.如权利要求1所述的加速器,其特征在于,所述输入特征图和所述中间特征图中的一个或多个包含非均匀尺寸的区块。
9.如权利要求1所述的加速器,其特征在于,还包括:
监视器以监视和收集系统统计信息,所述系统统计信息包括所述加速器的计算负载和耦合到所述加速器的系统内存的数据访问量;和
控制器,用于选择区块方案,所述区块方案基于收集的所述系统统计信息指定用于在XY平面中平铺所述输入特征图的一个或多个尺寸,其中X与所述输入特征图的宽度维度对齐,Y与所述输入特征图的高度维度对齐。
10.如权利要求9所述的加速器,其特征在于,所述控制器还用于选择区块遍历方案,所述区块遍历方案基于所收集的系统统计指定生成X,Y和Z维度的区块的顺序,其中Z与所述输出特征图的深度维度对齐。
11.如权利要求10所述的加速器,其特征在于,所述控制器还可用于在运行时为所述神经网络运算的一个或多个层选择所述区块方案和所述区块遍历方案。
12.一种用于神经网络计算的加速器执行的方法,其特征在于,包括:
通过加速器中的卷积引擎获取来自加速器内的缓冲存储器的输入特征图的第一输入区块;
对所述第一输入区块执行卷积运算以生成中间特征图的中间区块;和
通过缓冲存储器将所述中间区块传递到加速器中的第二引擎;
其中所述缓冲存储器存储第一输入区块和至少一个第二输入区块,所述至少一个第二输入区块与所述第一输入区块在所述缓冲存储器中重叠。
13.如权利要求12所述的方法,其特征在于,还包括:
当卷积引擎对输入特征图的至少一个第二输入区块执行卷积运算时,由第二引擎执行对中间区块的第二运算。
14.如权利要求12所述的方法,其特征在于,所述缓冲存储器包括卷积缓冲器,用于由卷积引擎访问以获取输入,所述卷积缓冲器包括用于存储输入特征图的一个或多个输入区块的第一部分,以及用于存储卷积运算的一组或多组滤波器权重的第二部分。
15.如权利要求14所述的方法,其特征在于,所述卷积引擎在生成所述中间区块时,无需生成第一边界资料;
所述方法还包括:使用历史引擎执行如下操作:
存储所述第一边界数据,当所述第二引擎对所述中间区块执行运算时,加载第一边界数据给所述第二引擎作为所述中间区块的一部分重新使用,其中所述第一边界数据为所述中间特征图中所述中间区块与一个或多个第一相邻区块的重叠部分且所述一个或多个第一相邻区块已被所述卷积引擎生成和已被所述第二引擎处理;和
当所述第二引擎对所述中间区块执行运算后存储第二边界数据,以便作为一个或多个第二相邻区块的一部分重新使用,
其中所述第二边界数据为所述中间特征图中所述一个或多个第二相邻区块与所述中间区块的重叠部分,且所述一个或多个第二相邻区块尚未被所述卷积引擎生成和尚未被所述第二引擎处理。
16.如权利要求12-15中任一项所述的方法,其特征在于,所述中间区块进一步为激活引擎的输出,并且所述第二引擎是池化引擎以在所述激活引擎的输出上执行池化运算。
17.如权利要求12所述的方法,其特征在于,还包括:
监视和收集系统统计信息,所述系统统计信息包括加速器的计算负载和耦合到加速器的系统内存的数据访问量;和
选择区块方案,该方案指定用于基于收集的系统统计信息在XY平面中平铺输入特征图的区块大小,其中X与所述输入特征图的宽度维度对齐,Y与所述输入特征图的高度维度对齐。
18.如权利要求17所述的方法,其特征在于,还包括:
选择区块遍历方案,该方案基于收集的系统统计信息指定在X,Y和Z维度中生成区块的顺序,其中Z与所述输出特征图的深度维度对齐。
19.如权利要求18所述的方法,其特征在于,在运行时为所述神经网络的一个或多个层选择所述区块方案和所述区块遍历方案。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862618102P | 2018-01-17 | 2018-01-17 | |
US62/618,102 | 2018-01-17 | ||
US201862621614P | 2018-01-25 | 2018-01-25 | |
US62/621,614 | 2018-01-25 | ||
US16/246,884 | 2019-01-14 | ||
US16/246,884 US11436483B2 (en) | 2018-01-17 | 2019-01-14 | Neural network engine with tile-based execution |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046702A true CN110046702A (zh) | 2019-07-23 |
CN110046702B CN110046702B (zh) | 2023-05-26 |
Family
ID=67214041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910036553.5A Active CN110046702B (zh) | 2018-01-17 | 2019-01-15 | 神经网络计算加速器及其执行的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11436483B2 (zh) |
CN (1) | CN110046702B (zh) |
TW (1) | TWI748151B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929860A (zh) * | 2019-11-07 | 2020-03-27 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
CN112116071A (zh) * | 2020-09-07 | 2020-12-22 | 地平线(上海)人工智能技术有限公司 | 神经网络计算方法、装置、可读存储介质以及电子设备 |
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
WO2021248540A1 (zh) * | 2020-06-11 | 2021-12-16 | 杭州知存智能科技有限公司 | 数据加载电路和方法 |
CN115809092A (zh) * | 2023-02-13 | 2023-03-17 | 湖南大学 | 基于mt3000异构处理器的深度学习计算库实现方法 |
US11977969B2 (en) | 2020-06-11 | 2024-05-07 | Hangzhou Zhicun Intelligent Technology Co., Ltd. | Data loading |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
WO2019100036A1 (en) * | 2017-11-20 | 2019-05-23 | The Regents Of The University Of California | Memristive neural network computing engine using cmos-compatible charge-trap-transistor (ctt) |
US11200490B2 (en) * | 2018-05-04 | 2021-12-14 | Apple Inc. | Processing group convolution in neural network processor |
WO2019231254A1 (en) * | 2018-05-30 | 2019-12-05 | Samsung Electronics Co., Ltd. | Processor, electronics apparatus and control method thereof |
US11676371B2 (en) * | 2018-08-17 | 2023-06-13 | Fotonation Limited | Apparatus for processing a neural network |
US11341373B1 (en) * | 2019-03-11 | 2022-05-24 | Apple Inc. | End-to-end training of a machine learning node that interfaces with a fixed function node |
US11797345B2 (en) * | 2019-04-30 | 2023-10-24 | Prakash C R J Naidu | Hardware accelerator for efficient convolution processing |
US11494608B2 (en) * | 2019-08-14 | 2022-11-08 | Intel Corporation | Methods and apparatus to tile walk a tensor for convolution operations |
US20210103803A1 (en) * | 2019-10-08 | 2021-04-08 | Apple Inc. | Multi-Mode Planar Engine For Neural Processor |
US11513799B2 (en) * | 2019-11-04 | 2022-11-29 | Apple Inc. | Chained buffers in neural network processor |
GB2589382B (en) * | 2019-11-29 | 2023-02-22 | Imagination Tech Ltd | Hardware implementation of a neural network |
GB2614621B (en) * | 2019-11-29 | 2024-02-21 | Imagination Tech Ltd | Hardware implementation of a neural network |
KR20220045026A (ko) * | 2019-12-19 | 2022-04-12 | 구글 엘엘씨 | 신경망 계산 가속화를 위한 하드웨어 회로 |
US11599780B2 (en) * | 2020-03-02 | 2023-03-07 | Apple Inc. | Asynchronous task execution for neural processor circuit |
US11620503B2 (en) * | 2020-03-18 | 2023-04-04 | Arm Limited | Neural network processing |
CN111523642B (zh) * | 2020-04-10 | 2023-03-28 | 星宸科技股份有限公司 | 用于卷积运算的数据重用方法、运算方法及装置、芯片 |
US11501151B2 (en) * | 2020-05-28 | 2022-11-15 | Arm Limited | Pipelined accumulator |
US20220036158A1 (en) * | 2020-07-29 | 2022-02-03 | Apple Inc. | Task skew management for neural processor circuit |
CN112491555B (zh) * | 2020-11-20 | 2022-04-05 | 山西智杰软件工程有限公司 | 医疗电子签名的处理方法及电子设备 |
US11665363B2 (en) * | 2020-11-26 | 2023-05-30 | Electronics And Telecommunications Research Institute | Method, apparatus, system and computer-readable recording medium for feature map information |
US11558628B2 (en) * | 2020-12-14 | 2023-01-17 | Nokia Technologies Oy | Caching and clearing mechanism for deep convolutional neural networks |
TWI797985B (zh) * | 2021-02-10 | 2023-04-01 | 國立成功大學 | 卷積運算的執行方法 |
US11227207B1 (en) | 2021-03-29 | 2022-01-18 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—section boundaries |
US11263170B1 (en) * | 2021-03-29 | 2022-03-01 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—padding before tiling, location-based tiling, and zeroing-out |
US11232360B1 (en) | 2021-03-29 | 2022-01-25 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—weight gradient calculation |
US11195080B1 (en) * | 2021-03-29 | 2021-12-07 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—tiling configuration |
US11250061B1 (en) | 2021-03-29 | 2022-02-15 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—read-modify-write in backward pass |
WO2022269928A1 (ja) * | 2021-06-25 | 2022-12-29 | 日本電信電話株式会社 | 畳み込みニューラルネットワーク推論処理装置、及び畳み込みニューラルネットワーク推論処理方法 |
WO2022266984A1 (en) * | 2021-06-25 | 2022-12-29 | Nvidia Corporation | Memory management for overlap data between tiles of neural networks |
CN114089911B (zh) * | 2021-09-07 | 2024-01-05 | 上海新氦类脑智能科技有限公司 | 基于数据复用的块切分拼接处理方法、装置、设备及介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101663829A (zh) * | 2006-09-29 | 2010-03-03 | 联发科技股份有限公司 | 联合检测硬件加速器的架构 |
CN101675633A (zh) * | 2007-03-02 | 2010-03-17 | 高通股份有限公司 | 用在中继器发射机漏泄消除系统中的时间均衡器权重的闭合形式计算 |
TW201135475A (en) * | 2010-04-09 | 2011-10-16 | Univ Nat Changhua Education | Monitoring system and method for short-time discrete wavelet transform and neural network |
US20120244949A1 (en) * | 2011-03-24 | 2012-09-27 | Peter Matthew Redling | Interactivity Platform for Multimedia Transmission, Broadcast TV, Cable, Radio, and Live Events |
CN105892989A (zh) * | 2016-03-28 | 2016-08-24 | 中国科学院计算技术研究所 | 一种神经网络加速器及其运算方法 |
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
US20170103299A1 (en) * | 2015-10-07 | 2017-04-13 | Altera Corporation | Method and Apparatus for Implementing Layers on a Convolutional Neural Network Accelerator |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
CN107341544A (zh) * | 2017-06-30 | 2017-11-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
US20180011865A1 (en) * | 2015-07-27 | 2018-01-11 | Sas Institute Inc. | Distributed data set encryption and decryption |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017142712A1 (en) | 2016-02-18 | 2017-08-24 | Craig Peterson | 3d system including a marker mode |
US11402213B2 (en) * | 2016-03-30 | 2022-08-02 | Intel Corporation | Techniques for determining a current location of a mobile device |
US11010431B2 (en) * | 2016-12-30 | 2021-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD |
US11086967B2 (en) * | 2017-03-01 | 2021-08-10 | Texas Instruments Incorporated | Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA) |
-
2019
- 2019-01-14 US US16/246,884 patent/US11436483B2/en active Active
- 2019-01-15 CN CN201910036553.5A patent/CN110046702B/zh active Active
- 2019-01-15 TW TW108101488A patent/TWI748151B/zh active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101663829A (zh) * | 2006-09-29 | 2010-03-03 | 联发科技股份有限公司 | 联合检测硬件加速器的架构 |
CN101675633A (zh) * | 2007-03-02 | 2010-03-17 | 高通股份有限公司 | 用在中继器发射机漏泄消除系统中的时间均衡器权重的闭合形式计算 |
TW201135475A (en) * | 2010-04-09 | 2011-10-16 | Univ Nat Changhua Education | Monitoring system and method for short-time discrete wavelet transform and neural network |
US20120244949A1 (en) * | 2011-03-24 | 2012-09-27 | Peter Matthew Redling | Interactivity Platform for Multimedia Transmission, Broadcast TV, Cable, Radio, and Live Events |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
US20180011865A1 (en) * | 2015-07-27 | 2018-01-11 | Sas Institute Inc. | Distributed data set encryption and decryption |
US20170103299A1 (en) * | 2015-10-07 | 2017-04-13 | Altera Corporation | Method and Apparatus for Implementing Layers on a Convolutional Neural Network Accelerator |
CN105892989A (zh) * | 2016-03-28 | 2016-08-24 | 中国科学院计算技术研究所 | 一种神经网络加速器及其运算方法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106447034A (zh) * | 2016-10-27 | 2017-02-22 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107341544A (zh) * | 2017-06-30 | 2017-11-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
CN107437110A (zh) * | 2017-07-11 | 2017-12-05 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
Non-Patent Citations (1)
Title |
---|
MAURICE PEEMEN 等: "Memory-Centric Accelerator Design for Convolutional Neural Networks", 《IEEE》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929860A (zh) * | 2019-11-07 | 2020-03-27 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
WO2021248540A1 (zh) * | 2020-06-11 | 2021-12-16 | 杭州知存智能科技有限公司 | 数据加载电路和方法 |
CN113807506A (zh) * | 2020-06-11 | 2021-12-17 | 杭州知存智能科技有限公司 | 数据加载电路和方法 |
US11977969B2 (en) | 2020-06-11 | 2024-05-07 | Hangzhou Zhicun Intelligent Technology Co., Ltd. | Data loading |
CN112116071A (zh) * | 2020-09-07 | 2020-12-22 | 地平线(上海)人工智能技术有限公司 | 神经网络计算方法、装置、可读存储介质以及电子设备 |
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
CN115809092A (zh) * | 2023-02-13 | 2023-03-17 | 湖南大学 | 基于mt3000异构处理器的深度学习计算库实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190220742A1 (en) | 2019-07-18 |
US11436483B2 (en) | 2022-09-06 |
TWI748151B (zh) | 2021-12-01 |
TW201933192A (zh) | 2019-08-16 |
CN110046702B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046702A (zh) | 神经网络计算加速器及其执行的方法 | |
KR102606825B1 (ko) | 뉴럴 네트워크 모델을 변형하는 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법 | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
TW201824096A (zh) | 執行卷積計算的系統及方法 | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
TWI811291B (zh) | 深度學習加速器及加快深度學習操作的方法 | |
CN110458280B (zh) | 一种适用于移动端的卷积神经网络加速方法及系统 | |
US20200257972A1 (en) | Method and apparatus for determining memory requirement in a network | |
CN108073977A (zh) | 卷积运算装置及卷积运算方法 | |
CN109634904A (zh) | Slam运算装置和方法 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
WO2019184888A1 (zh) | 一种基于卷积神经网络的图像处理的方法和装置 | |
CN115249315B (zh) | 面向异构计算设备的深度学习图像分类方法及装置 | |
CN108875914B (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
CN111539526A (zh) | 一种神经网络卷积的方法和设备 | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN116991560A (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
CN111831359A (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111523642A (zh) | 用于卷积运算的数据重用方法、运算方法及装置、芯片 | |
CN113655986B (zh) | 一种基于numa亲和性的fft卷积算法并行实现方法及系统 | |
CN111124626A (zh) | 一种众核系统及其数据处理方法和处理装置 | |
CN112817898A (zh) | 数据传输方法、处理器、芯片及电子设备 | |
CN117934532B (zh) | 一种图像边缘检测并行优化方法及系统 | |
CN110008028A (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 |