CN112711818B - 用于机器学习推理的超管道加速器 - Google Patents
用于机器学习推理的超管道加速器Info
- Publication number
- CN112711818B CN112711818B CN202011146029.2A CN202011146029A CN112711818B CN 112711818 B CN112711818 B CN 112711818B CN 202011146029 A CN202011146029 A CN 202011146029A CN 112711818 B CN112711818 B CN 112711818B
- Authority
- CN
- China
- Prior art keywords
- ith
- layer
- filter
- values
- processing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/14—Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Geometry (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
一种神经网络的管道推理的方法,其中,神经网络包括第i层(i是大于零的整数)、第(i+1)层和第(i+2)层,所述方法包括处理第i层的第一组第i值以生成第(i+1)层的第(i+1)值,确定第(i+1)值的数量足以进行处理,并且响应于所述确定,在同时处理第i层的第二组第i值的同时,处理所述第(i+1)值以生成用于第(i+2)层的输出值。
Description
相关申请的交叉引用
本申请要求优先于2019年10月25日提交的美国第62/926,292号临时申请(“ULTRAPIPELINED PIM BASED ACCELERATOR FOR ML INFERENCE(用于ML推理的基于超管道的PIM的加速器)”)和2020年4月2日提交的第16/838971号美国申请(“ULTRA PIPELINEDACCELERATOR FOR MACHINE LEARNING INFERENCE(用于机器学习推理的超管道加速器)”),其全部内容通过引用并入本文中。
本申请还涉及题为“BATCH SIZE PIPELINED PIM ACCELERATOR FOR VISIONINFERENCE ON MULTIPLE IMAGES(用于多图像视觉推理的批量大小管道的PIM加速器)”的美国专利申请,该申请主张于2019年10月29日提交的美国临时专利申请第62/927,544号(“BATCH SIZE PIPELINED PIM ACCELERATOR FOR VISION INFERENCE ON MULTIPLEIMAGES(用于多幅图像的视觉推理的批量管道PIM加速器)”)的优先权和利益,其全部内容在此通过引用明确并入。
技术领域
本公开的实施例的方面通常与机器学习相关。
背景技术
大数据驱动的机器学习(ML)应用的爆炸式增长结合摩尔定律的放缓的前景,促使人们寻找替换的特定于应用的硬件结构。内存内处理(Processing-in-memory,PIM)的重点是将计算放在内存比特单元中,它已经被用来加速ML推理应用。ML应用程序和网络需要有效地映射到底层硬件结构(fabric)上,以获得最高的功耗性能。
在本背景技术部分中公开的上述信息仅仅是为了增强对本发明的理解,因此它可能包含不构成本领域技术人员已经知道的现有技术的信息。
发明内容
本公开的实施例的方面涉及一种用于将机器学习(ML)应用以管道方式映射到基于内存内处理(PIM)的加速器上的系统和方法。根据一些实施例,管道包括层间管道、层内管道和/或两者的组合。此外,各种实施例的管道方案允许在一个时钟周期内同时为多个图像生成多个输出。
本公开的实施例的方面涉及基于混合信号PIM的可配置硬件加速器,其中机器学习问题以管道方式映射到PIM子阵列上。
本公开的实施例的方面涉及基于混合信号PIM的可配置硬件加速器,其接收多个图像作为输入以用于识别。多个图像的输入激活以管道方式接收到加速器上。
根据本发明的一些实施例,提供了一种包括多个层的神经网络的管道推理的方法,所述多个层包括第i层(i是大于零的整数)、第(i+1)层和第(i+2)层,该方法包括:处理第i层的第一组第i值以生成第(i+1)层的第(i+1)值;确定第(i+1)值的数量足以进行处理;并且响应于所述确定,在同时处理第i层的第二组第i值的同时,处理所述第(i+1)值以生成用于第(i+2)层的输出值。
在一些实施例中,第一组第i值包括图像的像素值。
在一些实施例中,第一组第i值包括由神经网络的前一层生成的特征图(featuremap)的值。
在一些实施例中,第i层的第一组第i值的处理包括:将与第i层相关联的第i过滤器应用于第i层的第一组第i值,以生成第(i+1)层的第(i+1)值。
在一些实施例中,第i过滤器是p x q矩阵的形式的滑动卷积过滤器,其中p和q是大于零的整数。
在一些实施例中,应用第i过滤器包括:在第i过滤器和第一组第i值中与第i过滤器重叠的一些之间执行矩阵乘法运算。
在一些实施例中,确定(i+1)值的数量足以用于处理包括确定与(i+1)层相关联的第(i+1)过滤器具有由第(i+1)过滤器操作的每个单位的数据。
在一些实施例中,确定第(i+1)值的数量是否足以用于处理基于由如下中的至少一个所确定的时钟周期:与第i层相关联的第i过滤器的大小、与第(i+1)层相关联的第(i+1)过滤器的大小、第(i+1)过滤器的步长以及与第i层的第一组第i值和第二组第i值相对应的图像或特征图的大小。
在一些实施例中,对第i层的第一组第i值的处理包括:将与第i层相关联的第一第i过滤器应用于第一组第i值的第一部分,以生成用于第(i+1)层的第(i+1)值的第一部分;以及在应用第一第i过滤器的同时,将与第i层相关联的第二第i过滤器应用于第一组第i值的第二部分,以生成第(i+1)层的第(i+1)值的第二部分。
在一些实施例中,第一组第i值的第一部分和第二部分具有重叠值。
在一些实施例中,第一组第i值的第一部分和第二部分不具有重叠值。
在一些实施例中,第一和第二第i过滤器是具有相同步长和相同维度的滑动卷积过滤器。
在一些实施例中,第一和第二第i过滤器包括相同的权重值。
根据本发明的一些实施例,提供了一种用于包括多个层的神经网络的管道推理的系统,所述多个层包括第i层(i是大于零的整数)、第(i+1)层和第(i+2)层,该系统包括:处理器;以及处理器本地的处理器存储器,其中,处理器存储器上存储有指令,当所述指令被所述处理器执行时,使得所述处理器执行:处理第i层的第一组第i值,以生成第(i+1)层的第(i+1)值;将第(i+1)值的数量确定为足以进行处理;和响应于该确定,在同时处理第i层的第二组第i值的同时,处理第(i+1)值以生成用于第(i+2)层的输出值。
在一些实施例中,第i层的第一组第i值的处理包括:将与第i层相关联的第i过滤器应用于第i层的第一组第i值,以生成第(i+1)层的第(i+1)值。
在一些实施例中,第(i+1)值的数量确定为足以用于处理基于由如下中的至少一个所确定的时钟周期:与所述第i层相关联的第i过滤器的大小、与所述第(i+1)层相关联的第(i+1)过滤器的大小、第(i+1)过滤器的步长、以及对应于所述第i层的第一组第i值和第二组第i值的图像或特征图的大小。
在一些实施例中,第i层的第一组第i值的处理包括:将与第i层相关联的第一第i过滤器应用于第一组第i值的第一部分,以生成第(i+1)层的第(i+1)值的第一部分;和在应用第一第i过滤器的同时,将与第i层相关联的第二第i过滤器应用于第一组第i值的第二部分,以生成第(i+1)层的第(i+1)值的第二部分。
根据本发明的一些实施例,提供了一种被配置为实现神经网络的可配置内存内处理(PIM)系统,该系统包括:第一至少一个PIM子阵列,被配置为执行所述神经网络的第i层的第i过滤器的过滤操作(i是大于零的整数);第二至少一个PIM子阵列,被配置为执行所述神经网络的第(i+1)层的第(i+1)过滤器的过滤操作;和控制器,被配置为控制所述第一至少一个PIM子阵列和第二至少一个PIM子阵列,所述控制器被配置为执行:将第i层的第一组第i值提供给第一至少一个PIM子阵列,以生成第(i+1)层的第(i+1)值;将第(i+1)值的数量确定为足以由第二至少一个PIM子阵列处理;和响应于所述确定,在同时将所述第i层的第二组第i值提供给所述第一至少一个PIM子阵列用于处理的同时,将所述第(i+1)值提供给所述第二至少一个PIM子阵列,以生成用于所述神经网络的后续层的输出值。
在一些实施例中,第一至少一个PIM子阵列和第二至少一个PIM子阵列的PIM子阵列包括:多个比特单元,用于存储对应于第i过滤器或第(i+1)过滤器中的相应的一个的多个权重。
在一些实施例中,神经网络包括卷积神经网络,并且第i过滤器是滑动卷积过滤器。
附图说明
附图和说明书一起示出了本发明的示例性实施例,并且与说明书一起用于解释本公开的原理。
图1是示出根据本公开的一些实施例的可配置PIM系统的示意图。
图2a是示出根据本公开的一些实施例的可配置PIM系统的区块(tile)的示意图。
图2b示出了根据本公开的一些实施例的区块的PIM子阵列。
图3a-3c示出了根据本发明的一些实施例的神经网络中的推理的层间管道。
图4a-4c示出了根据本发明的一些实施例的神经网络中的推理的层间管道和层内管道的组合。
图5示出了根据本发明的一些实施例的神经网络中的推理的批处理(batch)管道。
具体实施方式
下面所述的详细描述旨在描述根据本公开提供的用于管道机器学习加速的系统和方法的示例实施例,并且不意图表示可以构造或使用本公开的唯一形式。说明书结合所示实施例阐述了本发明的特征。然而,应当理解的是,相同的或等效的功能和结构可以通过不同的实施例来实现,这些实施例也意图包括在本公开的范围内。如本文其他地方所示,相同元件编号旨在指示相同元件或特征。
本发明的各个方面旨在以管道方式将机器学习应用映射到基于PIM的加速器上。管道可以包括层间管道、层内管道或这两种类型的组合。基于PIM的系统是可配置的,管道方案是特定于使用的,并且可以根据具体情况映射到基于PIM的系统上,以提高(例如,最大化)每个应用的功率性能。根据一些例子,可配置的基于PIM的系统的管道方案可以提供相对于现有技术的其他数字或基于PIM的推理加速器的显著(例如,数量级)功率性能改进。此外,管道方案可以在硬件上提供网络拓扑的无失速或低延迟操作。
图1是示出根据本公开的一些实施例的可配置PIM系统1的示意图。
参照图1,可配置PIM系统1一旦训练,就对输入数据执行推理以生成输出数据,输出数据可以是基于输入数据的预测。根据一些实施例,可配置的PIM系统1包括PIM阵列10,其包括用于执行推理操作的多个区块100、用于控制PIM阵列10的操作的控制器20以及用于存储可配置PIM系统1的区块100中的每一个的输出或中间结果的存储器30(例如,逻辑芯片上存储器(on-logic-die memory))。在一些示例中,存储器30可以是嵌入式磁阻随机存取存储器(eMRAM)、静态随机存取存储器(SRAM)等。
图2a是示出根据本公开的一些实施例的可配置PIM系统1的区块100的示意图。图2b示出了根据本公开的一些实施例的PIM子阵列110。
参照图2a,根据一些实施例,PIM阵列10的区块100包括多个PIM子阵列110,其可以以矩阵形式组织;输入寄存器120,被配置成接收和存储输入信号Vin(例如,输入电压信号,也被称为输入激活),其可以对应于输入数据,并且可以将存储的输入信号提供给PIM子阵列110中的适当的一个(一些);模数转换器(ADC)130,被配置成将PIM子阵列110的模拟输出转换为数字信号(例如,二进制信号);移位和加法电路140,用于在一个时钟周期内存储和相加ADC 130的输出;以及输出寄存器150,用于在将输出发送到存储器30进行存储之前存储移位和加法电路140的输出(称为输出激活)。在一些示例中,控制器20可以控制输入和输出寄存器120和150的操作,并且可以确定将存储在输入寄存器120处的数据发送到哪个PIM子阵列110。
参考图2B,在一些实施例中,每个PIM子阵列110包括多个比特单元112,其可以是模拟的或数字的(单比特或多比特)。在一些示例中,比特单元112可以是两个或三个端子非易失性突触权重比特单元。比特单元112可以是可以充当模拟或数字存储器的电阻随机存取存储器(RRAM)。然而,本发明的实施例不限于此,并且在一些示例中,比特单元112可以是导电桥接随机存取存储器(CBRAM)、相变存储器(PCM)、铁电场效应晶体管(FerroFET)、自旋转移转矩(STT)存储器等。比特单元(112)还可以包括多个单位的存储器单元,并且具有三个以上的端子。为了选择单个比特单元112,一个或多个二极管或场效应晶体管(FET)可以串联地连接到比特单元112。PIM子阵列110还包括外围电路,例如用于将数字输入转换为要应用于一个或多个比特单元112的模拟电压信号的数模转换器(DAC)114、用于在将比特单元112的输出传递给后续块之前存储比特单元112的输出的采样和保持电路116。
在一些实施例中,PIM子阵列110充当过滤器(例如,卷积过滤器),每个比特单元112存储过滤器的可学习权重(w1、w2、w3等)。
参考图2a-2b,机器学习系统可由诸如卷积神经网络(CNN)、全连接(FC)神经网络和/或具有多个互连层的循环神经网络(RNN)的网络来描述。这些互连层可以由映射并存储在比特单元112中的权重矩阵来描述。
在一些实施例中,基于网络拓扑将一组PIM子阵列110分配给神经网络的每一层。
区块100中的PIM子阵列110的行数可以由互连层(例如,CNN的层)的过滤器大小来确定。区块100中的PIM子阵列110的列数可以由该层的过滤器数目、每个比特单元112映射的比特数和过滤器权重的精度来确定。在一些实施例中,PIM子阵列110的每一行表示CNN的过滤器。来自前一层的输入激活可以在一个时钟周期内同时地(例如,并行地)馈送,作为对PIM子阵列110的行的行输入。在一些示例中,只要控制器20内的逻辑相应地改变,就可以互换区块100的行和列。
在一些实施例中,PIM子阵列110可以产生电导加权的输出电流IOUT(并且可以表示突触神经元),并且PIM子阵列110沿着一行的输出电流(例如,通过耦合到PIM子阵列110的输出的公共电连接)被相加。因此,PIM子阵列110的行可以产生加总的输出电流IOUT1到IOUTn。可以是模拟信号的加总的输出电流被ADC 130转换为数字信号(例如,二进制数据)。每个加总的输出可以表示计算出的部分和,然后通过移位和加法电路140将其移位并添加到下一个输入激活比特的部分和。然后,输出寄存器150存储计算出的部分和。一旦控制器20确定生成了最后输出,其在存储器30中存储(存回)最后输出,这可以用作对下一层的输入。如何以及何时将输出数据用于下一层中的处理可以确定正在实现管道方案。
根据一些实施例,以管道方式执行网络层到PIM子阵列110的映射,这可以导致无失速(或低失速)操作。在一些实施例中,控制器20不是在移动到下一层之前等待神经网络的当前层完成处理,而是在从当前层产生了足够的输出后开始处理神经网络的下一层。这可以称为层间管道(也称为层间并行)。
图3a-3c示出了根据本发明的一些实施例的神经网络中的推理的层间管道。
参考图3a-3c,第i层的一组值(i是大于零的整数)可以形成二维矩阵300。在一些示例中,二维矩阵300可以表示图像,并且矩阵300的每个元素302可以表示像素值(例如,颜色强度)。二维矩阵300还可以表示特征图,每个元素302表示前一层(即,第(i-1)层)的输出值。为了便于说明,图3a-3c中的二维矩阵300是6x6矩阵;然而,如本领域技术人员所认识到的,本发明的实施例不限于此,并且矩阵300可以具有任何合适的大小,用nx m表示,其中n和m是大于1的整数。
第i过滤器304(也称为内核)可以是对第i层的值的集合进行操作以生成下一层(即,第(i+1)层)的值的滑动卷积过滤器。过滤器304可由尺寸为p x q的二维矩阵表示,其中p和q分别是大于零且小于或等于n和m的整数。为了便于说明,第i过滤器304示出为2x 2过滤器。卷积过滤器的每个元素可以是可学习的权重值。
第i过滤器304以步长长度在第i层的值的集合上移动/滑动/挪动,直到遍历第i层的整组值为止。在每个移位处,第i过滤器304在过滤器304与过滤器304在该点处操作的第i层的值的矩阵部分之间执行矩阵乘法运算。图3a-3c的例子说明步长长度为1,但是,步长可以是2、3或任何合适的值。形成下一层(即,层i+1)的值的集合的卷积运算的输出可以被称为卷积特征输出。这些输出可以填充(populate)与第(i+1)层相关联的矩阵310。
在现有技术中,在处理下一层的值之前,可能需要完全处理神经网络的当前层,这可能是缓慢的。
然而,根据一些实施例,控制器20监视由第i层过滤器304生成的输出值,并且一旦确定有足够数量的值可用于在下一层(即,第(i+1)层),控制器20经由第(i+1)过滤器314处理在第(i+1)层处的可用输出值。因此,控制器20可以在同时(例如,并行)将第i过滤器304应用于第i层的值的同时,将第(i+1)过滤器314应用于第(i+1)层的可用值。这种层间管道可以针对神经网络的任何数量的层或所有层执行。换句话说,可以同时执行卷积运算(例如,在神经网络的两个或多个层中并行执行)。这可以导致显著提高神经网络的推理速度。
根据一些实施例,第一至少一个PIM子阵列110被配置为执行第i过滤器304的过滤操作,并且第二至少一个PIM子阵列110被配置为执行第(i+1)过滤器314的过滤操作。控制器20可以向第一至少一个PIM子阵列110提供第i层的第一组第i值以生成用于第(i+1)层的第(i+1)值,并且当确定第(i+1)值的数量足以由第二至少一个PIM子阵列110处理时,可以在同时向第一至少一个PIM子阵列110提供第i层的第二组第i值以进行处理的同时,将第(i+1)值提供给第二至少一个PIM子阵列110以生成用于神经网络的后续层的输出值。在一些示例中,当对应层具有由相应过滤器操作的每个单位的数据时,用于过滤操作的可用值的数量被确定为足够。
在一些实施例中,下一层(即,第(i+1)层)可以开始处理的时间(例如,时钟周期)取决于与第i层相关联的第i过滤器的大小、与第(i+1)层相关联的第(i+1)过滤器的大小、第(i+1)过滤器的步长以及对应于第i层的值的图像或特征图的大小。在图3a-3c的示例中,其中第i和第(i+1)过滤器304和314的尺寸均为2x 2,第i过滤器304的步长为1,第(i+1)过滤器314的步长为2,控制器20在启动第i层的处理后开始处理第(i+1)层7个周期。如图3C所示,在特征图310中没有足够的值可用于第(i+1)过滤器314执行进一步的操作。根据一些实施例,每个卷积运算可以在一个时钟周期中执行。
根据本发明的一些实施例,可以通过另外使用层内管道(也称为层内并行)来进一步提高来自层间管道的处理速度增益,以每周期从层中生成一个以上的输出值。
图4a-4c示出了根据本发明的一些实施例的神经网络中的推理的层间管道和层内管道的组合。
参考图4a-4c,根据一些实施例,在神经网络的每一层,不止一个过滤器同时(例如,并行)操作以一次产生一个以上的输出值。
在一些实施例中,在任何给定时间,控制器20将与第i层相关联的第一第i过滤器(例如,第一滑动第i过滤器)304应用于第i层的值的第一部分/块,以生成第(i+1)层的第一输出值(例如,第(i+1)值的第一部分),并且同时(例如,并行地),将与第i层相关联的第二第i过滤器(例如,第二滑动第i过滤器)305应用于第i层的值的第二部分/块,以生成用于第(i+1)层的第二输出值(例如,第(i+1)值的第二部分)。
根据一些实施例,第一和第二第i过滤器是相同的(例如,包含相同的权重图/权重值),但是在位置上偏移了第一过滤器304的步长长度。因此,实际上,第二第i过滤器305执行与第一第i过滤器304在下一时钟周期将要执行的相同的操作,但是在与第一第i过滤器304相同的时钟周期中进行这样的操作。结果,在一个时钟周期内,PIM阵列10可以为下一层生成两个(或更多)值。在这里,每个层可以被细分并映射到具有相同权重矩阵的一个或多个副本的不同的区块上。例如,第一第i过滤器304可以用一个区块100实现,第二个第i过滤器305可以用不同的区块100来实现,其中两个区块100的权重矩阵是相同的。
在一些实施例中,由每层处的过滤器执行的并行操作的数目可以等于在该层处形成组合/复合过滤器(例如,303)的过滤器的数目。这里,复合过滤器的步长可以等于形成复合过滤器(并执行并行操作)的过滤器的数目乘以复合过滤器的步长。例如,在图4a-4c的例子中,包括两个第i过滤器304和305的所述复合过滤器303的步长等于2,其中每个过滤器的步长为1。如本领域技术人员所认识到的,本发明的实施例不限于每层两个并行操作,并且可以扩展为包括任何适当数量的并行操作。
如图4a-4c所示,在层间管道和层内管道(其组合可被称为“超管道”)的情况下,控制器20可在仅四个时钟周期之后开始处理第(i+1)过滤器,并且可以在下一个时钟周期(t=5)继续处理第(i+1)层而无任何延迟。这标志着与图3a-3c的示例的层间管道方案相比的改进,在图3a-3c的示例的层间管道方案中控制器20只能在7个时钟周期之后开始处理第(i+1)过滤器,并且由于第(i+1)层可用的值的数量不足,无法在下一个时钟周期(t=8)处执行第(i+1)过滤器的下一个过滤操作。
虽然上面已经描述了关于第i层的层内管道/并行,但是根据一些实施例,PIM阵列10可以在神经网络的多个层(例如,在所有层中)中利用层内管道/并行。
除了使用层间和层内管道来改进(例如,提高)单个图像或特征图的处理速度之外,本公开的实施例利用批处理管道来改进连续图像/特征图的处理速度。
图5示出了根据本发明的一些实施例的神经网络中的推理的批处理管道。
在现有技术中,可以逐个处理每个输入图像/特征图。结果,当与第一层相关联的第一过滤器完成对第一层的处理时,它可以保持空闲并且在神经网络的所有其他层完成处理之前不处理任何进一步的信息。
根据一些实施例,PIM阵列10利用批处理来并发地(例如,同时地/并行地)处理一个以上的输入图像/特征图。这样,当与层相关联的过滤器完成对该层的图像/特征图的处理时,该过滤器可以继续处理后续图像/特征图的同一层。
根据一些实施例,用于批处理多个图像的神经网络包括映射到PIM阵列10的不同区块100上的多个层。多个层可以包括第i层(i是大于零的整数)和第(i+1)层。可配置的PIM系统1针对第一输入图像处理第i层的第一第i值402以生成用作第(i+1)层的输入的第一第(i+1)值412。然后,可配置PIM系统1针对第一输入图像处理第(i+1)层的第一第(i+1)值412,以生成用于后续层的输出值。根据一些实施例,当(例如,同时)处理第一图像的第(i+1)值时,可配置PIM系统1针对第二输入图像处理第i层的第二第i值422以生成第二第(i+1)值432。在一些实施例中,第二图像的第二第i值422的处理可以与第一输入图像的第一第i值402的处理同时执行。第一输入图像的第一第i值402的处理可以包括将与第i层相关联的第i过滤器404应用于第i层的第一第i值402,以生成用于第(i+1)层的第(i+1)值。此外,处理用于第二输入图像的第二第i值可以包括将与第i层相关联的第i过滤器404应用于第二第i值,以生成用于第(i+1)层的第二第(i+1)二值。换句话说,相同的第i过滤器404可用于以时间交错方式处理第一第i值和第二第i值。然而,本发明的实施例不限于此,并且在一些示例中,可以使用与第i过滤器404相似的过滤器(其具有与第i过滤器404相同的大小和步长)来处理第二第i值。
根据一些实施例,第一至少一个PIM子阵列110被配置为执行第i过滤器404的过滤操作,并且第二至少一个PIM子阵列110被配置为执行神经网络的第(i+1)层的第(i+1)过滤器的过滤操作。控制器20可将第i层的第一第i值提供给第一至少一个PIM子阵列110以生成用于第(i+1)层的第一第(i+1)值,其中第一第i值对应于第一输入图像。控制器20还可以将第(i+1)层的第一(i+1)值提供给第二至少一个PIM子阵列110以生成与第一输入图像相关联的输出值。在提供对应于第一图像的第(i+1)值的同时,控制器20可以向第一至少一个PIM子阵列110提供第i层的第二第i值以生成第二(i+1)值,其中第二第i值对应于第二输入图像。
如图5所示,对应于第一图像的第一第i值402可以形成二维矩阵400,并且对应于第二图像的第二第i值422可以形成二维矩阵420。在一些示例中,第一第i值402包括第一图像的像素值(或第一图像的矩形块),并且第二第i值422包括第二图像的像素值(或第二图像的矩形块)。第一和第二图像可以具有相同的大小/尺寸。在一些示例中,第一第i值402包括由神经网络的前一层生成的第一特征图的值,并且第二第i值422包括由神经网络的前一层生成的第二特征图的值。第一和第二特征图分别对应于第一和第二图像(例如,从其生成)。第i过滤器404可以是p x q矩阵形式的滑动卷积过滤器,其中p和q是大于零的整数(为了便于说明,在图5中,将第i过滤器404示为2x 2矩阵)。
根据一些实施例,针对第二输入图像的第二第i值的处理在开始对第一输入图像的第一第i值的处理之后的时间偏移处开始。时间偏移可以大于或等于对应于第i过滤器的单个步长的时钟周期数。例如,在图5的示例中,其中过滤器404的步长为1,其对应于单个时钟周期,用于第一图像和第二图像的同一层的处理之间的时间偏移可以是至少一个时钟周期。
根据一些示例,在第一和第二图像上操作的过滤器404可以是彼此的副本,但是通过不同的PIM子阵列110在硬件中实现。
根据一些实施例,增加由可配置PIM系统1并行处理的图像的数量改进了处理时间(例如,改进了图像识别时间)。在一些实施例中,可由可配置的PIM系统1批量处理的图像的数量可以限制为完全处理单个图像所需的时钟周期数。例如,当单个图像的处理需要100个时钟周期时,可配置的PIM系统1可以批量处理100个或更少的图像。
根据一些实施例,层间管道和层内管道(例如,参考图3a-3c和4a-4c描述)可以与多个图像的批处理管道合作,以获得更大的性能增益。
根据一些示例,本发明中所述的神经网络可以是卷积神经网络(ConvNet/CNN),它可以接收输入图像/视频,将重要性(例如,通过可学习的权重和偏差)分配给图像/视频中的各个方面/对象,并且能够区分彼此。然而,本发明的实施例不限于此。例如,神经网络可以是循环神经网络(RNN)、多层感知器(MLP)等。
如本文所述,根据本公开的一些实施例的可配置PIM系统的管道方案提供了相对于现有技术的其他数字或基于PIM的推理加速器的显著(例如,数量级)功率性能改进。此外,管道方案可在硬件上提供神经网络的低延迟、无失速操作。
如本领域普通技术人员所理解的,控制器20执行的操作可以由处理器执行。处理器的本地存储器可能具有指令,当执行时,这些指令会导致处理器执行控制器的操作。
应当理解,尽管术语“第一”、“第二”、“第三”等可用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受到这些术语的限制。这些术语用于区分一个元素、组件、区域、层或部分与另一个元素、组件、区域、层或部分。因此,在不脱离本发明构思的范围的情况下,下面讨论的第一元件、元件、区域、层或部分可以被称为第二元件、元件、区域、层或部分。
本文使用的术语是为了描述特定的实施例,而不是为了限制本发明的概念。如本文所用,单数形式“一”和“一个”意欲包括复数形式,除非上下文另有明确指示。应进一步理解,术语“包括”和/或“包含”在本说明书中使用时,规定了所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件,组件和/或其组合。如本文所使用的,术语“和/或”包括一个或多个相关列表项的任何和所有组合。“至少一个”之类的表达式在元素列表前面时,会修改整个元素列表,而不会修改列表中的单个元素。此外,在描述本发明构思的实施例时使用“可以”是指“本发明构思的一个或多个实施例”。此外,术语“示范性”意欲指代示例或说明。
如本文所用,术语“使用”、“正使用”和“已使用”可分别被视为与术语“利用”、“正利用”和“已利用”同义。
根据本文所描述的本发明实施例的可配置PIM系统和/或任何其他相关设备或组件,例如控制器和处理器,可以通过使用任何合适的硬件、固件(例如,特定于应用的集成电路)、软件、或软件、固件和硬件的任何适当组合来实现。例如,PIM系统的各种组件可以形成在一个集成电路(IC)芯片上或在单独的IC芯片上。此外,PIM系统的各种组件可以实现在柔性印刷电路薄膜、带载体封装(TCP)、印刷电路板(PCB)上,或者形成在同一基板上。此外,PIM系统的各种组件可以是在一个或多个处理器上、在一个或多个计算设备中运行,执行计算机程序指令并与其他系统组件交互以执行本文所述的各种功能的进程或线程。计算机程序指令存储在存储器中,存储器可以使用诸如随机存取存储器(RAM)之类的标准存储设备在计算设备中实现。计算机程序指令也可以存储在诸如CD-ROM、闪存驱动器等其它非暂时性的计算机可读介质中。另外,本领域技术人员应当认识到,各种计算设备的功能可以组合或集成到单个计算设备中,或者,特定计算设备的功能可以分布在一个或多个其他计算设备上,而不脱离本公开的示例性实施例的范围。
虽然本发明已通过具体参考其说明性实施例进行了详细描述,但本文所述的实施例并非旨在详尽无遗或将本发明的范围限制为所公开的确切形式。本发明所属领域和技术领域的技术人员将认识到,如以下权利要求及其等价物所述,在不实质上偏离本发明的原理和范围的情况下,可以实现所述组装和操作的结构和方法的变更和改变。
Claims (18)
1.一种包括多个层的神经网络的管道推理方法,所述多个层包括第i层、第(i+1)层和第(i+2)层,其中i是大于零的整数,所述方法包括:
经由第i过滤器处理第i层的第一组第i值,以生成第(i+1)层的第(i+1)值,其中,所述第i过滤器包括第一第i过滤器和第二第i过滤器,并且基于在第i层上与第一第i过滤器偏移的第二第i过滤器来在一个时钟周期内生成多于一个的(i+1)值;
确定第(i+1)值的数量足以进行处理;以及
响应于所述确定,在经由第i过滤器同时处理第i层的第二组第i值的同时经由第(i+1)过滤器处理所述第(i+1)值以生成用于第(i+2)层的输出值,
其中确定第(i+1)值的数量足以进行处理基于由如下中的至少一个所确定的时钟周期:与第i层相关联的第i过滤器的大小、与第(i+1)层相关联的第(i+1)过滤器的大小、第(i+1)过滤器的步长和与第i层的第一组第i值和第二组第i值相对应的图像或特征图的大小。
2.根据权利要求1的方法,其中第一组第i值包含图像的像素值。
3.根据权利要求1的方法,其中第一组第i值包括由神经网络的前一层生成的特征图的值。
4.根据权利要求1的方法,其中所述第i层的第一组第i值的处理包括:
将与第i层相关联的第i过滤器应用于第i层的第一组第i值,以生成第(i+1)层的第(i+1)值。
5.根据权利要求4的方法,其中所述第i过滤器是p x q矩阵的形式的滑动卷积过滤器,其中p和q是大于零的整数。
6.根据权利要求4的方法,其中应用第i过滤器包括:
在第i过滤器和第一组第i值中与第i过滤器重叠的第i值之间执行矩阵乘法运算。
7.根据权利要求1的方法,其中确定第(i+1)值的数量足以进行处理包括确定与(i+1)层相关联的第(i+1)过滤器具有用于由所述第(i+1)过滤器操作的每个单位的数据。
8.根据权利要求1的方法,其中所述第i层的第一组第i值的处理包括:
将与第i层相关联的第一第i过滤器应用于第一组第i值的第一部分,以生成用于第(i+1)层的第(i+1)值的第一部分;以及
在应用第一第i过滤器的同时,将与第i层相关联的第二第i过滤器应用于第一组第i值的第二部分,以生成用于第(i+1)层的第(i+1)值的第二部分。
9.根据权利要求8的方法,其中第一组第i值的第一部分和第二部分具有重叠值。
10.根据权利要求8的方法,其中第一组第i值的第一部分和第二部分不具有重叠值。
11.根据权利要求8的方法,其中所述第一第i过滤器和第二第i过滤器是具有相同步长和相同维度的滑动卷积过滤器。
12.根据权利要求8的方法,其中所述第一第i过滤器和第二第i过滤器包括相同的权重值。
13.一种用于包括多个层的神经网络的管道推理的系统,所述多个层包括第i层、第(i+1)层和第(i+2)层,其中i是大于零的整数,所述系统包括:
处理器;和
所述处理器本地的处理器存储器,其中所述处理器存储器上存储有指令,当所述指令被所述处理器执行时,使得所述处理器执行:
经由第i过滤器处理第i层的第一组第i值,以生成第(i+1)层的第(i+1)值,其中,所述第i过滤器包括第一第i过滤器和第二第i过滤器,并且基于在第i层上与第一第i过滤器偏移的第二第i过滤器来在一个时钟周期内生成多于一个的(i+1)值;
将第(i+1)值的数量确定为足以进行处理;和
响应于该确定,在经由第i过滤器同时处理第i层的第二组第i值的同时,经由第(i+1)过滤器处理第(i+1)值以生成用于第(i+2)层的输出值,
其中,将所述第(i+1)值的数量确定为足以进行处理基于由如下中的至少一个所确定的时钟周期:与所述第i层相关联的第i过滤器的大小、与所述第(i+1)层相关联的第(i+1)过滤器的大小、第(i+1)过滤器的步长、对应于所述第i层的第一组第i值和第二组第i值的图像或特征图的大小。
14.根据权利要求13的系统,其中所述第i层的第一组第i值的处理包括:
将与第i层相关联的第i过滤器应用于第i层的第一组第i值,以生成第(i+1)层的第(i+1)值。
15.根据权利要求13的系统,其中所述第i层的第一组第i值的处理包括:
将与第i层相关联的第一第i过滤器应用于第一组第i值的第一部分,以生成第(i+1)层的第(i+1)值的第一部分;和
在应用第一第i过滤器的同时,将与第i层相关联的第二第i过滤器应用于第一组第i值的第二部分,以生成第(i+1)层的第(i+1)值的第二部分。
16.一种被配置为实现神经网络的可配置内存内处理PIM系统,该系统包括:
第一至少一个PIM子阵列,被配置为执行所述神经网络的第i层的第i过滤器的过滤操作,其中i是大于零的整数;
第二至少一个PIM子阵列,被配置为执行所述神经网络的第(i+1)层的第(i+1)过滤器的过滤操作;和
控制器,被配置为控制所述第一至少一个PIM子阵列和第二至少一个PIM子阵列,所述控制器被配置为执行:
将第i层的第一组第i值提供给第一至少一个PIM子阵列,并且经由第i过滤器处理所述第一组第i值,以生成第(i+1)层的第(i+1)值,其中,所述第i过滤器包括第一第i过滤器和第二第i过滤器,并且基于在第i层上与第一第i过滤器偏移的第二第i过滤器来在一个时钟周期内生成多于一个的(i+1)值;
确定第(i+1)值的数量足以由第二至少一个PIM子阵列处理;和
响应于所述确定,在同时将所述第i层的第二组第i值提供给所述第一至少一个PIM子阵列用于处理的同时,将所述第(i+1)值提供给所述第二至少一个PIM子阵列,以生成用于所述神经网络的后续层的输出值。
17.根据权利要求16的系统,其中所述第一至少一个PIM子阵列和第二至少一个PIM子阵列中的PIM子阵列包括:
多个比特单元,用于存储对应于第i过滤器或第(i+1)过滤器中相应一个的多个权重。
18.根据权利要求16的系统,其中所述神经网络包括卷积神经网络,并且
其中所述第i过滤器是滑动卷积过滤器。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962926292P | 2019-10-25 | 2019-10-25 | |
| US62/926,292 | 2019-10-25 | ||
| US16/838,971 | 2020-04-02 | ||
| US16/838,971 US12379933B2 (en) | 2019-10-25 | 2020-04-02 | Ultra pipelined accelerator for machine learning inference |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112711818A CN112711818A (zh) | 2021-04-27 |
| CN112711818B true CN112711818B (zh) | 2025-10-03 |
Family
ID=71833231
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202011146029.2A Active CN112711818B (zh) | 2019-10-25 | 2020-10-23 | 用于机器学习推理的超管道加速器 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12379933B2 (zh) |
| EP (1) | EP3812971A1 (zh) |
| JP (1) | JP7662118B2 (zh) |
| KR (1) | KR102882026B1 (zh) |
| CN (1) | CN112711818B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022104223A1 (en) * | 2020-11-16 | 2022-05-19 | Lightmatter, Inc. | Parallelization and pipelining strategies for an efficient analog neural network accelerator |
| KR102710011B1 (ko) * | 2021-12-29 | 2024-09-24 | 성균관대학교산학협력단 | 컨볼루션 레이어의 연산을 최적화하는 메모리 장치 및 이의 제어방법 |
| KR102802166B1 (ko) * | 2024-04-17 | 2025-05-02 | 한국과학기술원 | 지역 오류 예측을 활용하여 면적/에너지 효율적인 온-디바이스 학습을 가능하게 하는 슈퍼 파이프라인 인-메모리 프로세싱 가속기 구조 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8587581B2 (en) | 2009-10-15 | 2013-11-19 | Nvidia Corporation | Order-preserving distributed rasterizer |
| US20180107591A1 (en) | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
| US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
| US10996959B2 (en) | 2015-01-08 | 2021-05-04 | Technion Research And Development Foundation Ltd. | Hybrid processor |
| US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
| WO2017171769A1 (en) | 2016-03-31 | 2017-10-05 | Hewlett Packard Enterprise Development Lp | Logical operations |
| US10503961B2 (en) | 2016-08-08 | 2019-12-10 | Indaflow LLC | Object recognition for bottom of basket detection using neural network |
| US10552732B2 (en) * | 2016-08-22 | 2020-02-04 | Kneron Inc. | Multi-layer neural network |
| US10438115B2 (en) * | 2016-12-01 | 2019-10-08 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with memory layout to perform efficient 3-dimensional convolutions |
| CN108304922B (zh) | 2017-01-13 | 2020-12-15 | 华为技术有限公司 | 用于神经网络计算的计算设备和计算方法 |
| US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
| US10019668B1 (en) * | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
| KR102301232B1 (ko) * | 2017-05-31 | 2021-09-10 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
| US10474600B2 (en) | 2017-09-14 | 2019-11-12 | Samsung Electronics Co., Ltd. | Heterogeneous accelerator for highly efficient learning systems |
| US10482337B2 (en) | 2017-09-29 | 2019-11-19 | Infineon Technologies Ag | Accelerating convolutional neural network computation throughput |
| US11361215B2 (en) | 2017-11-29 | 2022-06-14 | Anaflash Inc. | Neural network circuits having non-volatile synapse arrays |
| US20190318226A1 (en) | 2018-04-12 | 2019-10-17 | Gyrfalcon Technology Inc. | Deep Learning Image Processing Systems Using Modularly Connected CNN Based Integrated Circuits |
| US20190318229A1 (en) * | 2018-04-12 | 2019-10-17 | Advanced Micro Devices, Inc. | Method and system for hardware mapping inference pipelines |
| US10698766B2 (en) | 2018-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Optimization of checkpoint operations for deep learning computing |
| CN109086867B (zh) * | 2018-07-02 | 2021-06-08 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
-
2020
- 2020-04-02 US US16/838,971 patent/US12379933B2/en active Active
- 2020-07-20 KR KR1020200089420A patent/KR102882026B1/ko active Active
- 2020-07-27 EP EP20187893.1A patent/EP3812971A1/en active Pending
- 2020-10-23 CN CN202011146029.2A patent/CN112711818B/zh active Active
- 2020-10-23 JP JP2020178413A patent/JP7662118B2/ja active Active
Non-Patent Citations (3)
| Title |
|---|
| Accerlerating CNN inference on FGPAs: A Survey;Kamel Abdelouahab et al;arXiv;20180526;正文1-19 * |
| Kamel Abdelouahab et al.Accerlerating CNN inference on FGPAs: A Survey.arXiv.2018,正文1-19. * |
| PipeLayer: A Pipelined ReRAMtoBased Accelerator for Deep Learning;Linghao Song et al;2017 IEEE International Symposium on High Performance Computer Architecture;20170508;541-552 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102882026B1 (ko) | 2025-11-05 |
| KR20210050434A (ko) | 2021-05-07 |
| EP3812971A1 (en) | 2021-04-28 |
| US12379933B2 (en) | 2025-08-05 |
| US20210124588A1 (en) | 2021-04-29 |
| JP2021068454A (ja) | 2021-04-30 |
| CN112711818A (zh) | 2021-04-27 |
| JP7662118B2 (ja) | 2025-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11816563B2 (en) | Method of enabling sparse neural networks on memresistive accelerators | |
| CN110807519B (zh) | 基于忆阻器的神经网络的并行加速方法及处理器、装置 | |
| CN112711818B (zh) | 用于机器学习推理的超管道加速器 | |
| US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
| US11816532B2 (en) | Performing kernel striding in hardware | |
| US12204961B2 (en) | Resistive and digital processing cores | |
| US20200234124A1 (en) | Winograd transform convolution operations for neural networks | |
| US12056599B2 (en) | Methods of performing processing-in-memory operations, and related devices and systems | |
| CN112750068B (zh) | 基于神经网络处理图像的方法与系统及存储器中处理系统 | |
| TW201911139A (zh) | 神經網路交叉條堆疊 | |
| US11126549B2 (en) | Processing in-memory architectures for performing logical operations | |
| CN112151095B (zh) | 存算一体芯片、存储单元阵列结构 | |
| CN107766935B (zh) | 多层人造神经网络 | |
| CN107533459A (zh) | 使用电阻存储器阵列的数据处理 | |
| US20170061278A1 (en) | Synapse and neuromorphic device including the same | |
| CN115443467A (zh) | 具有深度学习加速器和随机存取存储器的集成电路装置 | |
| CN114004344B (zh) | 神经网络电路 | |
| WO2024125279A2 (en) | Hardware for parallel layer-norm compute | |
| US20250028946A1 (en) | Parallelizing techniques for in-memory compute architecture | |
| CN116450996A (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 |