CN107533668A - 用于计算神经网络的节点值的硬件加速器 - Google Patents
用于计算神经网络的节点值的硬件加速器 Download PDFInfo
- Publication number
- CN107533668A CN107533668A CN201680023103.7A CN201680023103A CN107533668A CN 107533668 A CN107533668 A CN 107533668A CN 201680023103 A CN201680023103 A CN 201680023103A CN 107533668 A CN107533668 A CN 107533668A
- Authority
- CN
- China
- Prior art keywords
- value
- alignment
- current
- cross
- line
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- 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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0007—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
Abstract
本文的示例涉及用于计算神经网络的节点值的硬件加速器。示例硬件加速器可以包括编程为计算神经网络的节点值的交叉开关阵列和用于根据更新规则将来自交叉开关阵列的输出电流与阈值电流进行比较以生成新的节点值的电流比较器。交叉开关阵列具有多条行线、多条列线以及耦接在一条行线和一条列线的每个唯一组合之间的存储器单元,其中根据权重矩阵对存储器单元进行编程。多条行线用于接收节点值的输入向量,并且多条列线用于传送要与阈值电流进行比较的输出电流。
Description
政府利益声明
本发明通过由智能高级研究项目活动(IARPA)颁发的合同2014-14080800008下的政府支持而取得。政府对本发明有一定的权利。
背景技术
忆阻器是通过应用编程能量(例如电压)可以被编程为不同电阻状态的器件。具有忆阻器的大型交叉开关存储器件阵列可用于各种应用,包括存储器、可编程逻辑、信号处理控制系统、模式识别和其它应用。
神经网络是一系列由生物神经系统启发的技术模型,用于估计或近似取决于大量输入的函数。神经网络可以被表示为在彼此之间交换消息的互连“神经元”的系统。连接可以具有可基于经验调整的数字权重,使神经网络适应于输入并且能够进行机器学习。
附图说明
下面的详细描述参照附图,附图中:
图1是用于计算神经网络的节点值的示例硬件加速器的图;
图2是用于计算神经网络的节点值的第二示例硬件加速器的图;
图3是用于计算神经网络的节点值的第三示例硬件加速器的概念图;
图4是使用示例硬件加速器来计算神经网络的节点值的示例方法的流程图;和
图5是示例神经网络的概念模型。
具体实施方式
人工神经网络(本文中通常简称为“神经网络”)是一系列由生物神经系统启发的技术模型,用于估计或近似取决于大量输入的函数。神经网络可以被表示为在彼此之间交换消息的互连“神经元”的系统。连接可以具有可以基于经验调整的数字权重,使神经网络适应于输入并且能够进行机器学习。神经网络可以具有多种应用,包括函数逼近、分类、数据处理、机器人和计算机数字控制。然而,实施人工神经网络可能是计算非常密集的,并且资源可能太匮乏了,无法用通用处理器来最佳地实现。
忆阻器是可以用作各种电子电路(例如,存储器、开关、射频电路、逻辑电路和系统)中的组件的器件。在存储器结构中,可以使用具有忆阻器的交叉开关存储器件阵列。当用作存储器件的基础时,忆阻器可用于存储信息位,即1或0。忆阻器的电阻可以通过经忆阻器施加电刺激(例如电压或电流)来改变。通常,可以形成能够在两个状态之间切换的至少一个通道,在一个状态中,通道形成导电路径(“导通”),在一个状态中,通道形成较低导电路径(“关闭”)。在其它一些情况下,导电路径表示“关闭”而较低导电路径表示“导通”。此外,忆阻器还可以作为具有可变电导的模拟部件。
在一些应用中,存储器交叉开关阵列可用于执行向量-矩阵计算。例如,来自交叉开关的每条行线的输入电压信号由各列线路中的电阻装置的电导进行加权,并且作为每条列线的电流输出而累积。理想情况下,如果可以忽略导线电阻,那么流出交叉开关阵列的电流I将约为IT=VTG,其中V是输入电压,G是电导矩阵,包括交叉开关阵列中每个忆阻器的贡献。在交叉开关阵列的连接点或交叉点处使用忆阻器可以对每个这样的连接点处的电阻(或电导)进行编程。
本文公开的示例提供用于计算神经网络的节点值的硬件加速器。示例硬件加速器可以包括编程来计算节点值的交叉开关阵列。可以根据权重矩阵对交叉开关阵列的存储器单元进行编程。驱动通过交叉开关阵列从输入向量映射的输入电压可以产生可与阈值电流比较以产生新的节点值的新的输入向量的输出电流值。以这种方式,这里的示例加速器提供用于神经网络的节点值的硬件计算。
现在参考附图,图1示出了硬件加速器100的示例。硬件加速器100可以是执行计算神经网络的节点值的操作的硬件单元。硬件加速器100可以通过相对于权重矩阵变换输入向量来计算神经网络的新的节点值。硬件加速器100可以通过计算输入向量与权重矩阵的向量-矩阵乘法来这么做。
神经网络可以是由生物神经系统启发的模型的技术实现,并且可以用于估计或近似取决于大量输入的函数。神经网络可以被表示为在彼此之间交换消息的互连“神经元”的系统。连接可以具有可基于经验调整的数字权重,使神经网络适应于输入并且能够进行机器学习。可能有各种类型的神经网络,包括前馈神经网络、径向基函数神经网络、递归神经网络和其它类型。诸如像Hopfield网络的递归神经网络的神经网络可以被实现为如本文所述的硬件加速器。诸如Hopfield网络的神经网络可以为逻辑、优化、模数转换、编码和解码以及关联存储器提供计算能力。
图5中概念性地示出了神经网络的模型。神经网络500可以具有多个节点510A-510F和边520。在每个节点510之间形成边,但是为简单起见,仅示出了510A和510B之间的边520AB。计算问题可以被编码在边的权重中并且可以包含阈值函数。输入节点值515A-515F可以被传递到节点,直到问题的计算答案可以由节点值的最终状态来确定。以这种方式,神经网络500可以是动态系统,并且节点值可以基于边缘权重演进到其它节点值,这可以被表示为点积运算。
向后参考图1,硬件加速器100可以被实现为交叉开关阵列102和电流比较器116。交叉开关阵列102可以是具有耦接在交叉点处的线之间的存储器单元的平行和垂直线的结构。交叉开关阵列102可以包括多个行线104、多个列线106和多个存储器单元108。存储器单元108可以耦接在一条行线104和一条列线106的每个唯一组合之间。换句话说,没有存储器单元108共享行线和列线。
行线104可以是携带通过交叉开关阵列100的电流的电极。在一些示例中,行线104可以彼此平行,通常具有相等的间隔。行线104有时可以是例如顶部电极或字线。类似地,列线106可以是不平行于行线104的电极。列线106有时可以是例如底部电极或位线。行线104和列线106可以用作将电压和电流传送到存储器单元108的电极。行线104和列线106的示例材料可以包括诸如Pt、Ta、Hf、Zr、Al、Co、Ni、Fe、Nb、Mo、W、Cu、Ti、TiN、TaN、Ta2N、WN2、NbN、MoN、TiSi2、TiSi、Ti5Si3、TaSi2、WSi2、NbSi2、V3Si、电掺杂多晶Si、电掺杂多晶Ge及其组合的导电材料。在图1的例子中,交叉开关阵列102可以具有N条行线和M条列线。
存储器单元108可以在行线104和列线106的交叉处耦接在行线104和列线106之间。例如,存储器单元108可以被定位来关于权重矩阵,计算节点值的输入向量的新的节点值。每个存储器单元108可以具有诸如电阻式存储器元件、电容式存储器元件或一些其它形式的存储器的存储器件。
在一些示例中,每个存储器单元108可以包括电阻式存储器元件。电阻式存储器元件可以具有随施加的电压或电流而变化的电阻。此外,在一些示例中,电阻式存储器元件可以“记住”其最后的电阻。以这种方式,每个电阻式存储器元件可以被设置为至少两个状态。在许多示例中,电阻式存储器元件可以被设置为多个电阻状态,这可以促进各种模拟操作。电阻式存储器元件可以通过具有忆阻器来实现这些性质,忆阻器可以是提供如本文所述的忆阻性质的双端电气部件。
在一些示例中,忆阻器可以是基于氮化物的,这意味着忆阻器的至少一部分由含氮化物的组合物形成。忆阻器也可以是基于氧化物的,这意味着忆阻器的至少一部分由含氧化物的材料形成。此外,忆阻器可以是基于氮氧化物的,这意味着忆阻器的至少一部分由含氧化物材料形成,并且忆阻器的至少一部分由含氮化物材料形成。忆阻器的示例材料可以包括氧化钽、氧化铪、氧化钛、氧化钇、氧化铌、氧化锆或其它类似的氧化物,或诸如氧化铝、氧化钙、氧化镁、氧化镝、氧化镧、二氧化硅或其它类似氧化物的非过渡金属氧化物。其它示例包括诸如氮化铝、氮化镓、氮化钽、氮化硅的氮化物和诸如氮氧化硅的氧氮化物。此外,在本文教导的实践中可以使用其它的功能忆阻器。
忆阻器可以呈现非线性或线性电流-电压特性。非线性可以描述与线性函数不同的函数。在一些实施方案中,忆阻器可以在感兴趣的电压范围内是线性或非线性的。感兴趣的电压范围可以是例如在硬件加速器100的操作中使用的电压范围。
在一些示例中,存储器单元108可以包括诸如存取晶体管或选择器的其它组件。例如,每个存储器单元108可以耦接到行线104和列线106的交叉点之间的存取晶体管。存取晶体管可以促进为了读取或写入存储器单元目的的、对单个或多组存储器单元108的定位。
可替代地,选择器可以是可用于忆阻器装置以提供所需电气特性的电气装置。例如,选择器可以是接纳取决于施加在端子上的电压的电流的2端子装置或电路元件。选择器可以耦接到每个存储器单元108,以促进对单个或多组存储器单元108的定位。例如,选择器可以通过像导通-关闭开关那样起作用来这么做,并且可以减轻潜行电流干扰。
交叉开关阵列102的存储器单元108可以根据神经网络的权重矩阵来编程。权重矩阵可以表示神经网络的操作的汇编。例如,权重矩阵可以表示图5的神经网络500的加权的边。存储在存储器单元108中的值可以表示权重矩阵的值。在电阻式存储器的实现中,每个存储器单元108的电阻水平可以表示权重矩阵的值。以这种方式,权重矩阵可以被映射到交叉开关阵列102上。
存储器单元108可以例如通过具有通过它们驱动的编程信号来编程,驱动存储器单元108的状态的改变。编程信号可以定义要应用于存储器单元的值的数量。如本文所述,交叉开关阵列102的存储器单元108的值可以表示神经网络的权重矩阵。
继续参考图1,硬件加速器100可以在多条行线104处接收节点值的输入向量。输入向量可以包括将被演化为神经网络的接下来输入值的节点值。输入向量节点值可以通过驱动电路转换成输入电压110。驱动电路可以将表示输入向量的一组输入电压传送到交叉开关阵列。在一些示例中,电压110可以是诸如驱动到存储器单元108的电流的其它形式的电刺激。此外,在一些示例中,输入向量可以包括数字值,数字值可以通过数模转换器转换成输入电信号的模拟值。在其它示例中,输入向量可以已经包括模拟值。
一旦通过交叉开关阵列102,多条列线106可以传送输出电流114,其中可以根据更新规则将输出电流114与阈值电流进行比较,以生成新的节点值的新的输入向量。这些操作的细节在下面进一步细微地描述。
硬件加速器100还可以包括与交叉开关阵列102相关联的其它外围电路。例如,可以使用地址解码器来选择行线104并且激活对应于所选择的行线104的驱动电路。所选择的行线104的驱动电路可以以对应于神经网络或对应于设置交叉开关阵列102的存储器单元108内的电阻值的过程的不同电压来驱动相应的行线104。可以为列线106包括类似的驱动和解码电路。也可以使用控制电路来控制在输入处的电压的施加和在硬件加速器100的输出处的电压的读取。数模转换电路和模数转换电路可以用于输入电压110和输出电流。在一些示例中,上述外围电路可以使用与交叉开关阵列相同的集成结构或半导体管芯中的半导体处理技术来制造。
如本文所述,有三个在硬件加速器100的操作期间发生的主要操作。第一操作是对交叉开关阵列102中的存储器单元108进行编程,以将N×M权重矩阵中的数学值映射到阵列。在一些示例中,N和M可以是相同的数,并且权重矩阵是对称的。在一些示例中,在编程操作期间一次编程一个存储器单元108。第二操作是通过输入电压和列线106的存储器单元的电阻值的点积来计算输出电流。在此操作中,施加输入电压,并且对应于将N×M矩阵乘以N×1向量的结果,获得输出电流。在一些示例中,输入电压低于编程电压,因此在线性变换计算期间,诸如电阻式存储器的存储器单元108的电阻值不改变。第三操作是将输出电流与阈值电流进行比较。例如,电流比较器116可以将输出电流与阈值电流进行比较,以确定新的节点值的新的输入向量。
在一个示例中,硬件加速器100可以通过沿着N×M交叉开关阵列102的行线104同时施加一组电压VI 110并且通过列线106收集电流并生成新的节点值114来计算节点值。在每条列线106上,每个输入电压110被相应的忆阻(1/Gij)加权,并且加权求和被反映在输出电流处。利用欧姆定律,输入电压110与输出电流之间的关系可以用以下形式的向量-矩阵乘积来表示:{VO}T=-{VI}T[G]RS,其中Gij是由交叉开关阵列102的电导(电阻的倒数)确定的N×M矩阵,RS是感测放大器的电阻值,T表示列向量VO和VI的转置。负号由在感测放大器中使用负反馈运算放大器而产生。从上述可以看出,可以利用硬件加速器100将第一向量值{bi}T的乘以矩阵值[aij]来获得第二向量值{Cj}T,其中i=1,N并且j=1,M。可以如下更详细地阐述向量操作。
a11b1+a21b2+…+aN1bN=C1
…
a1Mb1+a2Mb2+…+aNMbN=CM
使用本文描述的原理的向量处理或乘法通常通过将矩阵值[aij]映射到交叉开关阵列102上,或者另外说明,将电导值Gij编程,例如写入,到交叉开关阵列102的交叉开关连接点中,来开始。
仍参考图1,在一些示例中,可以通过在每个存储器单元108上顺序施加电压降来设置每个电导值Gij。例如,可以通过在交叉开关阵列102的第二行线104处施加等于VRow2的电压并且在阵列的第三列线106处施加等于VCol3的电压来设置电导值G2,3。电压输入VRow2可以在与j=1列线相邻的第二行线上出现的位置130处施加到第二行线。电压输入VCol3将被施加到与i=1或i=N位置相邻的第3列线。注意,当在列线106处施加电压时,可以切换出用于该列线的感测电路并且可以切换入电压驱动器。电压差VRow2-VCol3通常将基于位于交点处的存储器单元108的特性来确定所得到的电导值G2,3。当遵循本方法时,可以根据若干方案之一来寻址未选择的列线106和行线104,所述方案包括例如浮动所有未选择的列线106和行线104或使所有未选择的列线和行线接地。其它方案包括将列线106接地或将部分列线106接地。将所有未选择的列线和行线接地是有益的,这在于该方案有助于隔离未选择的列线和行线以最小化到所选择的列线106的潜行路径电流。
根据这里的示例,在存储器单元108中使用的忆阻器可具有线性电流-电压关系。线性电流-电压关系允许矩阵乘法过程中的更高的精度。然而,具有线性忆阻器的交叉开关阵列102倾向于在阵列102的编程期间具有大的潜行路径电流,特别是当交叉开关阵列102的尺寸大于某一尺寸(例如32×32)时。在这种情况下,通过所选择的忆阻器的电流可能不足以对忆阻器进行编程,这是因为大部分电流通过潜行路径。可替代地,由于潜行路径,忆阻器可能以不准确的值编程。
为了减轻这种情况下的潜行路径电流,特别是当需要较大的阵列时,诸如存取晶体管或非线性选择器的存取装置可以并入忆阻器,或者与忆阻器一起使用,以最小化阵列中的潜行路径电流。更具体地说,存储器单元应被广义地解释为包括忆阻器件,忆阻器件包括例如电阻式存储器元件、忆阻器、忆阻器和晶体管、或者忆阻器和其它元件。
在编程之后,通过施加输入电压110并将输出电流与阈值电流进行比较来进行线性变换加速器100的操作。可以通过电流比较器116将来自列线106的输出电流与阈值电流进行比较。电流比较器116可以是比较两个电流(即,输出电流和阈值电流)并输出指示哪一个更大的数字信号的电路或装置。电流比较器116可以具有两个模拟输入端和一个二进制数字输出。
通过将输出电流与阈值电流进行比较,每个电流比较器可以确定神经网络的新的节点值114。可以聚合新的节点值114以生成新的输入向量。例如,可以通过更新规则将每个输出电流与阈值电流进行比较。例如,如果特定输出电流大于或等于阈值电流θi,则将对应特定输出电流的新的节点值设置为第一值。如果特定输出电流小于阈值电流θi,则新的节点值被设置为第二值。每个输出电流可以表示为输入向量与权重矩阵的乘积之和。例如,更新规则可以表示为下面的等式:
节点值也可以被编程来获得+1或0的值,而不是上述等式中的+1和-1的值。也可以使用任何其它值对。在一些示例中,可以经由独立于交叉开关阵列102的电路将阈值电流传送到电流比较器116。此外,在一些示例中,列线106可以具有与其相关联的不同阈值电流。这在下面进一步描述。可替代地,每个列线106可以与相同的阈值电流相关联。
硬件加速器100可以被实现为计算设备中的引擎。包括示例加速器的示例计算设备可以是例如执行本文所描述的功能的个人计算机、云服务器、局域网服务器、web服务器、大型机、移动计算设备、笔记本或台式计算机、智能电视、销售点设备、可穿戴设备、任何其它合适的电子设备、或者诸如由云或互联网网络连接的设备之类的设备的组合。
图2是用于计算神经网络的节点值的第二示例硬件加速器200的图。类似于图1的硬件加速器100,线性变换加速器200可以是计算神经网络的节点值的硬件单元。硬件加速器200可以相对于表示神经网络的加权边的权重矩阵来计算神经网络的节点值。硬件加速器200可以通过以权重矩阵计算输入向量的点积,并将每列的输出电流与阈值电流进行比较来这么做。
硬件加速器200可以具有交叉开关阵列210,交叉开关阵列210可以类似于图1的交叉开关阵列102。此外,交叉开关阵列210可以具有阈值行线220,阈值行线220可以附加于用于映射权重矩阵的N×M结构。耦接到阈值线220的存储器单元可以根据对应列线的阈值电流进行编程。换句话说,阈值线220的存储器单元可以被调整到唯一的电导值,这有效地允许每个输出电流与不同的阈值电流进行比较。
例如,阈值线220可以接收阈值电压222。阈值电压然后可以通过阈值线220的每个存储器单元221,以产生每条列线的输出修正电流223。输出修正电流223可以与是输入向量和权重矩阵的点积电流的交叉开关阵列210的N×M部分的输出电流211相加以产生输出电流。
然后可以将输出电流与每个列线的阈值电流进行比较以计算新的节点值。在一些示例中,电流比较器216可以耦接到交叉开关阵列210的每条列线。因为阈值线220唯一地修改了每条列线的输出电流,所以可以在每条列线处使用相同的电流比较器216,并且可以将相同的用于比较的电流230传送到每个电流比较器216。基于更新规则,硬件加速器200可以生成新的节点值的新的输入向量214。
图3概念性地示出用于计算神经网络的节点值的第三示例硬件加速器300。分别类似于图1的硬件加速器100和图2的硬件加速器200,线性变换加速器300可以是计算神经网络的节点值的硬件单元。硬件加速器300可以相对于表示神经网络的加权边的权重矩阵来计算神经网络的节点值。硬件加速器300可以通过以权重矩阵计算输入向量的点积,并将每列的输出电流与阈值电流进行比较来这么做。
硬件加速器300可以具有交叉开关阵列310,交叉开关阵列310可以类似于图1的交叉开关阵列102。第二交叉开关阵列320可以包括阈值行线、具有与交叉开关阵列310相同数量的列线的多条列线以及耦接在阈值线与每条列线之间的阈值装置。第二交叉开关阵列320可以通过将第二交叉开关阵列320的每条列线与交叉开关阵列310的对应列线耦接而可操作地耦接到交叉开关阵列310。
可以根据交叉开关阵列310的每条列线的阈值电流来调整第二交叉开关阵列320的阈值装置。如参考图2所示,列线可以与不同的阈值电流相关联。因此,第二交叉开关阵列320的阈值装置可以修改来自交叉开关阵列310的输出电流,以产生反映对应列线的唯一阈值电流的输出电流。
示例阈值装置350被示出为是双端电气装置。阈值装置350可以包括多个组件,包括忆阻器和选择器。在所示的示例中,阈值装置350可以包括与选择器并联的忆阻器。作为说明,来自列的电流可以通过阈值装置350的忆阻器或选择器流动。忆阻器值可以调整来匹配列的期望阈值函数。忆阻器的高电导状态可以反映出较大的阈值,这样就可以从列中吸收大部分电流。如果来自列的电流减去流过并联忆阻器的电流足够高以触发选择器的绝缘体-导体转换,则选择器可以进入非常低电阻的状态。在这种情况下,高电流可以被传送出阈值装置350。
在一些实施方案中,选择器可以呈现导致非线性的负差分电阻(NDR)。负差分电阻是在某一电流范围内,施加电流的增加可以引起端子两端的电压降低的特性。在一些示例中,负差分电阻可以是对某些选择器的加热效应的结果。在一些示例中,NDR效应可以有助于选择器的非线性。选择器的其它示例包括易失性导电桥和其它类型的装置。
在被第二交叉开关阵列320修改之后,输出电流可以由电流比较器330与阈值电流进行比较。如上所述,这样做可以产生新的节点值的新的输入向量。
一旦传送新的节点值的新的输入向量,控制器340可以确定新的节点值是否是神经网络的最终节点值。例如,可以对神经网络进行建模以确定系统的最小能量。在这样的示例中,控制器340可以确定(这里表示系统的能量的)新的节点值是否是系统的局部最小值。
响应于控制器340确定新的节点值不是最终节点值,控制器340可以将新的输入向量转换成要被传送到交叉开关阵列310的多条行线的输入电压。以这种方式,神经网络可以是递归的,以计算迭代问题,例如确定系统的最小能量。
图4描绘了用于使用硬件加速器计算神经网络的节点值的示例方法400的流程图。尽管在这里分别参考图1的线性变换加速器100和图3的线性变换加速器300来描述方法400的执行,但是方法400的其它合适示例应当是显而易见的,包括图2中提供的示例。
在操作410中,权重矩阵可以被转换成图1的交叉开关阵列102或图3的交叉开关阵列310的电导值。权重矩阵可以表示任何神经网络操作。存储在交叉开关阵列102的存储器单元108中的值可以表示权重矩阵的值。在电阻式存储器的实现中,每个存储器单元102的电阻水平可以表示权重矩阵的值。以这种方式,权重矩阵可以被映射到交叉开关阵列102上。
在操作420中,可以根据在操作410中转换的电导值来编程交叉开关阵列102的存储器单元108。如前所述,存储器单元108可以例如通过具有通过它们驱动的编程信号来编程,驱动存储器单元108的状态的改变。
在操作430中,可将输入向量的值映射到输入电压110。例如,可以将输入向量的数值映射为将被传送到交叉开关阵列的多个电压值。例如,输入电压110可以是将电流驱动到交叉开关阵列102的每个存储器单元108的电压值。
在操作440中,输入电压110被传送到交叉开关阵列102的行线104,以从每条列线106传送点积电流。
在操作450中,可以根据每个列线的阈值电流来调整第二交叉开关阵列320的阈值装置350。在操作460中,来自交叉开关阵列102或交叉开关阵列310的每条列线的点积电流被传送到每个阈值装置350。因此,第二交叉开关阵列320的阈值装置可以修改来自交叉开关阵列102或交叉开关阵列310的点积电流,以产生反映对应列线的唯一阈值电流的输出电流。
在操作470中,电流比较器116或330可以根据更新规则将每个输出电流与阈值电流进行比较。比较输出电流是否等于或大于阈值电流允许确定新的二进制节点值。来自每条列线的新的节点值形成新的节点值的新的输入向量。
在操作480中,控制器340可以确定新的节点值是否是神经网络的最终节点值。响应于控制器340确定新的节点值不是最终节点值,方法400可以返回到操作430,其中新的输入向量被映射到要被传递到交叉开关阵列的输入电压。此外,在一些示例中,在操作480中,控制器340可以在已经计算了预定数量的节点值向量之后,停止该方法。可替代地,或另外地,在操作480中,控制器340可以在确定预定数量的节点值已经达到稳定(即不变的)值之后,停止该方法。
图5是示例神经网络的概念模型。本文之前参考图1描述过图5。
前面描述了用于计算神经网络的节点值的硬件加速器的多个示例及其应用。应当理解,本文所述的示例可以包括另外的组件,并且在不脱离示例或其应用的范围的情况下,可以移除或修改本文所述的一些组件。还应当理解,附图中所描绘的组件未按比例绘制,因此,组件可以具有与如图所示的不同的相对于彼此的相对尺寸。
此外,结合图1-5描述的操作顺序是示例,而不是限制性的。在不脱离所公开的示例的范围的情况下,可以使用或改变另外的或更少的操作或操作的组合。此外,与公开的示例一致的实施方式不需要以任何特定顺序执行操作序列。因此,本公开仅仅阐述了实现的可能示例,并且可以对所描述的示例进行许多变化和修改。所有这些修改和变化旨在被包括在本公开的范围内并由所附权利要求保护。
应该进一步注意的是,如在本申请和所附权利要求书中所使用地,单数形式“一”、“一个”和“该”包括复数元件,除非上下文另有明确说明。
Claims (15)
1.一种硬件加速器,包括:
交叉开关阵列,被编程为计算神经网络的节点值,所述交叉开关阵列包括多条行线、多条列线以及耦接在一条行线和一条列线的每个唯一组合之间的存储器单元,其中:
所述存储器单元根据权重矩阵进行编程;
所述多条行线中的每条行线用于根据节点值的输入向量接收输入电压;并且
所述多条列线中的每条列线用于输出表示所述输入向量和列线的点积电流的输出电流;以及
电流比较器,用于根据更新规则将每个输出电流与阈值电流进行比较,以生成新的节点值的新的输入向量。
2.根据权利要求1所述的硬件加速器,其中:
如果特定输出电流大于或等于所述阈值电流,则将对应于所述特定输出电流的新的节点值设置为第一值;并且
如果所述特定输出电流小于所述阈值电流,则将对应于所述特定输出电流的所述新的节点值设置为第二值。
3.根据权利要求1所述的硬件加速器,包括控制器,所述控制器用于:
确定所述新的节点值是否是所述神经网络的最终节点值;以及
响应于所述控制器确定所述新的节点值不是最终节点值,将所述新的输入向量映射到将被传送到所述交叉开关阵列的所述多条行线的输入电压。
4.根据权利要求1所述的硬件加速器,其中所述交叉开关阵列包括阈值行线,其中:
耦接到所述阈值行线的存储器单元根据对应列线的阈值电流进行编程;
所述阈值行线用于接收阈值电压,其中所述阈值电压用于产生每条列线的输出修正电流;并且
所述点积电流将被与所述输出修正电流相加以产生所述输出电流。
5.根据权利要求4所述的硬件加速器,其中第一列的阈值电流不同于第二列的阈值电流。
6.根据权利要求4所述的硬件加速器,其中电流比较器耦接到所述交叉开关阵列的每条列线的端部,其中每个电流比较器包括相同的电路。
7.根据权利要求1所述的硬件加速器,其中所述交叉开关阵列包括耦接到所述交叉开关阵列和所述电流比较器之间的每条列线的、用于修改所述输出电流的阈值装置。
8.根据权利要求1所述的硬件加速器,所述硬件加速器包括第二交叉开关阵列,所述第二交叉开关阵列包括阈值行线、具有与所述交叉开关阵列相同数量的列线的第二多条列线以及耦接在所述阈值行线与每条列线之间的阈值装置,其中:
根据所述交叉开关阵列的每条列线的阈值电流调整所述阈值装置;并且
通过将所述第二交叉开关阵列的每条列线耦接在所述交叉开关阵列的对应列线与对应电流比较器之间,所述第二交叉开关阵列可操作地耦接在所述交叉开关阵列和所述电流比较器之间。
9.一种用于实现递归神经网络的硬件加速器,包括:
交叉开关阵列,被编程为计算神经网络的节点值,所述交叉开关阵列包括多条行线、多条列线以及耦接在一条行线和一条列线的每个唯一组合之间的存储器单元,所述多条行线包括阈值行线,其中:
未耦接到所述阈值行线的存储器单元根据权重矩阵进行编程;
耦接到所述阈值行线的存储器单元根据对应列线的阈值电流进行编程;
所述多条行线中除了所述阈值行线之外的每条行线用于接收根据节点值的输入向量的输入电压;
所述阈值行线用于接收阈值电压,其中所述阈值电压用于产生每条列线的输出修正电流;并且
所述多条列线的各条列线用于输出表示对应的输出修正电流与所述输入向量和对应的列线的点积电流的和的输出电流;和
电流比较器,用于根据更新规则将每个输出电流与阈值电流进行比较,以生成新的节点值的新的输入向量。
10.根据权利要求9所述的硬件加速器,其中第一列的阈值电流不同于第二列的阈值电流。
11.根据权利要求9所述的硬件加速器,其中:
如果特定输出电流大于或等于所述阈值电流,则将对应于所述特定输出电流的新的节点值设置为第一值;并且
如果所述特定输出电流小于所述阈值电流,则将对应于所述特定输出电流的所述新的节点值设置为第二值。
12.根据权利要求9所述的硬件加速器,包括控制器,所述控制器用于:
确定所述新的节点值是否是所述神经网络的最终节点值;以及
响应于所述控制器确定所述新的节点值不是最终节点值,将所述新的输入向量转换为将被传送到所述交叉开关阵列的所述多条行线的输入电压。
13.一种方法,包括:
将神经网络的权重矩阵的值转换成交叉开关阵列的电导值,所述交叉开关阵列包括多条行线、多条列线以及耦接在一条行线和一条列线的每个唯一组合之间的忆阻器;和
根据所述电导值对所述交叉开关阵列的所述忆阻器进行编程;
将所述神经网络的节点值的输入向量的值映射到输入电压;
将所述输入电压传送到所述多条行线;
将输出电流从所述多个列线中的每条列线传送到相应的阈值装置以修改所述输出电流;和
由电流比较器根据更新规则将每个输出电流与阈值电流进行比较,以生成新的节点值的新的输入向量,其中:
如果特定输出电流大于或等于阈值电流,则将对应于所述特定输出电流的新的节点值设置为第一值;并且
如果所述特定输出电流小于所述阈值电流,则将对应于所述特定输出电流的所述新的节点值设置为第二值。
14.根据权利要求13所述的方法,进一步包括:
确定所述新的节点值是否是所述神经网络的最终节点值;以及
响应于所述控制器确定所述新的节点值不是最终节点值,将所述新的输入向量转换为将被传送到所述交叉开关阵列的所述多条行线的输入电压。
15.根据权利要求13所述的方法,进一步包括根据所述交叉开关阵列的每条列线的阈值电流来调整所述阈值装置,其中所述阈值装置耦接在阈值线与第二交叉开关阵列的每条列线之间,其中通过将所述第二交叉开关阵列的每条列线耦接在所述交叉开关阵列的对应列线和对应的电流比较器之间,所述第二交叉开关阵列可操作地耦接在所述交叉开关阵列和所述电流比较器之间。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/022052 WO2017155544A1 (en) | 2016-03-11 | 2016-03-11 | Hardware accelerators for calculating node values of neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533668A true CN107533668A (zh) | 2018-01-02 |
CN107533668B CN107533668B (zh) | 2021-01-26 |
Family
ID=59789690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680023103.7A Active CN107533668B (zh) | 2016-03-11 | 2016-03-11 | 用于计算神经网络的节点值的硬件加速器和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10332592B2 (zh) |
EP (1) | EP3262571B1 (zh) |
CN (1) | CN107533668B (zh) |
WO (1) | WO2017155544A1 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109524039A (zh) * | 2018-11-21 | 2019-03-26 | 复旦大学 | 一种忆阻器阻态数目扩展的结构及相关方法 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN110047542A (zh) * | 2018-01-17 | 2019-07-23 | 旺宏电子股份有限公司 | 半导体元件 |
CN110163351A (zh) * | 2018-02-13 | 2019-08-23 | 旺宏电子股份有限公司 | 用于类神经计算器系统的装置及其制造方法 |
CN110797067A (zh) * | 2019-10-21 | 2020-02-14 | 杭州闪亿半导体有限公司 | 存储阵列模块及其控制方法、装置、模组 |
CN110929859A (zh) * | 2019-10-24 | 2020-03-27 | 南京理工大学 | 一种忆阻器计算系统安全性增强方法 |
CN111555357A (zh) * | 2020-06-04 | 2020-08-18 | 西华大学 | 一种光伏发电优化控制的方法 |
CN111630505A (zh) * | 2018-01-24 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 深度学习加速器系统及其方法 |
CN112005252A (zh) * | 2018-04-16 | 2020-11-27 | 国际商业机器公司 | 具有单独权重更新和干扰电路的电阻式处理单元架构 |
CN112149051A (zh) * | 2019-06-28 | 2020-12-29 | 爱思开海力士有限公司 | 执行向量-矩阵乘法的计算电路和包括其的半导体器件 |
CN112154506A (zh) * | 2018-05-22 | 2020-12-29 | 密歇根大学董事会 | 内存处理单元 |
CN112182495A (zh) * | 2020-09-14 | 2021-01-05 | 华中科技大学 | 一种基于忆阻器的二元域矩阵运算电路 |
CN112602095A (zh) * | 2018-08-27 | 2021-04-02 | 硅存储技术股份有限公司 | 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 |
CN112823327A (zh) * | 2018-10-11 | 2021-05-18 | 国际商业机器公司 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
CN114118390A (zh) * | 2020-08-27 | 2022-03-01 | 慧与发展有限责任合伙企业 | 用于柔性电导交叉开关的系统 |
CN114372496A (zh) * | 2020-10-15 | 2022-04-19 | 慧与发展有限责任合伙企业 | 用于决策树计算的具有模拟内容可寻址存储器(a-cam)的硬件加速器 |
CN116130046A (zh) * | 2023-03-02 | 2023-05-16 | 广东技术师范大学 | 一种用于血压分级量化的模糊忆阻计算方法及系统 |
CN112182495B (zh) * | 2020-09-14 | 2024-04-19 | 华中科技大学 | 一种基于忆阻器的二元域矩阵运算电路 |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US10749711B2 (en) | 2013-07-10 | 2020-08-18 | Nicira, Inc. | Network-link method useful for a last-mile connectivity in an edge-gateway multipath system |
US10425382B2 (en) | 2015-04-13 | 2019-09-24 | Nicira, Inc. | Method and system of a cloud-based multipath routing protocol |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US10498652B2 (en) | 2015-04-13 | 2019-12-03 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
WO2017142542A1 (en) * | 2016-02-19 | 2017-08-24 | Hewlett Packard Enterprise Development Lp | Linear transformation accelerators |
GB2552014B (en) * | 2016-07-07 | 2020-05-13 | Advanced Risc Mach Ltd | Reconfigurable artificial neural networks comprising programmable non-volatile memory elements |
CN111126590B (zh) * | 2016-12-23 | 2023-09-29 | 中科寒武纪科技股份有限公司 | 一种人工神经网络运算的装置及方法 |
US11252079B2 (en) | 2017-01-31 | 2022-02-15 | Vmware, Inc. | High performance software-defined core network |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US11121962B2 (en) | 2017-01-31 | 2021-09-14 | Vmware, Inc. | High performance software-defined core network |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10992558B1 (en) | 2017-11-06 | 2021-04-27 | Vmware, Inc. | Method and apparatus for distributed data network traffic optimization |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US11037330B2 (en) | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US10523539B2 (en) | 2017-06-22 | 2019-12-31 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
US10699785B2 (en) | 2017-09-29 | 2020-06-30 | Crossbar, Inc. | Computing memory architecture |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999165B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud |
US11089111B2 (en) | 2017-10-02 | 2021-08-10 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US10778466B2 (en) | 2017-10-02 | 2020-09-15 | Vmware, Inc. | Processing data messages of a virtual network that are sent to and received from external service machines |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11222259B2 (en) * | 2017-12-13 | 2022-01-11 | International Business Machines Corporation | Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks |
EP3729340A4 (en) * | 2017-12-18 | 2021-12-29 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
WO2019161511A1 (en) | 2018-02-26 | 2019-08-29 | Orpyx Medical Technologies Inc. | Resistance measurement array |
JP7130766B2 (ja) * | 2018-04-05 | 2022-09-05 | レイン・ニューロモーフィックス・インコーポレーテッド | 効率的な行列乗算のためのシステムおよび方法 |
US11568227B1 (en) | 2018-04-20 | 2023-01-31 | Perceive Corporation | Neural network inference circuit read controller with multiple operational modes |
US11222257B1 (en) | 2018-04-20 | 2022-01-11 | Perceive Corporation | Non-dot product computations on neural network inference circuit |
US11468145B1 (en) | 2018-04-20 | 2022-10-11 | Perceive Corporation | Storage of input values within core of neural network inference circuit |
US11586910B1 (en) | 2018-04-20 | 2023-02-21 | Perceive Corporation | Write cache for neural network inference circuit |
US11250326B1 (en) | 2018-04-20 | 2022-02-15 | Perceive Corporation | Splitting neural network filters for implementation by neural network inference circuit |
US10977338B1 (en) | 2018-04-20 | 2021-04-13 | Perceive Corporation | Reduced-area circuit for dot product computation |
US11210586B1 (en) | 2018-04-20 | 2021-12-28 | Perceive Corporation | Weight value decoder of neural network inference circuit |
US11783167B1 (en) | 2018-04-20 | 2023-10-10 | Perceive Corporation | Data transfer for non-dot product computations on neural network inference circuit |
US11049013B1 (en) * | 2018-04-20 | 2021-06-29 | Perceive Corporation | Encoding of weight values stored on neural network inference circuit |
JP6996411B2 (ja) * | 2018-04-25 | 2022-01-17 | 株式会社デンソー | ニューラルネットワーク回路 |
US11403518B2 (en) * | 2018-04-25 | 2022-08-02 | Denso Corporation | Neural network circuit |
US10440341B1 (en) * | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US11061646B2 (en) * | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US10490273B1 (en) | 2018-10-15 | 2019-11-26 | International Business Machines Corporation | Linearly weight updatable CMOS synaptic array without cell location dependence |
US11361050B2 (en) | 2018-11-20 | 2022-06-14 | Hewlett Packard Enterprise Development Lp | Assigning dependent matrix-vector multiplication operations to consecutive crossbars of a dot product engine |
US11604973B1 (en) | 2018-12-05 | 2023-03-14 | Perceive Corporation | Replication of neural network layers |
CN109657787B (zh) * | 2018-12-19 | 2022-12-06 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
US11347297B1 (en) | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
JP2020144958A (ja) | 2019-03-05 | 2020-09-10 | キオクシア株式会社 | メモリシステムおよび方法 |
US11443797B2 (en) * | 2019-03-26 | 2022-09-13 | Macronix International Co., Ltd. | Neural network computation method and apparatus using adaptive data representation |
US11373092B2 (en) | 2019-04-10 | 2022-06-28 | International Business Machines Corporation | Training of artificial neural networks |
US11042715B2 (en) | 2019-04-11 | 2021-06-22 | International Business Machines Corporation | Electronic system for performing a multiplication of a matrix and vector |
CN110033086B (zh) * | 2019-04-15 | 2022-03-22 | 广州异构智能科技有限公司 | 用于神经网络卷积运算的硬件加速器 |
US11610105B2 (en) * | 2019-04-17 | 2023-03-21 | Hewlett Packard Enterprise Development Lp | Systems and methods for harnessing analog noise in efficient optimization problem accelerators |
US11544540B2 (en) * | 2019-05-10 | 2023-01-03 | Hewlett Packard Enterprise Development Lp | Systems and methods for neural network training and deployment for hardware accelerators |
US11121985B2 (en) | 2019-08-27 | 2021-09-14 | Vmware, Inc. | Defining different public cloud virtual networks for different entities based on different sets of measurements |
US11044190B2 (en) | 2019-10-28 | 2021-06-22 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11714999B2 (en) * | 2019-11-15 | 2023-08-01 | International Business Machines Corporation | Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11394640B2 (en) | 2019-12-12 | 2022-07-19 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US11606712B2 (en) | 2020-01-24 | 2023-03-14 | Vmware, Inc. | Dynamically assigning service classes for a QOS aware network link |
US11450712B2 (en) | 2020-02-18 | 2022-09-20 | Rain Neuromorphics Inc. | Memristive device |
US11477127B2 (en) | 2020-07-02 | 2022-10-18 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11443171B2 (en) | 2020-07-15 | 2022-09-13 | International Business Machines Corporation | Pulse generation for updating crossbar arrays |
US11568217B2 (en) | 2020-07-15 | 2023-01-31 | International Business Machines Corporation | Sparse modifiable bit length deterministic pulse generation for updating analog crossbar arrays |
US11709710B2 (en) | 2020-07-30 | 2023-07-25 | Vmware, Inc. | Memory allocator for I/O operations |
DE102020210191A1 (de) | 2020-08-12 | 2022-02-17 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Durchführen einer oder mehrerer Vektor-Matrix-Operationen, Recheneinheit und Rechenmodul zu dessen Durchführung |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
CN116783874A (zh) | 2021-01-18 | 2023-09-19 | Vm维尔股份有限公司 | 网络感知的负载平衡 |
US11567730B2 (en) * | 2021-01-31 | 2023-01-31 | Ceremorphic, Inc. | Layout structure for shared analog bus in unit element multiplier |
US11509571B1 (en) | 2021-05-03 | 2022-11-22 | Vmware, Inc. | Cost-based routing mesh for facilitating routing through an SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US11489720B1 (en) | 2021-06-18 | 2022-11-01 | Vmware, Inc. | Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics |
US11375005B1 (en) | 2021-07-24 | 2022-06-28 | Vmware, Inc. | High availability solutions for a secure access service edge application |
CN115840527A (zh) * | 2021-09-22 | 2023-03-24 | 河北大学 | 应用于忆阻器阵列权重调制和图像识别的电路系统 |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
CN113987985B (zh) * | 2021-11-15 | 2024-04-16 | 武汉理工大学 | 基于忆阻器交叉阵列神经网络加速器热效应优化方法 |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555439A (en) * | 1991-06-12 | 1996-09-10 | Hitachi, Ltd. | Learning system and a learning pattern showing method for a neural network |
US20150347896A1 (en) * | 2014-05-27 | 2015-12-03 | Purdue Research Foundation | Electronic comparison systems |
CN105160401A (zh) * | 2015-08-27 | 2015-12-16 | 电子科技大学 | 一种基于忆阻器阵列的wta神经网络及其应用 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7902867B2 (en) * | 2006-04-03 | 2011-03-08 | Blaise Laurent Mouttet | Memristor crossbar neural interface |
JP2010049776A (ja) * | 2008-08-25 | 2010-03-04 | Panasonic Corp | 不揮発性メモリ装置 |
EP2230633A1 (en) | 2009-03-17 | 2010-09-22 | Commissariat à l'Énergie Atomique et aux Énergies Alternatives | Neural network circuit comprising nanoscale synapses and CMOS neurons |
US9281029B2 (en) | 2012-06-15 | 2016-03-08 | Sandisk 3D Llc | Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof |
US9152827B2 (en) | 2012-12-19 | 2015-10-06 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
BR112016029682A2 (pt) | 2014-06-19 | 2018-07-10 | The Univ Of Florida Research Foundation Inc | redes neurais de nanofibras memristivas. |
KR102215359B1 (ko) | 2014-08-01 | 2021-02-15 | 삼성전자주식회사 | 비휘발성 메모리 장치와 그 센싱 방법 |
-
2016
- 2016-03-11 US US15/570,951 patent/US10332592B2/en active Active
- 2016-03-11 EP EP16893765.4A patent/EP3262571B1/en active Active
- 2016-03-11 CN CN201680023103.7A patent/CN107533668B/zh active Active
- 2016-03-11 WO PCT/US2016/022052 patent/WO2017155544A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555439A (en) * | 1991-06-12 | 1996-09-10 | Hitachi, Ltd. | Learning system and a learning pattern showing method for a neural network |
US20150347896A1 (en) * | 2014-05-27 | 2015-12-03 | Purdue Research Foundation | Electronic comparison systems |
CN105160401A (zh) * | 2015-08-27 | 2015-12-16 | 电子科技大学 | 一种基于忆阻器阵列的wta神经网络及其应用 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047542A (zh) * | 2018-01-17 | 2019-07-23 | 旺宏电子股份有限公司 | 半导体元件 |
CN111630505A (zh) * | 2018-01-24 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 深度学习加速器系统及其方法 |
CN110163351B (zh) * | 2018-02-13 | 2023-06-30 | 旺宏电子股份有限公司 | 用于类神经计算器系统的装置及其制造方法 |
CN110163351A (zh) * | 2018-02-13 | 2019-08-23 | 旺宏电子股份有限公司 | 用于类神经计算器系统的装置及其制造方法 |
CN112005252B (zh) * | 2018-04-16 | 2023-06-13 | 国际商业机器公司 | 具有单独权重更新和干扰电路的电阻式处理单元架构 |
CN112005252A (zh) * | 2018-04-16 | 2020-11-27 | 国际商业机器公司 | 具有单独权重更新和干扰电路的电阻式处理单元架构 |
TWI721431B (zh) * | 2018-05-22 | 2021-03-11 | 密西根大學董事會 | 一種用於執行乘法累加(mac)運算與計算向量矩陣乘法之記憶體內計算系統與方法 |
CN112154506A (zh) * | 2018-05-22 | 2020-12-29 | 密歇根大学董事会 | 内存处理单元 |
US11562788B2 (en) | 2018-05-22 | 2023-01-24 | The Regents Of The University Of Michigan | Memory processing unit |
US10943652B2 (en) | 2018-05-22 | 2021-03-09 | The Regents Of The University Of Michigan | Memory processing unit |
CN112602095B (zh) * | 2018-08-27 | 2022-05-27 | 硅存储技术股份有限公司 | 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 |
CN112602095A (zh) * | 2018-08-27 | 2021-04-02 | 硅存储技术股份有限公司 | 用于深度学习神经网络中使用的模拟神经存储器系统中的存储器单元的温度和泄漏补偿 |
CN112823327A (zh) * | 2018-10-11 | 2021-05-18 | 国际商业机器公司 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
CN112823327B (zh) * | 2018-10-11 | 2022-12-13 | 国际商业机器公司 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
CN109524039A (zh) * | 2018-11-21 | 2019-03-26 | 复旦大学 | 一种忆阻器阻态数目扩展的结构及相关方法 |
CN109800870B (zh) * | 2019-01-10 | 2020-09-18 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN112149051A (zh) * | 2019-06-28 | 2020-12-29 | 爱思开海力士有限公司 | 执行向量-矩阵乘法的计算电路和包括其的半导体器件 |
CN112149051B (zh) * | 2019-06-28 | 2024-03-26 | 爱思开海力士有限公司 | 执行向量-矩阵乘法的计算电路和包括其的半导体器件 |
CN110797067B (zh) * | 2019-10-21 | 2021-10-22 | 上海闪易半导体有限公司 | 存储阵列模块及其控制方法、装置、模组 |
CN110797067A (zh) * | 2019-10-21 | 2020-02-14 | 杭州闪亿半导体有限公司 | 存储阵列模块及其控制方法、装置、模组 |
CN110929859B (zh) * | 2019-10-24 | 2022-09-06 | 南京理工大学 | 一种忆阻器计算系统安全性增强方法 |
CN110929859A (zh) * | 2019-10-24 | 2020-03-27 | 南京理工大学 | 一种忆阻器计算系统安全性增强方法 |
CN111555357A (zh) * | 2020-06-04 | 2020-08-18 | 西华大学 | 一种光伏发电优化控制的方法 |
CN114118390A (zh) * | 2020-08-27 | 2022-03-01 | 慧与发展有限责任合伙企业 | 用于柔性电导交叉开关的系统 |
CN114118390B (zh) * | 2020-08-27 | 2023-01-31 | 慧与发展有限责任合伙企业 | 硬件加速器和混合电阻器忆阻器交叉开关阵列电路 |
CN112182495A (zh) * | 2020-09-14 | 2021-01-05 | 华中科技大学 | 一种基于忆阻器的二元域矩阵运算电路 |
CN112182495B (zh) * | 2020-09-14 | 2024-04-19 | 华中科技大学 | 一种基于忆阻器的二元域矩阵运算电路 |
CN114372496A (zh) * | 2020-10-15 | 2022-04-19 | 慧与发展有限责任合伙企业 | 用于决策树计算的具有模拟内容可寻址存储器(a-cam)的硬件加速器 |
CN116130046B (zh) * | 2023-03-02 | 2024-03-08 | 广东技术师范大学 | 一种用于血压分级量化的模糊忆阻计算方法及系统 |
CN116130046A (zh) * | 2023-03-02 | 2023-05-16 | 广东技术师范大学 | 一种用于血压分级量化的模糊忆阻计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10332592B2 (en) | 2019-06-25 |
CN107533668B (zh) | 2021-01-26 |
EP3262571B1 (en) | 2022-03-02 |
EP3262571A4 (en) | 2018-04-11 |
WO2017155544A1 (en) | 2017-09-14 |
US20180114569A1 (en) | 2018-04-26 |
EP3262571A1 (en) | 2018-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533668A (zh) | 用于计算神经网络的节点值的硬件加速器 | |
US10534840B1 (en) | Multiplication using non-volatile memory cells | |
Choi et al. | A self-rectifying TaO y/nanoporous TaO x memristor synaptic array for learning and energy-efficient neuromorphic systems | |
Chen et al. | Accelerator-friendly neural-network training: Learning variations and defects in RRAM crossbar | |
US10529418B2 (en) | Linear transformation accelerators | |
CN111433792B (zh) | 可编程可重置人工神经网络的基于计数器的电阻处理单元 | |
Demin et al. | Hardware elementary perceptron based on polyaniline memristive devices | |
JP5160304B2 (ja) | 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法 | |
CN109492187A (zh) | 用于执行模拟复向量矩阵乘法的方法和系统 | |
US10042819B2 (en) | Convolution accelerators | |
CN107533862A (zh) | 用于计算矩阵乘法的交叉阵列 | |
CN109214510A (zh) | 神经形态多位式数字权重单元 | |
CN108921290A (zh) | 神经突触单元电路、神经网络电路和信息处理系统 | |
US20200218967A1 (en) | Complex-Valued Neural Networks | |
CN107533858A (zh) | 用于计算矩阵乘法的交叉杆阵列 | |
CN110383282A (zh) | 用于混合信号计算的系统和方法 | |
US11216728B2 (en) | Weight matrix circuit and weight matrix input circuit | |
CN111133431B (zh) | 含电阻元件的数学问题求解电路 | |
US11133058B1 (en) | Analog computing architecture for four terminal memory devices | |
JPH03236275A (ja) | メモリ素子およびメモリ装置 | |
Mladenov et al. | Learning of an Artificial Neuron with Resistor-Memristor Synapses | |
Pyo et al. | Classification Performances due to Asymmetric Nonlinear Weight Updates in Analog Artificial Synapse-Based Hardware Neural Networks | |
Il’yasov et al. | Frequency-Coded Control of the Conductance of Memristors Based on Nanoscale Layers of LiNbO3 and (Co40Fe40B20) x (LiNbO3) 100–x Composite in Trained Spiking Neural Networks | |
Cho et al. | Influence of memristor 4th fundamental circuit component on nano-electronics educational platform | |
CN110825345B (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 |