CN108780492B - 模拟协处理器 - Google Patents
模拟协处理器 Download PDFInfo
- Publication number
- CN108780492B CN108780492B CN201780016190.8A CN201780016190A CN108780492B CN 108780492 B CN108780492 B CN 108780492B CN 201780016190 A CN201780016190 A CN 201780016190A CN 108780492 B CN108780492 B CN 108780492B
- Authority
- CN
- China
- Prior art keywords
- vmm
- bit
- memristor
- array
- circuit
- 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.)
- Expired - Fee Related
Links
- 239000013598 vector Substances 0.000 claims abstract description 38
- 239000011159 matrix material Substances 0.000 claims abstract description 26
- 238000007667 floating Methods 0.000 claims description 42
- 238000003491 array Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000002939 conjugate gradient method Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 claims description 2
- 229920005994 diacetyl cellulose Polymers 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 22
- 230000006870 function Effects 0.000 abstract description 12
- 230000003595 spectral effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 238000004613 tight binding model Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/19—Arrangements for performing computing operations, e.g. operational amplifiers for forming integrals of products, e.g. Fourier integrals, Laplace integrals, correlation integrals; for analysis or synthesis of functions using orthogonal 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Discrete Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
一种协处理器被配置用于执行向量矩阵乘法(VMM)以求解诸如偏微分方程(PDE)的计算问题。可通过利用模拟纵横阵列调用输入信号与傅里叶基函数的VMM来实现模拟离散傅里叶变换(DFT)。可通过实现频谱PDE求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。模拟纵横阵列可在CMOS和忆阻器或者包括CMOS和忆阻器的组合的混合解决方案中实现。
Description
相关申请
本申请要求2016年2月8日提交的美国临时申请No.62/292,458的权益。上述申请的完整教导通过引用并入本文。
背景技术
忆阻器是行为像电阻开关一样的器件,其可基于所施加的电压和电流的历史保持内阻状态。忆阻器可存储和处理信息,并且提供超过传统集成电路技术的若干性能特性。重要的一类忆阻器件是基于离子运动的双端电阻开关,其由简单的导体-绝缘体-导体薄膜叠层构建而成。对于大规模应用,忆阻器器件可按照纵横(crossbar)阵列的形式使用。
发明内容
在一个实施方式中,一种电路经由向量矩阵乘法(VMM)提供模拟协处理。该电路可包括信号生成器、忆阻器网络和支持输入/输出(I/O)电路。信号生成器基于VMM的至少一个系数来生成编程信号。忆阻器网络包括忆阻器阵列。读/写控制电路可被配置为在忆阻器网络处选择性地允许读和写操作。忆阻器控制电路可被配置为选择性地允许忆阻器的选择,其中忆阻器控制电路可包括列开关复用器、行开关复用器和地址编码器中的一个或更多个。写电路可被配置为基于编程信号设定网络内的至少一个电阻值,其中写电路可包括电压转换器/驱动器。读输入电路可被配置为将至少一个输入信号施加到忆阻器网络,该输入信号与向量对应,其中读输入电路可包括电压转换器/驱动器。读出电路可被配置为读取在忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号。
在另外的实施方式中,忆阻器网络可包括按照分压器配置布置的多个忆阻器。忆阻器网络还可包括电路元件的阵列,各个电路元件包括与晶体管串联的忆阻器,该晶体管被配置为选择性地允许电流通过相应忆阻器。
在另外的实施方式中,编程信号可基于至少一个离散傅里叶变换(DFT)系数。忆阻器网络包括忆阻器的多个子阵列,多个子阵列中的第一子阵列被应用于DFT系数的实部,多个子阵列中的第二子阵列被应用于DFT子阵列的虚部。输入信号可具有电压值,该电压值是预期用于乘法的输入向量的函数。读出电路还可被配置为作为向量与忆阻器网络的编程的电阻值的VMM函数的结果生成输出信号。
在另外的实施方式中,读出电路还可被配置为检测忆阻器网络的多个节点处的电流,其中输出信号是所述电流的函数。读出电路还可包括被配置为输出表示输出信号的数字值的模数转换器(ADC)。写电路还可被配置为基于编程信号来生成基于乘法系数的至少一个模拟设定信号以设定所述至少一个电阻值,其中所述至少一个模拟信号被施加到忆阻器网络。数模转换器(DAC)可被配置为基于编程信号生成所述至少一个模拟设定信号。
在另外的实施方式中,数模转换器(DAC)可被配置为基于所述向量来生成所述至少一个输入信号。读出电路还可包括被配置为将输出电流转换为电压值的跨阻放大器,输出信号包括所述电压值。读电路还可被配置为生成至少一个模拟输入信号以与忆阻器网络的至少一个电阻值相乘,所述至少一个模拟输入信号被施加到忆阻器网络。
另外的实施方式包括一种协处理器电路,其包括向量矩阵乘法(VMM)电路的阵列以及支持I/O电路。VMM电路的阵列可包括上述特征中的一个或更多个,包括被配置为基于VMM的至少一个系数生成编程信号的信号生成器以及忆阻器网络。此外,读DAC阵列可被配置为将至少一个输入向量转换为模拟信号以施加到述忆阻器网络。写DAC阵列可被配置为基于乘法系数将至少一个设定信号转换为模拟设定信号以施加到忆阻器网络。ADC阵列可被配置为将来自忆阻器网络的至少一个VMM模拟输出转换为数字值。移位寄存器阵列可被配置为将ADC阵列的数字值格式化。加法器阵列可被配置为将来自忆阻器网络阵列的输出相加,各个加法器执行与所述系数关联的VMM运算的子集。组合器可被配置为将加法器阵列中的每一个的输出信号组合以生成组合的输出信号。
在另外的实施方式中,处理器可被配置为基于数学运算为各个VMM电路生成编程信号。所述数学运算可包括求解至少一个偏微分方程(PDE)的运算。所述数学运算可包括至少一个N位定点计算,VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。所述数学运算可包括至少一个N位浮点计算,VMM电路配置多个相应忆阻器以表示总共N位中的T位子集。
在另外的实施方式中,VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)。所述阵列可被配置为通过将与第一1D DFT对应的VMM的所述至少一个系数应用于阵列的第一子集,并且将第一子集的输出作为第二1D DFT的输入应用于阵列的第二子集,来处理2DDFT。VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)以通过频谱方法求解偏微分方程。此外,VMM的所述至少一个系数可对应于离散傅里叶变换(DFT)以执行距离-多普勒信号处理。
在另外的实施方式中,VMM的所述至少一个系数可对应于卷积系数以在卷积神经网络中执行推断。VMM的所述至少一个系数可对应于格林函数表示以求解偏微分方程。组合器还可被配置为与外围组件互连快速(PCIe)主机处理器接口。
在另外的实施方式中,VMM的所述至少一个系数可对应于网格格林函数表示以求解偏微分方程。VMM的所述至少一个系数可对应于通过共轭梯度法求解的能量最小化优化问题。共轭梯度法可被配置为求解偏微分方程。共轭梯度法可被配置为在神经网络内执行反向传播算法。
另外的实施方式可包括一种执行VMM运算的方法。可基于VMM的至少一个系数生成编程信号。在具有忆阻器的阵列的忆阻器网络处选择性地允许读和写操作。选择性地允许忆阻器的选择。可基于编程信号设定网络内的至少一个电阻值。至少一个输入信号可被施加到忆阻器网络,输入信号与向量对应。可读取忆阻器网络处的至少一个电流值并且可基于所述至少一个电流值生成输出信号。
示例实施方式提供被配置用于求解偏微分方程(PDE)的模拟协处理器。此外,可通过利用模拟纵横阵列调用输入信号与傅里叶基函数的向量矩阵乘法(VMM)来实现模拟离散傅里叶变换(DFT)。可通过实现频谱PDE求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。模拟纵横阵列可在CMOS和忆阻器或者包括CMOS和忆阻器的组合的混合解决方案中实现。
附图说明
上述内容将从下面如附图中所示的本发明的示例实施方式的更具体的描述显而易见,在附图中相同的标号贯穿不同的示图表示相同的部分。附图未必按比例,而是将重点放在示出本发明的实施方式上。
图1是可在一个实施方式中实现的晶体管/忆阻器纵横阵列的电路图。
图2是忆阻器阵列的电路图。
图3是包括一个实施方式中的协处理器的系统的框图。
图4是可在图3的协处理器中实现的向量矩阵乘法(VMM)引擎的阵列的框图。
图5是一个实施方式中的VMM引擎的框图。
图6是可实现实施方式的外围组件互连快速(PCIe)架构的框图。
图7是一个实施方式中的H树架构的框图。
具体实施方式
本发明的示例实施方式的描述如下。
图1是可在一个实施方式中实现的晶体管/忆阻器纵横网络100的电路图。网络100包括晶体管/忆阻器阵列150(也称为纵横或纵横阵列),其包括布置成行和列的若干单元(也称为器件),包括单元140。单元包括与晶体管142串联连接的忆阻器144,其中晶体管142选择性地允许电流通过相应忆阻器144。晶体管142的栅极可连接到用于控制所述电流的晶体管控制电路125。此外,行选择电路110和列选择电路112选择性地允许电流通过给定行和给定列的单元。晶体管控制电路125、行选择电路110和列选择电路112一起允许电流被施加到阵列150的一个或更多个单元的选择,同时防止电流到达未选单元。
忆阻器纵横阵列(例如,网络100的阵列150)可提供若干有益特征,例如高可扩展性、快速开关速度、非易失性、大电阻比、非破坏性读取、3D可层叠性、高CMOS兼容性和可制造性。然而,该架构也可具有若干应用相关的挑战。特别是关于向量矩阵乘法(VMM),在纵横阵列中实现高器件隔离并获得可接受的模拟行为是重要问题。
忆阻器纵横阵列中的各个忆阻器器件的操作影响紧邻的其它器件的操作。例如,纵横阵列可表现出称为“潜行路径电流”的现象,其是流过未选忆阻器器件的电流之和。使用选择器件来减小该现象,选择器件可连接到纵横阵列的各列或行以驱动忆阻开关。选择器件可驱动的总电流可由其沟道宽度确定。然而,终端选择器件的电流-电压关系可能具有高非线性。这种效应违背了欧姆定律,因此,可使用三端选择器(例如,晶体管142)来减轻潜行路径电流问题并提供可接受的模拟行为,但是晶体管尺寸限制了可实现的忆阻器纵横密度。如图1所示,在各个交叉点处与忆阻器器件串联的晶体管可被称为1T1M(或1T1R)架构。通过在导通ON开关期间控制忆阻器的电流合规性(compliance),阵列150的各个单元140的电阻值可被设定为高电阻状态(HRS)和低电阻状态(LRS)之间的任何目标值,这被称为模拟行为。在1T1M结构中,可通过将晶体管的栅极电压设定为不同的电平来容易地实现电流合规性的控制。这允许忆阻器144中的模拟值的编程。
图2是可包括上述网络100的一个或更多个特征的忆阻器阵列250的电路图。具体地讲,阵列250可包括多个行(V1 1-VN 1)和列(V1 0-VM 0)的忆阻器(例如,忆阻器244)。各个忆阻器也可配置有选择器件(例如,晶体管)以形成单元(例如,上述单元140)。
忆阻器纵横阵列(例如,阵列250)可实现矩阵相关计算,并且由于高度并行的计算模型、电信号的有效使用以及硬件实现中的物理定律,与图形处理单元(“GPU”)或其它加速器相比可实现计算速度的超过100X的改进。忆阻器器件的低操作能量(<pJ)进一步降低了功耗。通过忆阻器纵横阵列执行向量和矩阵计算。如图2所示,与输入向量对应的输入电压VI沿着根据N×M矩阵输入210编程的N×M阵列的行施加。通过测量输出电压VO来通过列收集输出电流。在各列处,每一个输入电压由对应忆阻(1/Gi,j)加权,加权和出现在输出电压处。因此,输入电压和输出电压之间的关系可按照向量矩阵乘法形式VO=-VIGRs(运放的负反馈)表示,其中G是由忆阻器纵横阵列的电导确定的N×M矩阵。
可通过采用优良的开关材料(例如,TaOx和HfOx)和制造工艺来降低器件可变性。可在VMM应用中容易地采用反馈电路以将单元切换到目标值。为了提供VMM运算,小电压可作为输入施加在阵列250的行上,并且可测量列上的输出电流或电压。例如,各列处的输出电流可由转换器电路220读取并转换为对应电压。所施加的电压可保持低于忆阻器器件的有效开关阈值电压,因此,在相邻的忆阻器器件中没有任何明显的电阻改变。该操作可被称为“忆阻器读取”,可在无穷的持久循环和低的错误率或不精确下重复。更具挑战性但不太频繁的VMM运算是将矩阵映射在忆阻器纵横阵列上,这需要将电阻值编程(写入)到纵横阵列中的忆阻器器件中
科学计算中的许多应用(包括偏微分方程(PDE)的求解)使用浮点计算。除了引言和背景技术部分中描述的定点式计算之外,下述实施方式中的模拟协处理器支持浮点格式的向量矩阵乘法。浮点是在范围和精度之间权衡的实数的表示。在浮点表示中,数由固定数量的有效数位(称为尾数(significand))表示并使用某一固定基数的指数缩放。一般表示为:尾数×基数指数的形式。多年来已使用了各种浮点表示,但自20世纪90年代以来,最常用的浮点表示如IEEE754标准所定义。
16位浮点的指数是0至31的5位无符号整数。所使用的实际指数值是减去了偏差的指数值。16位浮点表示的偏差值为15。因此,指数的有效值范围从-15至16。真尾数包括具有隐藏前导位的二进制小数点右侧的10个小数位。仅10个小数位被存储在存储器中,但总精度为11位。这对应于3.311十进制数。
32位浮点的指数是0至255的8位无符号整数。所使用的实际指数值是减去了偏差的指数值。32位浮点表示的偏差值为127。因此,指数的有效值范围从-127至128。真尾数包括具有隐藏前导位的二进制小数点右侧的23个小数位。仅23个小数位被存储在存储器中,但总精度为24位。这对应于7.22十进制数。
16位浮点数的二进制表示可由下式给出:
该式得出十进制值:
使用16位浮点表示可表示的最小归一化正值为2-14=6.1×10-5,最大值为(2-2-10)×215=65504。使用32位浮点表示可表示的最小归一化正值为2-126=1.18×10-38。
关于浮点加法,两个浮点数X和Y可相加。X和Y的尾数被表示为Xs和Ys,指数部分分别被表示为Xe和Ye。浮点数可如下相加:(a)通过明确表示“1”来将两个数转换为科学记数法。(b)为了将这些数相加,指数应该相同。该步骤通过使尾数(mantissa)的小数点移位来实现。(c)将两个尾数相加。(d)调节结果并将其表示为浮点数。
关于浮点乘法,两个浮点数X和Y可相乘。X和Y的尾数被表示为Xs和Ys,指数部分分别被表示为Xe和Ye。然后,X和Y的乘法由下式给出:
在下述实施方式中,可通过将指数归一化来处理浮点数,这将其转换为尾数对齐的固定点值。将指数归一化需要位移位和填充,这是正处理的最大和最小指数值之差的直接函数。在一些应用中,对于单精度浮点计算,值可为278位那么大。为了规避该问题,VMM阵列的各列的元素可对齐。这种布置方式利用了邻近元素的指数之差显著小于极值的事实。对于用于与矩阵值相乘的向量输入,可遵循相同的归一化过程。纵横阵列的各列的归一化指数值可被存储,以在将相乘和累加的结果转换回浮点精度的反归一化处理期间使用。
图3是一个实施方式中的协处理器300的框图,其可被应用于执行诸如N位浮点计算的计算。协处理器300可被称为模拟协处理器,因为其实现如下所述执行计算的模拟电路(例如,一个或更多个忆阻器网络)。计算所需的数据可从数字数据总线(例如,PCIe总线)接收到用于指数的归一化块305,其通过使它们的指数相同来将数据块归一化。这些归一化的值可被存储到芯片上数字存储器306,其由处理器310通过N通道总线访问。处理器310与VMM核心320接口。VMM核心320可作为协处理器的计算核心操作,并且可由P×P个VMM引擎的阵列组成。为清楚,示出了这种阵列的两个通道322a、322n。给定通道322n可包括写和读数模转换器(DAC)330、340、P×P VMM引擎阵列350、模数转换器(ADC)阵列360、移位寄存器阵列362和加法器阵列364。各个VMM引擎(例如,VMM引擎阵列350的引擎)可包括M×M忆阻器纵横阵列(例如,如上所述的阵列150、250)以及相应读和写电路连同行和列复用器(用于对忆阻器寻址以进行读和写操作)。下面参照图5更详细地描述示例VMM引擎。
图4是在图3的协处理器300的VMM核心320中可实现的向量矩阵乘法(VMM)引擎(例如,VMM引擎470)的阵列420的框图。各个VMM引擎470可连接到相应DAC和ADC以形成阵列的各个单元460a-n。
图5是VMM引擎500的框图。VMM引擎500可被实现为图3的协处理器300的VMM核心320的VMM引擎阵列350的引擎,并且可被实现为图4的阵列420的VMM引擎460。VMM引擎500可包括具有忆阻器单元(包括串联连接的开关和忆阻器)的阵列(1,1-M,M)的忆阻器网络500,并且可包括上面参照图1和图2描述的忆阻器网络100和阵列的一个或更多个特征。VMM引擎还包括通过设定网络550中的忆阻器的电阻值来对忆阻器网络550进行编程(也称为“写操作”)的电路以及将输入信号施加到编程的忆阻器网络550并检测所得电流和/或电压(也称为“读操作”)的电路。
具体地讲,读/写控制电路510可选择性地允许读和写操作。对于写操作,电压转换器/驱动器512可接收编程信号(“写信号”)并生成用于设定忆阻器网络550的电阻值的对应信号(例如,电压值)。列开关复用器516和行开关复用器518允许阵列550的一个或更多个忆阻器单元的选择。编码器电路515将地址信号转换为指示用于通过复用器516、518选择的忆阻器单元的子集的信号。对于读操作,电压转换器/驱动器570可接收指示向量的“读信号”并将对应一组输入信号施加到忆阻器网络550。然后,读出电路580可通过忆阻器网络550接收并组合所得电流,并且跨阻放大器590可接收所得电流并生成具有基于该电流的电压值的输出信号。
下面参照图3至图5描述示例实施方式中的协处理器和相应VMM引擎的操作。
写操作
再参照图3,为了使得协处理器300能够执行计算,相应VMM引擎可经历写操作,其可设定VMM引擎的忆阻器的电阻值。具体地讲,写DAC阵列330可将矩阵值写到VMM引擎阵列350的忆阻器中。由于各个VMM引擎500的大小为M×M,所以每VMM引擎的写DAC的数量也可为M。各个写DAC 330将T位写到各个忆阻器中,并且在单个时钟周期中可写入一整行。写DAC阵列330可利用各个VMM引擎500(图5)的写电路来写入引擎忆阻器阵列550的忆阻器中。
由于指数已被归一化(例如,通过归一化块305),所以只有尾数可能需要协处理器300的处理。N位浮点数具有M个尾数位。因此,可能需要各行中的P个VMM引擎以按照每单元T位处理M位。例如,VMM引擎“1”(例如,引擎500)的第一忆阻器可存储T个MSB位,并且VMM引擎“P”的第一忆阻器存储T个LSB位。VMM引擎的其它(P-1)行可被写入相同的值。各个写DAC330可具有来自处理器310的各个通道的T位输入。该T位数字数据可被转换为作为忆阻器电导状态存储的单个模拟值。可在单个时钟循环中写入VMM引擎500的各行。例如,假定忆阻器写时间为4ns,则M×M纵横可能需要M*4ns来写入所有值。写操作可被视为开销,因为在所有忆阻器被写入之前无法开始VMM运算。为了避免这种开销,可使用交织方法,其中两个VMM核心将按照交织方式操作。
读操作
一旦网络550的所有忆阻器被写入,就可使用VMM核心320的VMM引擎来执行读操作(VMM运算)。如图3所示,各个VMM引擎阵列350具有其自己的读DAC阵列340。阵列340的各个DAC可为T位宽并且将T位值输入到忆阻器纵横阵列的各行中。由于VMM引擎的大小为M×M,所以各个阵列中的读DAC的数量也为M。读和写操作可以是顺序的,因此,相同的M个通道可用于读和写操作二者。读DAC 340可用于将向量输入到VMM引擎阵列350的忆阻器纵横阵列中。读DAC可提供输入向量以与存储在忆阻器纵横阵列中的矩阵值相乘。由于输入向量也是N位浮点数,所以尾数为M位宽。各个DAC 340如图所示具有T位输入。因此,计算需要VMM引擎的[P=(M/T)]列来处理M个尾数位。T位数字数据可被转换为单个模拟值。VMM引擎的各列可通过读电路570(图5)接收相同的输入向量。可使用读出电路580读出沿着各列得到的VMM输出。
如图3所示,可使用列并行ADC 360来将各个VMM引擎500的模拟输出数字化。各个ADC可为T位宽,并且各个VMM引擎500可具有M个ADC。模拟协处理器300可处理N位浮点数的M位尾数,但是各个忆阻器可仅存储信息的T位。因此,M位尾数可被分解为M/T个T位数。在执行VMM运算并将输出数字化之后,位可被移位到其正确的位位置。为此,可在各个ADC 360的输出处实现移位寄存器362。各个移位寄存器阵列362可具有不同的位移位设置。在位被移位之后,可通过加法器阵列364将VMM引擎500的各列的输出与对应列相加。阵列364的各个加法器可具有来自各行中的P个VMM列的P个输入。类似地,也可使用阵列364的加法器将其它VMM引擎的列相加在一起。VMM核心320的各行可具有加法器阵列364的一组P个加法器。加法器364的T位长的输出可使用组合器370来组合,以形成M位尾数输出。这些输出可被存储到芯片上数字存储器306并在数字总线上发送。
图6是可实现实施方式的外围组件互连快速(PCIe)架构的框图。PCIe是将计算和通信平台中的外围设备连接的串行点对点互连拓扑。PCIe“通道”包括两个PCIe装置之间的两个单工互连链路,其各自在相反的方向上。PCIe标准提供了通过在装置之间添加通道来增加吞吐量的灵活性。例如,PCIe版本3.0允许按照1、2、4、8、12、16和32的增量添加单工通道。由“L”表示的通道数量可能影响在PCIe架构下与装置接口的协处理器的大小和性能。
如图6所示,CPU芯片集640和PCIe处理器主机650经由PCIe总线690在通信上联接。PCIe主机处理器650继而可与协处理器620通信,协处理器620可包括与上述协处理器300相当的特征。在操作中,CPU芯片集640可正向协处理器620发送。数据有效载荷可在芯片集640的装置核心处被创建并被发送到附加有开销的三个层(事务层、数据链路层和物理层)以确保分组按照正确的顺序可靠地传送到PCIe处理器650中的对应层。然后,所构造的分组可被呈现给芯片集640的存储器控制器,其物理地连接到PCIe总线690并确定将插入分组的通道。当分组在PCIe控制器650中从物理层流到事务层时,各个层剥离其开销并且可靠的数据有效载荷以正确的顺序传送到装置核心。PCIe处理器650主机将分组解构并将有效载荷传送到协处理器620。
类似地,PCIe处理器主机从协处理器620所创建的数据有效载荷构造分组并将其以正确的顺序可靠地发送到CPU芯片集640中的装置核心。PCIe处理器的功能可例如在与CPU芯片集640通信并对协处理器620进行控制和编程的Xilinx FPGA中实现。PCIe协议的规定可被实现为对协处理器620进行控制和编程。另外,协处理器620的“带外”的控制和编程可在例如驻留在主机工作站中的诸如MATLAB的软件程序中执行。
图7是一个实施方式中的H树架构700的框图。如上所述,M×M纵横的P×P并行阵列可执行浮点运算。对于单精度计算,P为6并且M为32。这种配置(具有针对32位浮点的4位/单元的36组32×32纵横,或者具有针对16位浮点的5位/单元的4组32×32纵横)可被称为“纵横核心”或“浮点核心”。使用具有32个通道的接口(例如,PCIe 4.0接口)使得32元素输入向量能够按照64GB/s的双向带宽充分地输入到协处理器的浮点核心。PCIe值可作为输入向量被聚合并映射到特定纵横以用于计算(可在FPGA上完成)。
H树架构700可包括按照H树配置连接到公共接口的多个纵横核心720a-n。使用流式缓存790按照64GB/s的H树带宽馈送8个这种核心的H树网络产生1PB/s(250TFLOP单精度)的VMM计算(16GT/s的32位输入*8个浮点核心*每核心2016浮点计算)。然后,浮点核心的输出可被逆映射回其对应输入向量分量并作为输出向量被聚合以返回给发送装置(也可在FPGA上完成)。H树架构700的纵横核心720a-n可被配置为直接与PCIe总线接口,从而避免在尝试按照TB/s标度创建内部装置带宽的存储器内处理器架构中可能存在的带宽不对称性。
上述示例实施方式提供了一种用于需要高计算速度和低功耗的应用的模拟协处理器。该协处理器能够求解复杂系统的科学仿真中出现的偏微分方程。由于与离散变量编码和串行处理关联的限制,科学仿真内的当前PDE求解方法效率低并且常常棘手。上述实施方式通过使用CMOS-忆阻器纵横阵列的模拟行为调用输入信号与乘法系数的向量矩阵乘法来实现一组PDE求解过程。
示例实施方式可通过实现频谱和格林函数求解方法作为大规模离散化有限差分方法的替代,同时利用通过纵横阵列实现的固有并行性来求解线性和非线性PDE。在频谱方法中,可使用模拟纵横架构将PDE转换到傅里叶域中。一旦表示在傅立叶域中,就可使用纵横来执行VMM和积分以通过利用逆离散傅里叶变换(IDFT)和卷积定理来得到PDE的解。因此,可将感兴趣的偏微分方程映射到模拟纵横离散傅里叶变换(“DFT”)架构,从而得到简单得多的傅里叶表达,其增加了PDE求解计算的速度使其远超先前方法。以这种方式求解具有深远适用性的线性PDE(例如,波和热方程)。通过线性化求解非线性PDE然后傅里叶域表示以及不可压缩流体流的纳维-斯托克斯Navier-Stokes方程是示例应用。
求解PDE的另一方法是格林函数方法。格林函数方法可能不适用于在传统计算机上求解PDE。然而,实现诸如忆阻器-CMOS纵横的电路的上述实施方式为PDE求解提供了手段。PDE具有涉及格林函数的正式数学解:
T(x)=∫ΩG(x,x′)S(x′)dx′
其中G(x,x')是格林函数。每一个PDE具有特定格林函数。如果域上的积分在每元素N个网格单元的离散网格上近似,则在一个单元中计算解T(x)需要在所有(N-1)个其它单元上求和并且求解(所有单元中的)所有未知解需要阶N2运算。这种运算在计算上昂贵,因为可在O(N)时间内找到该问题的解。因此,在先前方法中格林函数很少被用作求解PDE的主要求解技术。
还可根据线性代数和矩阵来理解计算成本。一旦离散化,PDE生成矩阵问题Ax=b,其中A是仅具有O(N)非零条目的N×N稀疏矩阵,b是N个已知值的源向量,x是未知解向量(具有N个条目)。格林函数G(x,x')等同于矩阵逆。它是完整矩阵并且需要N2运算以乘以源并经由x=A-1b获得解。
上述示例实施方式使得格林函数方法再次可行,因为其在模拟域中执行矩阵乘法运算。结果,向量乘以全矩阵乘法(VMM)的所有N2运算可在忆阻器纵横阵列上在单个循环中执行。
这些实施方式也适用于基于卷积神经网络(CNN)的图像识别和多普勒滤波。CNN是用于对象检测和识别任务的越来越流行的机器学习工具。然而,最先进的嵌入式数字求解需要相当大的功率来执行典型的CNN任务(例如,AlexNet基准测试上的任务),无法实现实时视频操作或满足移动装置功率预算。先前的PDE求解技术也涉及GPU并且在计算效率方面面临类似的问题。另外的应用包括雷达系统中的距离-多普勒信号处理。在可能需要功耗小于1W的实时操作的群体智能和相关应用中信号处理需要这些平台的尺寸、重量和功率(SWaP)显著减小。通过利用诸如模拟纵横VMM的特征,上述示例实施方式可在上述约束下实现这些应用。
示例实施方式可经由CMOS以及诸如忆阻器的新兴纳米技术或者由CMOS和忆阻器二者组成的混合技术来实现。这种实现方式在模拟DFT实现方面提供了许多优点,因为如上所述的模拟纵横处理器可对DFT系数进行编程并执行与输入信号的向量矩阵乘法。具体地讲,如上所述的模拟处理器可利用基本尺寸纵横阵列的足够并行化实现超过1024个点的模拟离散傅里叶变换,与数字系统相比在计算速度和功耗方面改进了2至3个数量级。
尽管已参照本发明的示例实施方式具体示出和描述了本发明,但是本领域技术人员将理解,在不脱离由所附权利要求涵盖的本发明的范围的情况下,可对其进行形式和细节上的各种改变。
Claims (17)
1.一种协处理器电路,该协处理器电路包括:
至少一个向量矩阵乘法(VMM)核心,其被配置为执行VMM运算,各个VMM核心包括:
VMM电路的至少一个阵列,各个VMM电路被配置为针对所述VMM运算计算相应部分乘积,各个VMM电路包括:
信号生成器,该信号生成器被配置为基于所述VMM运算的至少一个系数来生成编程信号;
忆阻器网络,该忆阻器网络具有以纵横结构布置的模拟多级忆阻器器件的阵列;
读/写控制电路,该读/写控制电路被配置为在所述忆阻器网络处选择性地允许读操作和写操作;
忆阻器控制电路,该忆阻器控制电路被配置为选择性地允许所述模拟多级忆阻器器件的选择,该控制电路包括列开关复用器、行开关复用器和地址编码器;
写电路,该写电路被配置为基于所述编程信号设定所述网络内的至少一个电阻值,该写电路包括电压驱动器;
读输入电路,该读输入电路被配置为将至少一个输入信号施加到所述忆阻器网络,所述输入信号与向量对应,所述读输入电路包括电压驱动器;以及
读出电路,该读出电路被配置为读取所述忆阻器网络处的至少一个电流值并基于所述至少一个电流值生成输出信号;
读电路阵列,该读电路阵列将至少一个输入向量转换为模拟信号以施加到所述忆阻器网络;
写电路阵列,该写电路阵列基于乘法系数将至少一个设定信号转换为模拟设定信号以施加到所述忆阻器网络;
ADC阵列,该ADC阵列将来自所述忆阻器网络的至少一个VMM模拟输出转换为数字值;
移位寄存器阵列,该移位寄存器阵列被配置为将所述ADC阵列的所述数字值格式化;
加法器阵列,该加法器阵列被配置为将来自所述忆阻器网络阵列的输出相加,各个加法器执行与所述乘法系数关联的VMM运算的子集;以及
组合器,该组合器被配置为将各个所述加法器阵列的所述输出信号组合以生成组合的输出信号,每个加法器阵列的所述输出信号表示所述相应部分乘积中的一个,所述组合器被配置为将所述相应部分乘积汇集为组合的输出,该组合的输出表示对于所述VMM运算的浮点精度的解。
2.根据权利要求1所述的电路,其中,对至少一个输入向量进行转换的所述读电路阵列和对至少一个设定信号进行转换的所述写电路阵列是DAC。
3.根据权利要求1所述的电路,该电路还包括处理器,该处理器被配置为经由映射到输入电压脉冲和忆阻器网络电阻状态的数字向量为所述VMM电路生成所述编程信号,以执行所述部分乘积,所述忆阻器网络的输出被从输出电压脉冲映射到表示所述部分乘积的数字输出向量。
4.根据权利要求3所述的电路,其中,所述VMM运算包括至少一个M位精度的浮点计算。
5.根据权利要求4所述的电路,其中,所述VMM电路将各个忆阻器网络配置为,将浮点尾数表示为总共N位中的T位子集,所述N位包括8位、16位、32位、64位和128位浮点精度,分别表征3位、10位、23位、52位和112位的N位尾数以及3、5、6、7和8的T位子集。
6.根据权利要求5所述的电路,该电路还包括数字电路,该数字电路被配置为提供与实例化的浮点值相对应的指数的先验归一化,以通过位分割浮点尾数上的部分乘积的汇集来直接实现浮点计算,所述位分割浮点尾数包括分别用于8位、16位、32位、64位和128位浮点精度的指数大小4、5、8、11和15。
7.根据权利要求4所述的电路,其中,所述至少一个VMM核心包括被组织为H树网络的多个VMM核心,以实现具有相等的传播延迟的分布并行计算,其中,所述VMM核心被进一步配置为与主机处理器接口。
8.根据权利要求4所述的电路,其中,所执行的所述VMM运算包括以浮点精度对至少一个偏微分方程(PDE)进行求解的运算。
9.根据权利要求4所述的电路,其中,所执行的所述VMM运算对应于浮点精度的离散傅里叶变换(DFT)。
10.根据权利要求9所述的电路,其中,所执行的所述VMM运算对应于离散傅里叶变换(DFT)以按照浮点精度通过频谱法求解偏微分方程。
11.根据权利要求9所述的电路,其中,所执行的所述VMM运算对应于离散傅里叶变换(DFT)以按照浮点精度执行距离-多普勒信号处理。
12.根据权利要求4所述的电路,其中,VMM的所述至少一个系数对应于卷积系数以按照浮点精度在卷积神经网络中执行推断。
13.根据权利要求4所述的电路,其中,所执行的所述VMM运算对应于格林函数表示以按照浮点精度求解偏微分方程。
14.根据权利要求4所述的电路,其中,所执行的所述VMM运算对应于网格格林函数表示以按照浮点精度求解偏微分方程,其中,尺寸较小的网格被设置在多个协处理器VMM核心上以迭代地求解更大网格尺寸的偏微分方程。
15.根据权利要求4所述的电路,其中,所述VMM运算对应于按照浮点精度通过共轭梯度法求解的能量最小化优化问题。
16.根据权利要求15所述的电路,其中,所述共轭梯度法被配置为按照浮点精度求解偏微分方程。
17.根据权利要求15所述的电路,其中,所述共轭梯度法被配置为按照浮点精度在神经网络内执行反向传播算法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662292458P | 2016-02-08 | 2016-02-08 | |
US62/292,458 | 2016-02-08 | ||
PCT/US2017/016955 WO2017139342A1 (en) | 2016-02-08 | 2017-02-08 | Analog co-processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108780492A CN108780492A (zh) | 2018-11-09 |
CN108780492B true CN108780492B (zh) | 2021-12-14 |
Family
ID=58094523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780016190.8A Expired - Fee Related CN108780492B (zh) | 2016-02-08 | 2017-02-08 | 模拟协处理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10216703B2 (zh) |
EP (1) | EP3414702A1 (zh) |
KR (1) | KR20180110080A (zh) |
CN (1) | CN108780492B (zh) |
WO (1) | WO2017139342A1 (zh) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017131711A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Memristor crossbar array for performing a fourier transformation |
US10802992B2 (en) | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
US10311126B2 (en) * | 2016-08-12 | 2019-06-04 | International Business Machines Corporation | Memory device for matrix-vector multiplications |
US10621486B2 (en) * | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
US10686996B2 (en) | 2017-06-26 | 2020-06-16 | Facebook Technologies, Llc | Digital pixel with extended dynamic range |
US11568609B1 (en) | 2017-07-25 | 2023-01-31 | Meta Platforms Technologies, Llc | Image sensor having on-chip compute circuit |
US10726627B2 (en) * | 2017-07-25 | 2020-07-28 | Facebook Technologies, Llc | Sensor system based on stacked sensor layers |
WO2019032870A1 (en) * | 2017-08-09 | 2019-02-14 | Google Llc | ACCELERATION OF NEURAL NETWORKS IN MATERIAL USING INTERCONNECTED CROSSBARS |
US10598546B2 (en) | 2017-08-17 | 2020-03-24 | Facebook Technologies, Llc | Detecting high intensity light in photo sensor |
US10878317B2 (en) * | 2017-09-11 | 2020-12-29 | Samsung Electronics Co., Ltd. | Method and system for performing analog complex vector-matrix multiplication |
US10409889B2 (en) | 2017-12-18 | 2019-09-10 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
US10867239B2 (en) | 2017-12-29 | 2020-12-15 | Spero Devices, Inc. | Digital architecture supporting analog co-processor |
US11057581B2 (en) | 2018-01-24 | 2021-07-06 | Facebook Technologies, Llc | Digital pixel array with multi-stage readouts |
US10970080B2 (en) * | 2018-02-08 | 2021-04-06 | Marvell Asia Pte, Ltd. | Systems and methods for programmable hardware architecture for machine learning |
EP3752860A4 (en) | 2018-02-14 | 2022-03-09 | Syntiant | OFFLINE DETECTOR |
US10496374B2 (en) * | 2018-03-22 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Crossbar array operations using ALU modified signals |
KR102449941B1 (ko) * | 2018-04-05 | 2022-10-06 | 레인 뉴로모픽스 인크. | 효율적인 행렬 곱셈을 위한 시스템 및 방법 |
US10509167B2 (en) * | 2018-04-23 | 2019-12-17 | Hewlett Packard Enterprise Development Lp | Optical phase difference calculation using analog processing |
WO2019212466A1 (en) * | 2018-04-30 | 2019-11-07 | Hewlett Packard Enterprise Development Lp | Resistive and digital processing cores |
US10380386B1 (en) * | 2018-04-30 | 2019-08-13 | Hewlett Packard Enterprise Development Lp | Accelerator for k-means clustering with memristor crossbars |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
US10891136B1 (en) | 2018-05-22 | 2021-01-12 | Marvell Asia Pte, Ltd. | Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction |
US10929779B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture to support synchronization between core and inference engine for machine learning |
US10997510B1 (en) | 2018-05-22 | 2021-05-04 | Marvell Asia Pte, Ltd. | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning |
US10929778B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Address interleaving for machine learning |
US10929760B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture for table-based mathematical operations for inference acceleration in machine learning |
US12034015B2 (en) | 2018-05-25 | 2024-07-09 | Meta Platforms Technologies, Llc | Programmable pixel array |
US11906353B2 (en) | 2018-06-11 | 2024-02-20 | Meta Platforms Technologies, Llc | Digital pixel with extended dynamic range |
US11463636B2 (en) | 2018-06-27 | 2022-10-04 | Facebook Technologies, Llc | Pixel sensor having multiple photodiodes |
US10897586B2 (en) | 2018-06-28 | 2021-01-19 | Facebook Technologies, Llc | Global shutter image sensor |
JP7070190B2 (ja) * | 2018-07-18 | 2022-05-18 | 株式会社デンソー | ニューラルネットワーク回路 |
CN109065089B (zh) * | 2018-07-26 | 2020-11-06 | 杭州闪亿半导体有限公司 | 一种用于卷积运算的存储模块、模组 |
JP6789576B2 (ja) * | 2018-08-02 | 2020-11-25 | 株式会社フローディア | 積和演算装置 |
US10931884B2 (en) | 2018-08-20 | 2021-02-23 | Facebook Technologies, Llc | Pixel sensor having adaptive exposure time |
US11956413B2 (en) | 2018-08-27 | 2024-04-09 | Meta Platforms Technologies, Llc | Pixel sensor having multiple photodiodes and shared comparator |
CN109165730B (zh) * | 2018-09-05 | 2022-04-26 | 电子科技大学 | 交叉阵列神经形态硬件中状态量化网络实现方法 |
US11513797B2 (en) * | 2018-09-12 | 2022-11-29 | Mentium Technologies Inc. | Systems and methods for analog vector by matrix multiplier |
US10489483B1 (en) * | 2018-09-21 | 2019-11-26 | National Technology & Engineering Solutions Of Sandia, Llc | Circuit arrangement and technique for setting matrix values in three-terminal memory cells |
US11061646B2 (en) * | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US11595602B2 (en) | 2018-11-05 | 2023-02-28 | Meta Platforms Technologies, Llc | Image sensor post processing |
DE102018219313A1 (de) * | 2018-11-13 | 2020-05-14 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Umsetzung einer Matrix-Operation |
US11157237B2 (en) * | 2018-11-13 | 2021-10-26 | Hewlett Packard Enterprise Development Lp | Memristive dot product circuit based floating point computations |
CN112384137B (zh) * | 2018-11-13 | 2023-11-14 | 苏州润迈德医疗科技有限公司 | 基于造影图像获取静息态下血管评定参数的方法及装置 |
US11586883B2 (en) * | 2018-12-14 | 2023-02-21 | Microsoft Technology Licensing, Llc | Residual quantization for neural networks |
US11962928B2 (en) | 2018-12-17 | 2024-04-16 | Meta Platforms Technologies, Llc | Programmable pixel array |
US11888002B2 (en) | 2018-12-17 | 2024-01-30 | Meta Platforms Technologies, Llc | Dynamically programmable image sensor |
CN109657787B (zh) * | 2018-12-19 | 2022-12-06 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
CA3125326A1 (en) | 2018-12-28 | 2020-07-02 | Dexcom, Inc. | Analyte sensor with impedance determination |
US10896242B2 (en) * | 2019-03-01 | 2021-01-19 | International Business Machines Corporation | Resistive memory device for matrix-vector multiplications |
US11218660B1 (en) | 2019-03-26 | 2022-01-04 | Facebook Technologies, Llc | Pixel sensor having shared readout structure |
US11042715B2 (en) * | 2019-04-11 | 2021-06-22 | International Business Machines Corporation | Electronic system for performing a multiplication of a matrix and vector |
US20200349422A1 (en) * | 2019-05-02 | 2020-11-05 | Silicon Storage Technology, Inc. | Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network |
US11194886B2 (en) * | 2019-05-09 | 2021-12-07 | Applied Materials, Inc. | Bit-ordered binary-weighted multiplier-accumulator |
US11531898B2 (en) | 2019-05-16 | 2022-12-20 | International Business Machines Corporation | Training of artificial neural networks |
US11943561B2 (en) | 2019-06-13 | 2024-03-26 | Meta Platforms Technologies, Llc | Non-linear quantization at pixel sensor |
JP2020205405A (ja) | 2019-06-17 | 2020-12-24 | 三星電子株式会社Samsung Electronics Co.,Ltd. | メモリスタ、及びそれを含むニューロモーフィック装置 |
CN110378475B (zh) * | 2019-07-08 | 2021-08-06 | 浙江大学 | 一种基于多位并行二进制突触阵列的神经形态计算电路 |
CN110569962B (zh) * | 2019-08-08 | 2022-02-15 | 华中科技大学 | 一种基于1t1r存储器阵列的卷积计算加速器及其操作方法 |
CN110619905A (zh) * | 2019-08-09 | 2019-12-27 | 上海集成电路研发中心有限公司 | 一种基于rram忆阻器单元的集合模块及其形成方法 |
US11354383B2 (en) | 2019-09-27 | 2022-06-07 | Applied Materials, Inc | Successive bit-ordered binary-weighted multiplier-accumulator |
US11936998B1 (en) | 2019-10-17 | 2024-03-19 | Meta Platforms Technologies, Llc | Digital pixel sensor having extended dynamic range |
US11935291B2 (en) | 2019-10-30 | 2024-03-19 | Meta Platforms Technologies, Llc | Distributed sensor system |
US11948089B2 (en) | 2019-11-07 | 2024-04-02 | Meta Platforms Technologies, Llc | Sparse image sensing and processing |
CN110807519B (zh) * | 2019-11-07 | 2023-01-17 | 清华大学 | 基于忆阻器的神经网络的并行加速方法及处理器、装置 |
CN110929215B (zh) * | 2019-11-20 | 2023-03-21 | 常州大学 | 基于混合状态增量积分变换的忆阻系统多稳定性重构方法 |
JP6818116B1 (ja) | 2019-11-22 | 2021-01-20 | ウィンボンド エレクトロニクス コーポレーション | クロスバーアレイを用いた電子装置およびデータ処理方法 |
CN111125616B (zh) * | 2019-12-09 | 2021-11-19 | 华中科技大学 | 一种二维离散傅里叶变换运算电路及运算方法 |
US11450712B2 (en) | 2020-02-18 | 2022-09-20 | Rain Neuromorphics Inc. | Memristive device |
US11539370B2 (en) * | 2020-02-23 | 2022-12-27 | Tetramem Inc. | Analog to analog quantizer in crossbar array circuits for in-memory computing |
CN111464764B (zh) * | 2020-03-02 | 2022-10-14 | 上海集成电路研发中心有限公司 | 一种基于忆阻器的图像传感器及其进行卷积运算的方法 |
US11902685B1 (en) | 2020-04-28 | 2024-02-13 | Meta Platforms Technologies, Llc | Pixel sensor having hierarchical memory |
US11825228B2 (en) | 2020-05-20 | 2023-11-21 | Meta Platforms Technologies, Llc | Programmable pixel array having multiple power domains |
US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
US11910114B2 (en) | 2020-07-17 | 2024-02-20 | Meta Platforms Technologies, Llc | Multi-mode image sensor |
CN111815640B (zh) * | 2020-07-21 | 2022-05-03 | 江苏经贸职业技术学院 | 一种基于忆阻器的rbf神经网络医学图像分割算法 |
US11983619B2 (en) * | 2020-08-14 | 2024-05-14 | Micron Technology, Inc. | Transformer neural network in memory |
US11200948B1 (en) * | 2020-08-27 | 2021-12-14 | Hewlett Packard Enterprise Development Lp | System for a flexible conductance crossbar |
US11221827B1 (en) * | 2020-08-28 | 2022-01-11 | Macronix International Co., Ltd. | In-memory computation device |
CN111988031B (zh) * | 2020-08-28 | 2022-05-20 | 华中科技大学 | 一种忆阻存内矢量矩阵运算器及运算方法 |
TWI777231B (zh) * | 2020-08-28 | 2022-09-11 | 國立中正大學 | 向量內積計算裝置 |
US12075175B1 (en) | 2020-09-08 | 2024-08-27 | Meta Platforms Technologies, Llc | Programmable smart sensor with adaptive readout |
US11681776B2 (en) | 2020-10-08 | 2023-06-20 | Applied Materials, Inc. | Adaptive settling time control for binary-weighted charge redistribution circuits |
US12019702B2 (en) | 2020-10-08 | 2024-06-25 | Applied Materials, Inc. | Throughput and precision-programmable multiplier-accumulator architecture |
US11922131B2 (en) * | 2020-10-08 | 2024-03-05 | Applied Materials, Inc. | Scalable, multi-precision, self-calibrated multiplier-accumulator architecture |
US11956560B2 (en) | 2020-10-09 | 2024-04-09 | Meta Platforms Technologies, Llc | Digital pixel sensor having reduced quantization operation |
CN112183739B (zh) * | 2020-11-02 | 2022-10-04 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
US11935575B1 (en) | 2020-12-23 | 2024-03-19 | Meta Platforms Technologies, Llc | Heterogeneous memory system |
US12022218B2 (en) | 2020-12-29 | 2024-06-25 | Meta Platforms Technologies, Llc | Digital image sensor using a single-input comparator based quantizer |
CN113095017B (zh) * | 2021-02-25 | 2022-09-23 | 广东技术师范大学 | 一种记忆元件通用模拟器 |
US11462268B1 (en) * | 2021-04-30 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Generating hash codes for locality sensitive hashing |
CN113541691B (zh) * | 2021-08-13 | 2023-06-23 | 西南交通大学 | 基于阈值电压型忆阻器阵列的并行转存模数转换器及方法 |
CN115840527A (zh) * | 2021-09-22 | 2023-03-24 | 河北大学 | 应用于忆阻器阵列权重调制和图像识别的电路系统 |
CN116994634B (zh) * | 2023-09-26 | 2023-12-12 | 南京邮电大学 | 一种忆阻器阵列故障测试电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104571949A (zh) * | 2014-12-22 | 2015-04-29 | 华中科技大学 | 基于忆阻器实现计算与存储融合的处理器及其操作方法 |
CN104781836A (zh) * | 2012-11-20 | 2015-07-15 | 高通股份有限公司 | 分段线性神经元建模 |
TW201541372A (zh) * | 2014-03-24 | 2015-11-01 | Qualcomm Inc | 使用尖峰發放神經元的人工神經網路和感知器學習 |
CN105160401A (zh) * | 2015-08-27 | 2015-12-16 | 电子科技大学 | 一种基于忆阻器阵列的wta神经网络及其应用 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9754203B2 (en) * | 2013-03-24 | 2017-09-05 | Technion Research And Development Foundation Ltd. | Analog multiplier using a memristive device and method for implemening Hebbian learning rules using memrisor arrays |
US9715655B2 (en) * | 2013-12-18 | 2017-07-25 | The United States Of America As Represented By The Secretary Of The Air Force | Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems |
US9489618B2 (en) * | 2014-05-27 | 2016-11-08 | Purdue Research Foudation | Electronic comparison systems |
US10996959B2 (en) * | 2015-01-08 | 2021-05-04 | Technion Research And Development Foundation Ltd. | Hybrid processor |
US9824753B2 (en) | 2015-10-21 | 2017-11-21 | Technische Universiteit Delft | Computing device for “big data” applications using memristors |
US10901939B2 (en) | 2015-10-30 | 2021-01-26 | International Business Machines Corporation | Computer architecture with resistive processing units |
US9646243B1 (en) | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
-
2017
- 2017-02-08 EP EP17706362.5A patent/EP3414702A1/en not_active Withdrawn
- 2017-02-08 US US15/427,591 patent/US10216703B2/en not_active Expired - Fee Related
- 2017-02-08 KR KR1020187025878A patent/KR20180110080A/ko unknown
- 2017-02-08 CN CN201780016190.8A patent/CN108780492B/zh not_active Expired - Fee Related
- 2017-02-08 WO PCT/US2017/016955 patent/WO2017139342A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104781836A (zh) * | 2012-11-20 | 2015-07-15 | 高通股份有限公司 | 分段线性神经元建模 |
TW201541372A (zh) * | 2014-03-24 | 2015-11-01 | Qualcomm Inc | 使用尖峰發放神經元的人工神經網路和感知器學習 |
CN104571949A (zh) * | 2014-12-22 | 2015-04-29 | 华中科技大学 | 基于忆阻器实现计算与存储融合的处理器及其操作方法 |
CN105160401A (zh) * | 2015-08-27 | 2015-12-16 | 电子科技大学 | 一种基于忆阻器阵列的wta神经网络及其应用 |
Non-Patent Citations (3)
Title |
---|
Dot-product Engine for Deep Learning;Miao Hu;《ICCAD workshop on Hardware and Algorithms for Learning On-a-chip (HALO)At: Austin》;20151130;1-2 * |
Dot-Product Engine: Programming MemristorCrossbar Arrays for Efficient Vector-Matrix Multiplication;Miao Hu;《Conference: ICCAD workshop on "Towards Efficient Computing in the Dark Silicon Era"At: Austin》;20151130;1-2 * |
The Dot-Product Engine (DPE): exploring high efficiency analog multiplication with;Strachan;《Hewlett Packard Enterprise》;20151211;1-29 * |
Also Published As
Publication number | Publication date |
---|---|
US10216703B2 (en) | 2019-02-26 |
KR20180110080A (ko) | 2018-10-08 |
EP3414702A1 (en) | 2018-12-19 |
US20170228345A1 (en) | 2017-08-10 |
CN108780492A (zh) | 2018-11-09 |
WO2017139342A1 (en) | 2017-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780492B (zh) | 模拟协处理器 | |
US10867239B2 (en) | Digital architecture supporting analog co-processor | |
CN111758106B (zh) | 用于大规模并行神经推理计算元件的方法和系统 | |
US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
KR102672586B1 (ko) | 인공신경망의 훈련 방법 및 장치 | |
WO2019082077A1 (en) | TRAINING ARTIFICIAL NEURAL NETWORKS | |
US12056599B2 (en) | Methods of performing processing-in-memory operations, and related devices and systems | |
CN111125616B (zh) | 一种二维离散傅里叶变换运算电路及运算方法 | |
CN111478703B (zh) | 基于忆阻交叉阵列的处理电路及输出电流的补偿方法 | |
US12079592B2 (en) | Deep neural network accelerator including lookup table based bit-serial processing elements | |
US9933998B2 (en) | Methods and apparatuses for performing multiplication | |
CN111988031B (zh) | 一种忆阻存内矢量矩阵运算器及运算方法 | |
Cheng et al. | A large-scale in-memory computing for deep neural network with trained quantization | |
CN114168107A (zh) | 一种存内精度可调的矢量矩阵乘法运算方法及运算器 | |
JP2022008142A (ja) | 回路を利用して所定の演算を遂行する装置及び方法 | |
US20240223207A1 (en) | Multiply-accumulate successive approximation devices and methods | |
US20240143541A1 (en) | Compute in-memory architecture for continuous on-chip learning | |
US20240220742A1 (en) | Multiply-accumulate successive approximation devices and methods | |
US20240211532A1 (en) | Hardware for parallel layer-norm compute | |
Mondal et al. | Current comparator-based reconfigurable adder and multiplier on hybrid memristive crossbar | |
CN117131915A (zh) | 一种用于人工智能计算的方法、设备及介质 | |
Yu | Energy-Efficient Mixed-Signal Multiplier Design using Memristive Technologies | |
TW202242875A (zh) | 資料處理電路及故障減輕方法 | |
CN118696294A (zh) | 迭代混合矩阵乘法器 | |
KR20240135773A (ko) | 반복 혼성 행렬 곱셈기 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211214 |
|
CF01 | Termination of patent right due to non-payment of annual fee |