CN109492187A - 用于执行模拟复向量矩阵乘法的方法和系统 - Google Patents

用于执行模拟复向量矩阵乘法的方法和系统 Download PDF

Info

Publication number
CN109492187A
CN109492187A CN201811040668.3A CN201811040668A CN109492187A CN 109492187 A CN109492187 A CN 109492187A CN 201811040668 A CN201811040668 A CN 201811040668A CN 109492187 A CN109492187 A CN 109492187A
Authority
CN
China
Prior art keywords
line
weight unit
input
weight
output
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
Application number
CN201811040668.3A
Other languages
English (en)
Other versions
CN109492187B (zh
Inventor
瑞安·M·哈彻
博尔纳·J·奥布拉多维奇
乔治·A·基特尔
蒂塔什·拉克西特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109492187A publication Critical patent/CN109492187A/zh
Application granted granted Critical
Publication of CN109492187B publication Critical patent/CN109492187B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Logic Circuits (AREA)

Abstract

描述了一种用于执行相乘累加操作的硬件设备和方法。该设备包括输入线、权重单元和输出线。输入线接收输入信号,每个输入信号具有幅度和相位,并且可以表示复值。权重单元将输入线与输出线耦接。每个权重单元具有与权重相对应的电导纳。电导纳是可编程的,并且能够被复值化。输入线、权重单元和输出线形成交叉阵列每条输出线提供输出信号。输出线的输出信号是与将输入线连接到输出线的权重单元中的每个权重单元的电导纳相乘的连接到输出线的每条输入线的输入信号之和。

Description

用于执行模拟复向量矩阵乘法的方法和系统
相关申请的交叉引用
本申请要求2017年9月11日在美国专利商标局递交的美国临时专利申请No.62/556,842和2017年12月20日在美国专利商标局递交的美国专利申请No.15/849,106的优先权,其全部公开通过引用合并于此。
背景技术
向量矩阵乘法操作,也被称为相乘和累加(MAC)操作,在各种领域中支配着应用的性能。例如,在机器学习中,可以执行多层的MAC操作。可以认为输入信号形成输入向量。输入信号可以是图像数据、字节流或另一数据集。输入信号乘以值矩阵或权重矩阵。输出信号是对输入信号进行MAC操作的结果并对应于输出向量。输出向量可以作为输入向量提供给MAC操作的下一层。可以针对大量的层重复这个过程。因为执行大量MAC操作,所以应用的性能很大程度上取决于MAC操作的性能。因此,需要以低功率和高速度有效地、可靠地执行MAC操作。
可以数字地执行MAC操作。然而,模拟交叉(crossbar)阵列可以比数字电路更加有效地执行MAC操作。这种模拟交叉阵列在每个交叉点使用直流信号和电阻器。每个电阻器的电导对应于矩阵在该位置处的权重。可以通过将输入线上的电位设置为与所期望的输入值成比例(Vi∝ai)来执行乘法和累加,其中Vi是电位,ai是所期望的输入值。交叉网络中的电阻被设置为与权重的倒数成比例。因此,Wij∝1/Rij,其中wij是所期望的权重,Rij是针对交叉点所期望的电阻。然后MAC输出与输出线上的电流成比例:bj∝ii,,其中bj是输出,ij是输出线上的电流。将激活函数应用于MAC输出,该MAC输出被转换回电压。该电压是与输入向量和表示矩阵的权重阵列的乘积相对应的输出向量。因此,可以模拟地执行用于实际输入和权重的向量矩阵乘法。
由于其在各种领域中的使用潜力,因此对于向量矩阵乘法,所期望的是更快、更灵活且更节能的专用硬件实现。
发明内容
描述了一种用于执行相乘累加操作的硬件设备和方法。该设备包括输入线、权重单元和输出线。输入线接收输入信号,该输入信号中的每个输入信号是具有幅度和相位的交流模拟谐波信号。由此,输入信号能够表示复值。权重单元将输入线与输出线耦接。权重单元中的每个权重单元具有与权重相对应的电导纳。电导纳是可编程的,并且能够被复值化。输入线、权重单元和输出线形成交叉阵列。输出线中的每条输出线提供输出信号。输出线的输出信号是与将输入线连接到输出线的多个权重单元的一部分中的每个权重单元的电导纳相乘的连接到输出线的每条输入线的输入信号之和。
硬件设备可以针对复信号(复值化的输入向量)执行向量矩阵乘法并采用复权重(复值化的矩阵)。结果是,可以改进这种MAC操作的速度、灵活性和/或效率。
附图说明
图1绘出了能够执行模拟复值化MAC操作的硬件交叉阵列的示例性实施例的一部分。
图2绘出了能够执行包含负权重的模拟复值化MAC操作的硬件交叉阵列的一部分的示例性实施例。
图3绘出了能够执行包含负权重的模拟复值化MAC操作的硬件交叉阵列的一部分的示例性实施例。
图4绘出了能够执行包含负权重的模拟复值化MAC操作的硬件交叉阵列的一部分的示例性实施例。
图5A、图5B和图5C绘出了可以在执行模拟复值化MAC操作的硬件交叉阵列中使用的权重单元、可编程电阻器和可编程电容器的示例性实施例。
图6是绘出用于执行模拟复值化MAC操作的方法的示例性实施例的流程图。
具体实施方式
示例性实施例涉及用于执行相乘累加(MAC)操作(也被称为向量矩阵乘法操作)的硬件设备。在本文中描述的方法和系统可以用于各种领域,包括但不限于机器学习、人工智能和神经网络。该方法和系统还涉及可以用于优化神经网络或用于其他应用的复值化信号和/或权重的使用。该方法和系统可以扩展到使用复信号(例如,复向量)和/或复权重(复值化矩阵)的其他应用。
给出以下描述以使本领域普通技术人员能够实现和使用本发明,并且以下描述在专利申请及其要求的上下文中提供。对在本文中描述的示例性实施例以及一般原理和特征的各种修改将是显而易见的。主要根据在特定实现中提供的特定方法和系统来描述示例性实施例。然而,该方法和系统将在其他实现中有效地操作。
诸如“示例性实施例”、“一个实施例”和“另一实施例”等短语可以指代相同或不同的实施例,也可以指代多个实施例。将针对具有某些组件的系统和/或设备来描述实施例。然而,系统和/或设备可以包括比所示更多或更少的组件,并且可以在不脱离本发明的范围的情况下对组件的布置和类型进行改变。还将在具有某些步骤的特定方法的上下文中描述示例性实施例。然而,该方法和系统有效地用于具有与示例性实施例不矛盾的不同的和/或附加的步骤以及顺序不同的步骤的其他方法。由此,本发明并非意在限于所示实施例,而应赋予与在本文中描述的原理和特征一致的最宽范围。
在描述本发明的上下文中(尤其是在所附权利要求的上下文中)的术语“一”、“一个”和“所述”及类似指示物的使用应当被解释为涵盖单数和复数两者,除非在本文中另有指示或与上下文明显矛盾。除非另有指示,否则术语“具有”、“包括”和“包含”应被解释为开放式术语(即表示“包括但不限于”)。
除非另外定义,否则在本文中使用的所有技术和科学术语具有本发明所属领域的普通技术人员通常所理解的相同意义。应注意,除非另外规定,否则本文中提供的任何和所有示例或示例性术语的使用仅意在更好地说明本发明,而不是限制本发明的范围。此外,除非另外定义,否则不应过度解读通用字典中限定的所有术语。
描述了一种用于执行相乘累加操作的硬件设备和方法。该设备包括输入线、权重单元和输出线。输入线接收输入信号,该输入信号中的每个输入信号是具有幅度和相位的交流模拟谐波信号,且能够表示复值。权重单元将输入线与输出线耦接。权重单元中的每个权重单元具有与权重相对应的电导纳。电导纳是可编程的,并且能够被复值化。输入线、权重单元和输出线形成交叉阵列。输出线中的每条输出线提供输出信号。输出线的输出信号是与将输入线连接到输出线的每个权重单元的电导纳相乘的连接到输出线的每条输入线的输入信号之和。
图1绘出了能够执行模拟复值化相乘累加(MAC)操作/向量矩阵乘法的硬件设备100的示例性实施例的一部分。为简单起见,仅示出了硬件设备100的一部分。硬件设备100可以是混合模拟数字电路。硬件设备100包括输入线110-1至110-n(统一/笼统称作输入线110)、权重单元120-11至120-nm(统一/笼统称作权重单元120)、输出线130-1至130-m(统一/笼统称作输出线130)和可选的后累加块102。在一些实施例中,可以认为每条输入线110是突触前线,每个权重单元120是突触,每条输出线130是突触后线。输入线110通过权重单元120的阵列连接到输出线130。例如,输入线110-1通过权重单元120-11连接到输出线130-1,通过权重单元120-12连接到输出线130-2,......以及通过权重单元120-1m连接到输出线130-m。因此,输入线110、权重单元120和输出线130形成交叉阵列。
输入线130接收复值化的输入信号。每个输入信号是交流模拟谐波信号。该交流模拟谐波信号使用幅度和相位来表示复值。例如,输入到输入线110-i的输入信号可以是由Viejωt给定的电压,其中t是时间,ω是频率,Vi是电位。输入信号也可以被表示为:Vi,recosωt+jVi,imsinωt。Vi,re和Vi,im是Vi的实部和虚部的幅度。对于输入线110中的至少一些,Vi,re或Vi,im可以是零。提供给输入线110的输入信号对应于矩阵向量乘法操作中的向量。换句话说,提供给输入线110的电压信号的幅度与输入向量所期望的输入值成比例。这个输入向量可以是先前的MAC操作的输出,先前的MAC操作可以由可以与硬件设备100类似的设备(未示出)执行。
权重单元120中的每个权重单元具有电导纳Yij,其中i对应于输入线编号,j对应于交叉点的输出线编号。电导纳是可编程的,能够被复值化并且是权重单元120的权重。给定的权重单元120的导纳可以采用纯实数值、纯虚数值或可以是实数值与虚数值之和。为了提供该导纳,权重单元120可以包括无源电子组件,诸如电阻器和电容器。例如,权重单元120可以包括与电容器并联的电阻器。对于这种权重单元,导纳Yij=Gij+iCij,其中Gij=1/Rij,Gij是电阻器的电导,Rij是电阻器的电阻,Cij是电容器的电容。在其他实施例中,可以使用具有复导纳的其他或附加的无源组件。权重单元120的阵列对应于用于向量矩阵乘法的矩阵。权重单元120-ij的导纳Yij与和输入向量相乘的矩阵的第ij个位置中的值成比例。
输出线130中的每条输出线提供电流形式的输出信号。由于输入线110、权重单元120和输出线130的连接方式,每条输出线的输出信号是与将输入线110连接到输出线130的每个权重单元120的电导纳相乘的连接到输出线的输入线110中的每条输入线的输入信号之和。由此,每条输出线130的输出信号是由Ij=∑iViYij给出的复电流。
后累加处理块102可以用于对输出信号执行附加的处理。例如,后处理块可以将输出线130中的电流转换为电压。这种电压可以形成针对可以与硬件设备100类似的后续硬件MAC操作设备(未示出)的输入信号。在备选实施例中,可以省略后累加处理块102。
在操作中,权重单元120中的每个权重单元的导纳是可编程的。通过输入线110中的每条输入线驱动与输入向量相对应的正弦复电压信号。产生的通过输出线130的电流取决于通过每条输入线的电压和连接输入线110与输出线的权重单元120的导纳。第j条输出线130上的电流通过下式给出:Ij=∑iViYij=∑iVi(Gij+Cij),其中i对应于输入线110且范围从1至n,每个权重单元120包括与电阻器并联的电容器。该电流可以被转换成电压或由后处理块102另行操纵。因为使用了模拟信号,因此硬件设备100可能发生由于为稳定输出所需要的循环次数而引起的延迟损失。此外,权重单元120内的电阻器或电容器中的充分的非线性可能导致输出的失真和误差。在硬件设备100的操作期间,需要降低这种非线性,并且期望执行用于稳定输出的充分次数的循环。
使用硬件设备100,可以针对复值化的模拟信号执行MAC操作/向量矩阵乘法,并使用复值化的权重。因为是以硬件实现的,所以模拟硬件设备100可以执行具有较低功耗和改进性能的MAC操作。硬件设备100的特定权重单元120的权重/电导纳可以是纯实数、纯虚数、或者包括实数分量和虚数分量两者。与仅采用实数权重的传统的硬件实现相比,硬件设备100可以由此而具有增加的灵活性。硬件设备100可以用来在使用复值的神经网络中有效地执行复MAC操作。这种复值化的神经网络可以使用更少的神经元和/或数学操作来解决问题。由此,可以改进神经网络设计,增强性能并降低功耗。可以使用复值化的MAC操作在其他应用中实现类似的有益效果。因此,硬件设备100能够改进依赖于MAC操作的应用的性能。
在图1所示的硬件设备100中,如果仅使用无源组件,则权重单元120的导纳可以仅具有正值。这是因为在本文中详细讨论的诸如电阻、电容之类的无源组件具有非负导纳。然而,可能期望权重单元120的权重采用一般的复值(正或负)。图2至图4绘出了硬件设备的示例性实施例,其中权重可以是正复值或负复值,并且使用无源组件来实现。负复值可以具有实部和虚部,所述实部和虚部中的一个或两个可以为负。在备选实施例中,可以在权重单元120内采用诸如电流镜之类的有源元件来提供正复值化和负复值化的权重。
图2绘出了能够执行包含负权重的模拟复值化MAC操作的硬件设备100A的一部分的示例性实施例。硬件设备100A与硬件设备100类似。由此,硬件设备100A包括输入线110A、权重单元120A、输出线130和可选的后累加块102,其分别对应于输入线110、权重单元120、输出线130和可选的后累加块102。由此,输入线110A、权重单元120A和输出线130的索引方式与上述方式类似。然而,如图2所示,每条输入线110A-i包括两条输入子线112-i和114-i(笼统称为子线112和114)。例如,输入线110A-1包括子线112-1和114-1。每个权重单元120A-ij包括两个权重子单元122-ij和124-ij。例如,权重单元120A-11包括子单元122-11和124-11。
输入线110A包括子线112和114,以便分别携带正输入信号和负输入信号。类似地,权重单元120A-ij包括连接到正子线112的正子单元122-ij(笼统称为子单元122)和连接到负子线114的负子单元124-ij(笼统称为子单元124)。正子单元122具有导纳Yij+,而负子单元124具有导纳Yij-。两个子单元122和124都连接到对应的输出线130。由此,正复输入值(电压)和负复输入值(电压)乘以所期望的权重(导纳)并且两者都在适当的输出线130上被累加。由硬件设备100A执行的MAC操作的输出是每条输出线130上携带的电流。
硬件设备100A以与硬件设备100类似的方式操作。设置权重单元120中的每个权重单元的导纳。此外,通过输入线112和114中的每条输入线驱动用于正权重和负权重的正弦复电压。产生的通过输出线130的电流分别取决于通过每条输入线112和114的电压以及子单元122和124的导纳。第j条输出线130上的电流通过下式给出:Ij=∑iVi(Yij+-Yij-),其中i对应于输入线110A并且范围从1至n。该电流可以由后处理块102转换成电压,并且提供给执行后续MAC操作的后续硬件设备。
使用硬件设备100A,可以实现硬件设备100的有益效果。由此,MAC操作/向量矩阵乘法可以使用模拟信号和复权重来执行,且具有较低功耗和改进性能。硬件设备100A可以由此而具有增加的灵活性,并且可以用来在使用复值的神经网络中有效地执行复MAC操作。硬件设备100A还可以扩展到可能期望复值的其他应用。因此硬件设备100A能够改进依赖于MAC操作的应用的性能。此外,在MAC操作中使用的权重可以采用正复值和负复值。结果是,可以扩展硬件设备100A的实用性。
图3绘出了能够执行包含负权重的模拟复值化MAC操作的硬件设备100B的一部分的示例性实施例。硬件设备100B与硬件设备100和100A类似。由此,硬件设备100B包括输入线110、权重单元120B、输出线130B和可选的后累加块102,其分别对应于输入线110/110A、权重单元120/120A、输出线130和可选的后累加块102。由此,输入线110、权重单元120B和输出线130B的索引方式与上述方式类似。如图3所示,每条输出线130B-i包括两条输出子线132-i和134-i(笼统称为线132和134)。例如,输出线130B-1包括子线132-1和134-1。此外,每个权重单元120B-ij包括两个权重子单元122-ij和124-ij。
权重单元120B-ij包括正子单元122-ij(笼统称为子单元122)和负子单元124-ij(笼统称子单元124),这两者都连接到输入线110。正子单元122连接到正输出子线132。负子单元124连接到负输出子线134。正子单元122具有导纳Yij+,而负子单元124具有导纳Yij-。由此,与所期望的权重(导纳)相乘的两个复输入值(电压)均在适当的正输出线132和负输出线134上被累加。输出线130B由此分别在子线132和子线134上携带正加权和负加权的输出信号。
硬件设备100B以与硬件设备100和100A类似的方式操作。设置权重单元120B中的每个权重单元的导纳。此外,通过输入线110中的每条输入线驱动正弦复电压。产生的通过每条输出子线132和134的电流分别取决于通过输入线110的电压和对应的子单元122和124的权重的导纳。第j条输出子线132-j和134-j上的电流分别通过下式给出:Ij+=∑iViYij+和Ij-=∑iViYij-,其中i对应于输入线110A并且范围从1至n。该电流可以由后处理块102转换成电压,并且提供给执行后续MAC操作的后续硬件设备。
使用硬件设备100B,可以实现硬件设备100和/或100A的有益效果。由此,MAC操作/向量矩阵乘法可以使用模拟信号和复权重来执行,且具有较低功耗和改进性能。硬件设备100A可以由此具有增加的灵活性,并且可以用来在使用复值的神经网络中有效地执行复MAC操作。硬件设备100A还可以扩展到可能需要复值的其他应用。因此,硬件设备100B能够改进依赖于MAC操作的应用的性能。此外,在MAC操作中使用的权重可以采用正复值和负复值。结果是,可以扩展硬件设备100的实用性。
尽管硬件设备100A和100B起作用,但这些设备需要大量的附加电路。更具体地,每个权重单元需要附加的输入或输出线以及多个子单元。因此,可以期望一种用于能够使用正复权重和负复权重来执行MAC操作的改进机制。
图4绘出了硬件设备100C的一部分的示例性实施例,该硬件设备100C能够在不需要用于每个权重单元的附加子单元和输入线或输出线的情况下执行包含负权重的模拟复值化MAC操作。硬件设备100C与硬件设备100、100A和100B类似。由此,硬件设备100C包括输入线110、权重单元120、输出线130和可选的后累加块102,其分别对应于输入线110、权重单元120、输出线130和可选的后累加块102。输入线110、权重单元120和输出线130的索引方式与上述方式类似。此外,存在具有对于每条输入线110的电阻为Roff-i的偏移电阻器150-i(笼统称为150)。硬件设备100C还包括附加的偏移线140、可以处理来自偏移线140的输出电流的可选的偏移块160和可选的偏移电压线170。
可以示出的是,诸如导纳Yij-的负复值化权重可以由固定值表示以抵消输入110-i的总导纳。该偏移量不需要被包括在每个单独的权重单元120-ij中。相反,偏移量可以由具有对于每条输入线110-i的电阻为Roff-i的电阻器150-i来表示。与输入电压相乘的与这些偏移电阻相对应的电导之和可以在单独的偏移线140上被累加并与其余线上的输出合并。偏移块160可以将偏移电流转换为电压。可选的电压线170可以为每条输出线130提供偏移电压。在备选的实施例中,可以通过后累加块102执行到电压的转换。
硬件设备100C以与硬件设备100、100A和100B类似的方式操作。设置权重单元120中的每个权重单元的导纳。此外,通过输入线110中的每条输入线驱动正弦复电压。产生的通过每条输出线130的电流以与针对硬件设备100所描述的方式类似的方式进行累加。另外,连接到偏移线140的电阻器150-I的导纳1/Roff-i导致累加的偏移电流Ioff。偏移线140上的偏移电流由下式给出:Ioff=∑iVi/Roff-i,其中i对应于输入线110并且范围从1至n。可以从输出线130上的输出电流中减去这个偏移电流。产生的针对每条输出线130的电流可以由后处理块102转换成电压,并且提供给执行后续MAC操作的后续硬件设备。备选地,偏移电流可以被转换为偏移电压,并从与输出线130中的电流相对应的电压中减去。
使用硬件设备100C,可以实现硬件设备100、100A和/或100B的有益效果。由此,MAC操作/向量矩阵乘法可以使用模拟信号和复权重来执行,且具有较低功耗和改进性能。硬件设备100C可以由此具有增加的灵活性,并且可以用来在使用复值的神经网络中有效地执行复MAC操作。硬件设备100C还可以扩展到可能期望复值的其他应用。因此,硬件设备100C能够改进依赖于MAC操作的应用的性能。在MAC操作中使用的权重可以采用正复值和负复值。此外,负复值可以包含在更简单、更有效且更巧妙的电路中。结果是,可以扩展硬件设备100、100A和/或100B的实用性。
图5A、图5B和图5C分别绘出了权重单元120’、可编程电阻电路200A和可编程电容电路210A的示例性实施例。参考图5A,权重单元120’可以用在硬件设备100、100A、100B和/或100C中的权重单元120、120A和/或120B中的一个或多个权重单元中。权重单元120’包括与可编程电容器210并联的可编程电阻器200。在一些实施例中,开关(未示出)与电阻器200和电容器210串联。然而,在所示的实施例中,省略了这些开关。可编程电阻器200具有可变电导Gp。可编程电容器210具有可编程电容Cp。权重单元120’的可编程导纳是Gp+Cp。由此,权重单元120’可以是纯电阻的,可以是纯电容的或是电阻的和电容的两者。
图5B绘出了可以用于可编程电阻器200的可编程电阻电路200A的一个实施例。可编程电阻电路200A包括分别并联连接的电阻器202、204和206以及开关203、205和207。电阻器202、204和206分别具有电导G1、G2和G3。在示例性实施例中,每个开关203、205和/或207是闪速晶体管。然而,开关203、205和/或207可以包括具有足够大的开/关比的其他器件。例如,开/关比可以至少为105。这类器件可以包括但不限于MOSFET、铁电晶体管和/或阻变式随机存取存储器(RRAM)元件。电阻器200和200A可以以多种方式来实现。例如,可以使用磁性随机存取存储器(MRAM)元件(诸如磁性隧道结)、闪速器件、RRAM元件、相变存储器(PCM)元件、铁电随机存取存储器(FeRAM)元件和/或类似器件来构建电阻器202、204和/或206。在一些实施例中,G2是G1的两倍,G3是G2的两倍。通过选择性地断开或闭合开关203、205和207,可以将可编程电阻电路200A的电阻设置成八个均匀分布值中的一个。然而,具有其他电阻值的其他配置是可能的。
图5C绘出了可以用于权重单元120’的可编程电容器210的可编程电容电路210A的一个实施例。可编程电容电路210A包括分别并联连接的电容器212、214和216以及开关213、215和217。电容器212、214和216分别具有电容C1、C2和C3。在示例性实施例中,每个开关213、215和/或217是闪速晶体管。然而,开关213、215和/或217可以包括具有足够大的开/关比的其他设备。这种开/关比可以至少为105。满足这种标准的器件可以包括以上所述的器件。可以用作可编程电容器210/210A的附加器件包括铁电FET(FeFET)、闪速器件、MOS电容器(MOSCAP)或具有复阻抗的类似器件。然而,这种备选器件可能具有相对非线性的电流-电压特性,其可能导致MAC操作的失真和不准确性。因此,在至少一些实施例中可能不希望使用这类器件。在备选实施例中,可编程电容器210/210A可以由可编程电感器增强或取代。然而,紧凑的可编程和可制造的电感器器件可能难以获得。在一些实施例中,C2是C1的两倍,C3是C2的两倍。然而,其它配置是可能的。通过选择性地断开或闭合开关213、215和217,可以将可编程电容电路210A的电容设置成八个均匀分布值中的一个。然而,具有其他电容值的其他配置是可能的。
可以使用权重单元120’、可编程电阻电路200A和/或可编程电容电路210A,来实现硬件设备100、100A、100B、100C和/或类似设备。在其他实施例中可以使用其他实现。因此,可以实现硬件设备100、100A、100B和/或100C的有益效果。
图6是绘出了用于执行模拟复值化MAC操作的方法300的示例性实施例的流程图。为了简单起见,一些步骤可以被省略、以另一顺序执行和/或组合。还是在硬件设备100的上下文中描述了方法300。然而,方法300可以结合用于执行模拟复值化MAC操作的另一硬件设备(诸如设备100A、100B和/或100C)来使用。
经由步骤302对权重单元120的导纳进行编程。由此,设置权重单元120的期望的电阻、电容、电感和/或其它电特性。步骤302可以包括断开或闭合开关203、205、207、213、215和/或217中的一个或多个开关,以在每个权重单元120中提供期望的电阻和电容。
经由步骤304接收输入信号。步骤304可以包括针对每条输入线110生成输入信号并接收该信号。由此,可以将复交流谐波电压信号提供给硬件设备。
经由步骤306,使输入信号通过硬件设备100的交叉阵列。由于输入线110、权重单元120和输出线130的配置,因此可以对输入信号执行MAC操作。因此,输出线130上所产生的电流是MAC操作的输出。
经由步骤308,输出线130上的电流可以由后累加块102处理。例如,输出线130上的电流可以被转换为电压。由此,可以提供由输入线110上的输入向量与由权重单元120形成的矩阵的乘法而产生的输出向量。
由此,使用方法300,可以使用硬件设备100、100A、100B、100C和/或类似设备。结果是,可以实现一个或多个硬件设备100、100A、100B和/或100C的优点。
已经描述了用于使用复值来执行MAC操作/向量矩阵乘法的方法和系统。已经根据所示出的示例性实施例描述了该方法和系统,并且本领域的普通技术人员将容易地认识到,可以对这些实施例进行改变,并且任何改变都将在该方法和系统的精神和范围内。因此,在不脱离所附权利要求的精神和范围的情况下,本领域的普通技术人员可以做出许多修改。

Claims (19)

1.一种用于执行相乘累加操作的硬件设备,包括:
多条输入线,用于接收多个输入信号,所述多个输入信号中的每个输入信号是具有幅度和相位的交流模拟谐波信号,所述交流模拟谐波信号能够表示复值;
多条输出线;以及
多个权重单元,将所述多条输入线与所述多条输出线耦接,所述多个权重单元中的每个权重单元具有与权重相对应的电导纳,所述电导纳是可编程的且能够被复值化;
其中,所述多条输入线、所述多个权重单元和所述多条输出线形成交叉阵列;
其中,所述多条输出线中的每条输出线提供输出信号,所述多条输出线中的一条输出线的输出信号是与所述多个权重单元中将所述多条输入线连接到所述一条输出线的部分权重单元中的每个权重单元的电导纳相乘的连接到所述一条输出线的所述多条输入线中的每条输入线的输入信号之和。
2.根据权利要求1所述的硬件设备,其中,所述多条输入线中的每条输入线通过所述多个权重单元中的权重单元耦接到所述多条输出线中的每条输出线。
3.根据权利要求2所述的硬件设备,其中,所述多个权重单元中的每个权重单元包括与可编程电容器并联连接的可编程电阻器。
4.根据权利要求3所述的硬件设备,其中,所述可编程电阻器包括多个并联连接的电阻电路,每个电阻电路包括与电阻器串联连接的开关。
5.根据权利要求3所述的硬件设备,其中,所述可编程电容器包括与开关串联连接的多个电容器。
6.根据权利要求1所述的硬件设备,其中,所述多个权重单元中的至少一个权重单元的至少一个权重可以采用负复值。
7.根据权利要求6所述的硬件设备,其中,所述至少一个权重单元中的每个权重单元包括正权重子单元和负权重子单元,其中,每个权重单元与所述多条输入线中的两条输入线耦接。
8.根据权利要求6所述的硬件设备,其中,所述至少一个权重单元中的每个权重单元包括正权重子单元和负权重子单元,其中,每个权重单元与所述多条输出线中的两条输出线耦接。
9.根据权利要求6所述的硬件设备,还包括:
偏移线,通过具有实数偏移阻抗且连接到所述多条输入线中的每条输入线的无源偏移组件,连接到所述多条输入线中的每条输入线。
10.一种复值化神经网络,包括:
多个硬件设备层,所述硬件设备中的每个硬件设备用于执行输入向量与矩阵的相乘累加操作,所述硬件设备中的每个硬件设备包括:
多条输入线,用于接收与所述输入向量相对应的多个输入信号,所述多个输入信号中的每个输入信号是具有幅度和相位的交流模拟谐波信号,所述交流模拟谐波信号能够表示复值;
多条输出线,与所述多条输入线耦接;以及
多个权重单元,将所述多条输入线中的每条输入线与所述多条输出线中的每条输出线耦接以形成交叉阵列,所述多个权重单元对应于所述矩阵,所述多个权重单元中的每个权重单元具有与权重相对应的电导纳,所述电导纳是可编程的且能够被复值化,所述多个权重单元中的每个权重单元包括与可编程电容器并联连接的可编程电阻器,所述可编程电阻器包括多个并联连接的电阻电路,每个电阻电路包括与电阻器串联连接的开关,所述可编程电容器包括与开关串联连接的多个电容器;以及
偏移线,通过具有实数偏移阻抗且连接到所述多条输入线中的每条输入线的无源偏移组件,连接到所述多条输入线中的每条输入线,使得所述多个权重中的每个权重可以采用负复值;
其中,所述多条输出线中的每条输出线提供输出信号,所述多条输出线中的一条输出线的输出信号是与所述多个权重单元中将所述多条输入线连接到所述一条输出线的部分权重单元中的每个权重单元的电导纳相乘的连接到所述一条输出线的所述多条输入线中的每条输入线的输入信号之和;以及
对于多个层中的除最后一层以外的每个层,所述多条输出线中的每条输出线的输出信号对应于所述多个硬件设备层中的下一个硬件设备层的向量输入的分量。
11.一种用于执行相乘累加操作的方法,包括:
接收多个输入信号,所述多个输入信号中的每个输入信号是具有幅度和相位的交流模拟谐波信号,所述交流模拟谐波信号能够表示复值;
使所述多个输入信号通过包括多条输入线、多条输出线和多个权重单元在内的交叉阵列,所述多个权重单元将所述多条输入线与所述多条输出线耦接,所述多个权重单元中的每个权重单元具有与权重相对应的电导纳,所述电导纳是可编程的且能够被复值化,使得所述多条输出线中的每条输出线提供输出信号,所述多条输出线中的一条输出线的输出信号是与所述多个权重单元中将所述多条输入线连接到所述一条输出线的部分权重单元中的每个权重单元的电导纳相乘的连接到所述一条输出线的所述多条输入线中的每条输入线的输入信号之和。
12.根据权利要求11所述的方法,还包括:
在使所述多个输入信号通过所述交叉阵列的步骤之前,设置所述多个权重单元中的每个权重单元的电导纳。
13.根据权利要求12所述的方法,其中,所述多个权重单元中的每个权重单元包括与可编程电容器并联连接的可编程电阻器,所述方法包括:
设置所述多个权重单元中的每个权重单元中的可编程电阻器的电阻;以及
设置所述多个权重单元中的每个权重单元中的可编程电容器的电容。
14.根据权利要求13所述的方法,其中,所述可编程电阻器包括多个并联连接的电阻电路,每个电阻电路包括与电阻器串联连接的开关,所述方法还包括:
将所述多个电阻电路中的每个电阻电路中的开关设置为闭合状态和断开状态中的一种。
15.根据权利要求13所述的方法,其中,所述可编程电容器包括与开关串联连接的多个电容器,所述方法还包括:
将所述开关设置为闭合状态和断开状态中的一种。
16.根据权利要求11所述的方法,其中,所述多个权重单元中的至少一个权重单元的至少一个权重可以采用负复值。
17.根据权利要求16所述的方法,其中,所述至少一个权重单元中的每个权重单元包括正权重子单元和负权重子单元,其中,每个权重单元与所述多条输入线中的两条输入线耦接。
18.根据权利要求16所述的方法,其中,所述至少一个权重单元中的每个权重单元包括正权重子单元和负权重子单元,其中,每个权重单元与所述多条输出线中的两条输出线耦接。
19.根据权利要求16所述的方法,其中,所述交叉阵列还包括:偏移线,通过具有实数偏移阻抗且连接到所述多条输入线中的每条输入线的无源偏移组件,连接到所述多条输入线中的每条输入线。
CN201811040668.3A 2017-09-11 2018-09-06 用于执行模拟复向量矩阵乘法的方法和系统 Active CN109492187B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762556842P 2017-09-11 2017-09-11
US62/556,842 2017-09-11
US15/849,106 2017-12-20
US15/849,106 US10878317B2 (en) 2017-09-11 2017-12-20 Method and system for performing analog complex vector-matrix multiplication

Publications (2)

Publication Number Publication Date
CN109492187A true CN109492187A (zh) 2019-03-19
CN109492187B CN109492187B (zh) 2023-03-24

Family

ID=65632162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811040668.3A Active CN109492187B (zh) 2017-09-11 2018-09-06 用于执行模拟复向量矩阵乘法的方法和系统

Country Status (3)

Country Link
US (1) US10878317B2 (zh)
KR (1) KR102462792B1 (zh)
CN (1) CN109492187B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113614729A (zh) * 2019-03-27 2021-11-05 索尼集团公司 算术装置和乘法累加系统

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190008051A (ko) * 2017-07-14 2019-01-23 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 동작 방법
IT201700108281A1 (it) * 2017-09-27 2019-03-27 Milano Politecnico "circuito di risoluzione di problemi matematici comprendente elementi resistivi."
CN112567350A (zh) * 2018-06-18 2021-03-26 普林斯顿大学 可配置的存储器内计算引擎、平台、位单元及其布局
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11256778B2 (en) 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
US20200320373A1 (en) * 2019-04-03 2020-10-08 Realtek Semiconductor Corp. Mixed-signal neurons for neuromorphic computing and method thereof
US11194886B2 (en) * 2019-05-09 2021-12-07 Applied Materials, Inc. Bit-ordered binary-weighted multiplier-accumulator
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11397561B2 (en) 2019-09-05 2022-07-26 SK Hynix Inc. Nonvolatile memory device performing a multiplicaiton and accumulation operation
KR20210029071A (ko) 2019-09-05 2021-03-15 에스케이하이닉스 주식회사 Mac 연산 동작을 수행하는 비휘발성 메모리 장치
US11693657B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems
US11829729B2 (en) * 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
US11934824B2 (en) 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11354383B2 (en) * 2019-09-27 2022-06-07 Applied Materials, Inc Successive bit-ordered binary-weighted multiplier-accumulator
US11449577B2 (en) * 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
KR102419201B1 (ko) * 2019-12-27 2022-07-08 포항공과대학교 산학협력단 멀티 비트 특성을 갖는 뉴로모픽 시냅스 소자 및 이의 동작 방법
US11544037B2 (en) 2020-04-30 2023-01-03 International Business Machines Corporation Low area multiply and accumulate unit
US11500614B2 (en) 2020-05-11 2022-11-15 International Business Machines Corporation Stacked FET multiply and accumulate integrated circuit
US11520855B2 (en) 2020-05-15 2022-12-06 International Business Machines Corportation Matrix sketching using analog crossbar architectures
US11705922B2 (en) * 2020-06-03 2023-07-18 Joyson Safety Systems Acquisition Llc Apparatus and system for a programmable resistance circuit
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems
US11200948B1 (en) * 2020-08-27 2021-12-14 Hewlett Packard Enterprise Development Lp System for a flexible conductance crossbar
US11922131B2 (en) 2020-10-08 2024-03-05 Applied Materials, Inc. Scalable, multi-precision, self-calibrated multiplier-accumulator architecture
US11681776B2 (en) * 2020-10-08 2023-06-20 Applied Materials, Inc. Adaptive settling time control for binary-weighted charge redistribution circuits
KR20220148558A (ko) 2021-04-29 2022-11-07 삼성전자주식회사 뉴로모픽 컴퓨팅 장치 및 그 설계 방법
US11800698B2 (en) 2021-08-17 2023-10-24 International Business Machines Corporation Semiconductor structure with embedded capacitor
DE102021004453A1 (de) * 2021-09-01 2023-03-02 Semron Gmbh Anordnung zur Durchführung einer diskreten Fouriertransformation
KR20230079888A (ko) 2021-11-29 2023-06-07 삼성전자주식회사 메모리 어레이의 프로그램 방법 및 이를 수행하는 메모리 장치
US12003240B1 (en) 2022-10-31 2024-06-04 International Business Machines Corporation Analog memory-based complex multiply-accumulate (MACC) compute engine
WO2024095128A1 (en) * 2022-11-02 2024-05-10 Politecnico Di Milano Analogic artificial neuron and neural network comprising a plurality of analogic artificial neurons

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106530210A (zh) * 2016-10-31 2017-03-22 北京大学 基于阻变存储器件阵列实现并行卷积计算的设备和方法
WO2017131711A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Memristor crossbar array for performing a fourier transformation
US20170220526A1 (en) * 2015-04-16 2017-08-03 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8183554B2 (en) 2006-04-03 2012-05-22 Blaise Laurent Mouttet Symmetrical programmable memresistor crossbar structure
JP2008017300A (ja) * 2006-07-07 2008-01-24 Nec Electronics Corp 半導体集積回路装置および入力回路
KR101425846B1 (ko) * 2006-07-17 2014-08-05 스캐니메트릭스 인크. 테스트 회로를 구비하는 박막 트랜지스터 어레이
US20110235227A1 (en) * 2010-03-26 2011-09-29 Hamilton Sundstrand Corporation Remote Power Controller with Parallel FETS
US9384168B2 (en) 2013-06-11 2016-07-05 Analog Devices Global Vector matrix product accelerator for microprocessor integration
JP6702596B2 (ja) * 2016-01-18 2020-06-03 華為技術有限公司Huawei Technologies Co.,Ltd. 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法
EP3414702A1 (en) * 2016-02-08 2018-12-19 Spero Devices, Inc. Analog co-processor
US9785615B1 (en) * 2016-06-24 2017-10-10 Hewlett Packard Enterprise Development Lp Memristive computation of a vector cross product
US9910827B2 (en) * 2016-07-01 2018-03-06 Hewlett Packard Enterprise Development Lp Vector-matrix multiplications involving negative values
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170220526A1 (en) * 2015-04-16 2017-08-03 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations
WO2017131711A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Memristor crossbar array for performing a fourier transformation
CN106530210A (zh) * 2016-10-31 2017-03-22 北京大学 基于阻变存储器件阵列实现并行卷积计算的设备和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113614729A (zh) * 2019-03-27 2021-11-05 索尼集团公司 算术装置和乘法累加系统
CN113614729B (zh) * 2019-03-27 2023-08-04 索尼集团公司 算术装置和乘法累加系统

Also Published As

Publication number Publication date
KR102462792B1 (ko) 2022-11-02
KR20190029406A (ko) 2019-03-20
CN109492187B (zh) 2023-03-24
US20190080230A1 (en) 2019-03-14
US10878317B2 (en) 2020-12-29

Similar Documents

Publication Publication Date Title
CN109492187A (zh) 用于执行模拟复向量矩阵乘法的方法和系统
US10339202B2 (en) Resistive memory arrays for performing multiply-accumulate operations
CN111433792B (zh) 可编程可重置人工神经网络的基于计数器的电阻处理单元
CN107533668B (zh) 用于计算神经网络的节点值的硬件加速器和方法
Chua The fourth element
JP4620943B2 (ja) 積和演算回路及びその方法
CN110914906A (zh) 用于执行具有多位输入矢量的矩阵计算的多级单元(mlc)非易失性(nv)存储器(nvm)矩阵电路
US10802743B2 (en) Control plane organization for flexible digital data plane
CN111052153B (zh) 使用半导体存储元件的神经网络运算电路及动作方法
CN110383282A (zh) 用于混合信号计算的系统和方法
CN111125616B (zh) 一种二维离散傅里叶变换运算电路及运算方法
US20210342678A1 (en) Compute-in-memory architecture for neural networks
CN114298296A (zh) 基于存算一体阵列的卷积神经网络处理方法和装置
Khalil et al. A novel reconfigurable hardware architecture of neural network
CN110991624A (zh) 一种变脉宽输入电荷积累型忆阻神经网络电路
US20220179658A1 (en) Refactoring Mac Operations
US11133058B1 (en) Analog computing architecture for four terminal memory devices
JP6818116B1 (ja) クロスバーアレイを用いた電子装置およびデータ処理方法
CN114429199A (zh) 可扩展的仿神经电路
US11868893B2 (en) Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
Stathis et al. Shortest path computing using memristor-based circuits and cellular automata
Rahman A neural network with O (N) neurons for ranking N numbers in O (1/N) time
CN210864805U (zh) 一种变脉宽输入电荷积累型忆阻神经网络电路
Frátrik et al. Memristive sorting networks
Moriyasu et al. A deep dynamic binary neural network and its application to matrix converters

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