CN114861902A - 处理单元及其操作方法、计算芯片 - Google Patents
处理单元及其操作方法、计算芯片 Download PDFInfo
- Publication number
- CN114861902A CN114861902A CN202210624818.5A CN202210624818A CN114861902A CN 114861902 A CN114861902 A CN 114861902A CN 202210624818 A CN202210624818 A CN 202210624818A CN 114861902 A CN114861902 A CN 114861902A
- Authority
- CN
- China
- Prior art keywords
- input
- output
- vector
- module
- signal
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
Abstract
一种处理单元及其操作方法、计算芯片,该处理单元包括:忆阻器阵列,配置为被映射为用于神经网络的网络层的权重矩阵;输入模块,配置为接收输入数据并将输入数据转换为输入信号以输入到忆阻器阵列中;输出模块,配置为接收忆阻器阵列对输入信号进行计算处理后得到的输出信号,并将输出信号转换为输出数据;符号逻辑模块,配置为分别得到第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,并根据这些符号值,确定权重矩阵中每个权重参数的更新方向;更新逻辑模块,配置为根据权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新。
Description
技术领域
本公开的实施例涉及一种处理单元及其操作方法、计算芯片。
背景技术
人工神经网络在图像识别与分类、自然语言处理以及决策和控制等领域表现出优异的性能,已被广泛地应用于手机、自动驾驶汽车等各种智能设备中。目前,人工神经网络模型的训练通常是在云端完成的,智能设备只能运行预先部署的模型,无法实现在线训练,也不能根据实际场景动态调整模型参数。这是由于传统的计算系统采用存算分离的架构。片外访存所导致的延时和能耗制约了计算系统的性能,进而限制了智能设备在线训练功能的实现。
基于忆阻器的存算一体计算技术能大幅减小访存的开销,有望大幅提升计算系统的能效和算力,进而支持智能设备实现在线训练功能。实现基于忆阻器的支持在线训练的完整芯片是其大规模应用的前提。目前已经有一些有关忆阻器在线训练计算系统的研究,包括器件优化及阵列级演示等,但仍缺乏支持在线训练的完整芯片的报道。
发明内容
本公开一些实施例提供了一种处理单元,该处理单元包括:忆阻器阵列,配置为被映射为用于神经网络的网络层的权重矩阵;输入模块,配置为接收输入数据并将所述输入数据转换为输入信号以输入到所述忆阻器阵列中;输出模块,配置为接收所述忆阻器阵列对所述输入信号进行计算处理后得到的输出信号,并将所述输出信号转换为输出数据;误差求解模块,配置为根据所述输出数据得到所述网络层的第一误差向量;符号逻辑模块,配置为,基于从所述神经网络的前向计算过程中获得对应所述网络层的忆阻器阵列的第一输入向量和第一输出向量,以及从所述误差求解模块获得的与所述网络层相邻的后一层网络层的所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值,以根据所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值确定所述权重矩阵中每个权重参数的更新方向;以及更新逻辑模块,配置为根据所述权重矩阵中所述各个权重参数的更新方向对所述忆阻器阵列中与所述各个权重参数对应的各个忆阻器的电导值进行更新。
例如,在本公开一些实施例提供的一种处理单元还包括:阵列驱动模块,配置为响应控制信号,对所述忆阻器阵列施加作为所述输入信号的电压信号,或从所述忆阻器阵列接收作为所述输出信号的电流信号;以及处理单元模块,配置为切换和调度所述处理单元的工作模式。
例如,在本公开一些实施例提供的一种处理单元中,所述输入模块包括:第一输入模块,配置为根据前向计算任务的第一输入数据生成第一输入信号,并将所述第一输入信号输入到所述忆阻器阵列中,以及第二输入模块,配置为根据反向计算任务的第二输入数据生成第二输入信号,并将所述第二输入信号输入到所述忆阻器阵列中,其中,所述输入数据包括所述第一输入数据和所述第二输入数据,所述输入信号包括所述第一输入信号和所述第二输入信号;所述输出模块包括:第一输出模块,配置为接收所述忆阻器阵列对所述第一输入信号进行前向计算处理后得到的第一输出信号,并根据所述第一输出信号产生第一输出数据,以及第二输出模块,配置为接收所述忆阻器阵列对所述第二输入信号进行反向计算处理后得到的第二输出信号,并根据所述第二输出信号产生第二输出数据,其中,所述输出数据包括所述第一输出数据和所述第二输出数据,所述输出信号包括所述第一输出信号和所述第二输出信号。
例如,在本公开一些实施例提供的一种处理单元中,所述阵列驱动模块包括:第一阵列驱动模块,配置为在前向计算状态时,接收对应于所述第一输入信号的第一输入电压信号,并将所述第一输入电压信号施加到所述忆阻器阵列,以及第二阵列驱动模块,配置为在反向计算状态时,接收对应于所述第二输入信号的第二输入电压信号,并将所述第二输入电压信号施加到所述对忆阻器阵列。
例如,在本公开一些实施例提供的一种处理单元中,所述符号逻辑模块还配置为,根据一个第一阈值参数得到所述第一输入向量中每个元素各自的二值化符号值;或者,根据两个第一阈值参数得到所述第一输入向量中每个元素各自的三值化符号值;所述符号逻辑模块还配置为,根据一个第二阈值参数得到所述第一输出向量中每个元素各自的二值化符号值;根据两个第二阈值参数得到所述第一输出向量中每个元素各自的三值化符号值;以及所述符号逻辑模块还配置为,根据一个第三阈值参数得到所述第一误差向量中每个元素各自的二值化符号值;或者,根据两个第三阈值参数得到所述第一误差向量中每个元素各自的三值化符号值。
例如,在本公开一些实施例提供的一种处理单元中,所述符号逻辑模块还配置为,对进行模数转换后得到的数字形式的信号取前n位,以用于设置所述第一阈值参数、所述第二阈值参数或所述第三阈值参数,n为正整数。
例如,在本公开一些实施例提供的一种处理单元中,当所述第一阈值参数、所述第二阈值参数和所述第三阈值参数为固定值时,所述符号逻辑模块还配置为,放大所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素的值,并根据所述第一阈值参数、所述第二阈值参数和所述第三阈值参数与放大后的所述第一输入向量、所述第一输出向量和所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值。
例如,在本公开一些实施例提供的一种处理单元中,所述符号逻辑模块还配置为,对进行模数转换后得到的脉冲形式的信号取第n个周期,以用于设置所述第一阈值参数、所述第二阈值参数或所述第三阈值参数,n为正整数。
例如,在本公开一些实施例提供的一种处理单元中,所述符号逻辑模块还配置为,采用参考电压作为所述第三阈值参数,并且包括:积分电路,配置为对对应于所述第一误差向量中每个元素各自的值的电流信号进行积分;以及比较电路,配置为将积分电路的输出电压与所述第三阈值参数进行比较,以得到所述第一误差向量中每个元素各自的符号值。
例如,在本公开一些实施例提供的一种处理单元中,所述第一阈值参数、所述第二阈值参数和所述第三阈值参数中至少一个阈值参数的个数为两个,以使得得到的所述第一输入向量、所述第一输出向量和所述第一误差向量中的至少一个为三值化符号值。
例如,在本公开一些实施例提供的一种处理单元中,对于根据所述权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新的情形,所述更新逻辑模块配置为:在所述权重参数的符号为正的情况下,增加忆阻器的电导值,或者在所述权重参数的符号为负的情况下,减小忆阻器的电导值。
本公开一些实施例还提供一种计算芯片,该计算芯片包括以上任一实施例中的处理单元。
本公开一些实施例还提供上述任一处理单元的操作方法,该操作方法包括:将用于所述神经网络的网络层的权重矩阵映射到所述忆阻器阵列中;通过所述输入模块,接收所述输入数据并将所述输入数据转换为输入信号以输入到所述忆阻器阵列中;通过所述输出模块,接收所述忆阻器阵列对所述输入信号进行计算处理后得到的输出信号,并将所述输出信号转换为输出数据;通过所述误差求解模块,根据所述输出数据得到所述网络层的第一误差向量;通过所述符号逻辑模块,基于从所述神经网络的前向计算过程中获得的对应所述网络层的忆阻器阵列的第一输入向量和第一输出向量,以及从所述误差求解模块获得的与所述网络层相邻的后一层网络层的所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值,以根据所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值确定所述权重矩阵中各个权重参数的更新方向;通过所述更新逻辑模块,根据所述权重矩阵中所述各个权重参数的更新方向对所述忆阻器阵列中与所述各个权重参数对应的各个忆阻器的电导值进行更新。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为本公开至少一实施例提出的一种神经网络的示意图;
图1B为本公开至少一实施例提出的一种处理单元的示意图;
图2A为本公开至少一实施例提供的一种忆阻器装置的示意图;
图2B为本公开至少一实施例提供的另一种忆阻器装置的示意图
图3为本公开至少一实施例提出的一种处理单元的计算过程的示意图;
图4为本公开至少一实施例提出的一种阈值参数选取方法的示意图;
图5为本公开至少一实施例提出的一种误差求解模块的示意图;
图6为本公开至少一实施例提出的一种符号逻辑模块的示意图;
图7为本公开至少一实施例提出的另一种符号逻辑模块的示意图;
图8为本公开至少一实施例提出的一种计算芯片的示意图;以及
图9为本公开至少一实施例提出的一种计算芯片的计算过程的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部(元)件的详细说明。当本公开实施例的任一部(元)件在一个以上的附图中出现时,该部(元)件在每个附图中由相同或类似的参考标号表示。
目前,忆阻器存算一体计算系统依靠反向传播(Back Propagation,简称BP)算法进行权重更新量计算,并依靠校验写对映射权重的忆阻器精确编程进行权重更新。反向传播算法类似于沿前向计算的正向传播算法相反的方向逐层更新神经网络算法每层的权重矩阵,权重矩阵的更新值由每层的误差值计算得到。每层的误差值由与该层相邻的后一层的权重矩阵的转置与的后一层的误差值相乘得到。因而,在得到一个神经网络算法最后一层的误差值和最后一层的权重矩阵的条件下,即可计算出最后一层的权重矩阵更新值,同时可根据反向传播算法计算出倒数第二层误差值,从而计算出倒数第二层的权重矩阵更新值,依次类推,直到反向更新完毕该神经网络算法的所有层。
但是用BP算法精确计算权重更新量比较复杂,系统和电路实现复杂度高,且系统运行时所需能耗大。一方面,依靠校验写对忆阻器精确编程开销较大,校验写需要用到模数转换电路,大幅增加了系统的面积和能耗开销;另一方面,在校验写的过程中需要对忆阻器进行多次操作,不仅增加了系统能耗开销,还提高了对忆阻器耐擦写特性的要求。
本公开至少一实施例提供一种基于存算一体符号更新算法的处理单元,该处理单元包括:忆阻器阵列、输入模块、输出模块、误差求解模块、符号逻辑模块以及更新逻辑模块。其中,忆阻器阵列配置为被映射为用于神经网络的网络层的权重矩阵;输入模块配置为接收输入数据并将输入数据转换为输入信号以输入到忆阻器阵列中;输出模块配置为接收忆阻器阵列对输入信号进行计算处理后得到的输出信号,并将输出信号转换为输出数据;误差求解模块配置为根据输出数据得到网络层的第一误差向量;符号逻辑模块配置为基于从神经网络的前向计算过程中获得的对应网络层的忆阻器阵列的第一输入向量和第一输出向量,以及从误差求解模块获得的与该网络层相邻的后一层网络层的第一误差向量,分别得到第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,以根据第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值确定权重矩阵中每个权重参数的更新方向;更新逻辑模块配置为根据权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新。该处理单元能够大幅简化支持在线训练的芯片的电路设计,并有效降低系统的模数转换电路面积和能耗开销。
本公开至少一实施例还提供包括上述处理单元的计算芯片。
本公开至少一实施例还提供用于上述处理单元的操作方法。
下面结合附图对本公开的实施例及其示例进行详细说明。
图1A示出了一种具有三层神经元层(网络层)的神经网络,该神经网络具有输入层L1、隐藏层L2以及输出层L3,神经网络的相邻两层神经元层之间通过突触权重网络W连接。
例如,输入层L1将接收的输入数据传递到隐藏层L2,隐藏层L2对该输入数据进行逐层计算转换发送至输出层L3,输出层L3输出神经网络的输出结果。例如,如图1A所示,神经网络的层与层之间是全连接的结构。
例如,如图1A所示,输入层L1、隐藏层L2以及输出层L3均包括多个神经元,各层的神经元的个数可以根据不同的应用情况设定。例如,当有M(M为大于1的整数)个输入数据时,输入层L1有M个神经元。例如,图1A所示的输入层L1具有分别对应3个输入数据X1、X2、X3的3个神经元。
如图1A所示,z(l)表示第L层神经元层的输入向量,zj (l)表示第L层的第j个神经元的输入值,例如,第L2层的输入向量为z(2),第L2层的第1个神经元的输入值为z1 (2)。a(l)表示第L层神经元层的激活输出向量,a(l)表示第L层神经元层的激活值,例如,第L2层的激活输出向量为a(2),第L2层的第1个神经元的激活值为a1 (2)。w(l)表示从第L层神经元层到第L+1层神经元层之间的权重矩阵,wjk (l)表示从第L层第k个神经元到第L+1层第j个神经元之间的权重,例如,w21 (1)表示第L1层第1个神经元到第L2层第2个神经元之间的权重,w12 (2)表示第L2层第2个神经元到第L3层第1个神经元之间的权重。
在反向传播算法中,权重矩阵的更新值可以根据下述公式得出:
Δw(l)=αa(l)×δ(l)
其中,α为学习率。
在上述公式中,Δw(l)表示权重矩阵中权重的精确更新值,a(l)表示第L层神经元层的激活输出向量,δ(l)表示第L层神经元层的误差向量。其中,δ(l)可以根据下述公式得出:
δ(l)=((w(l+1))Tδ(l+1))·σ'(z(l+1))
在上述公式中,w(l+1)表示从第L+1层神经元层到第L+2层神经元层之间的权重矩阵,δ(l+1)表示第L+1层神经元层的误差向量。z(l+1)表示第L+1层神经元层的输入向量,σ表示激活函数。
上述两个公式表示了反向传播的计算过程,每层的误差值由与每层网络层(神经元层)相邻的后一层网络层的权重矩阵的转置与后一层网络层的误差值相乘,再与前向计算过程中每层的输入向量的激活函数的导数进行内积获得。在得到每层的误差值后,权重矩阵的更新值由每层的误差值和前向计算过程中每层的激活输出向量进行外积得到。
由于忆阻器阵列被映射为用于神经网络的网络层的权重矩阵,因此在前向计算过程中,对于忆阻器阵列来说,神经网络每层网络层的激活输出向量为忆阻器阵列的“输入”,每层网络层相邻的后一层网络层的输入向量为忆阻器阵列的“输出”。
因此,在本公开的实施例中,“第一输入向量”表示从神经网络的前向计算过程中获得的对应某一网络层的忆阻器阵列的“输入”,也即从神经网络的前向计算过程中获得的某一网络层的激活输出向量,例如,对应第L2层的忆阻器阵列的“第一输入向量”为图1A中第L2层网络层的激活输出向量的a(2)。“第一输出向量”表示从神经网络的前向计算过程中获得的对应该某一网络层的忆阻器阵列的“输出”,也即从神经网络的前向计算过程中获得的与该某一网络层相邻的后一层网络层的输入向量,例如,对应第L2层的忆阻器阵列的“第一输出向量”为图1A中第L3层网络层的输入向量z(3)。“第一误差向量”表示对应于与该某一网络层相邻的后一层网络层的误差值。
本公开至少一实施例提供的处理单元,由符号逻辑模块从神经网络的前向计算过程中分别获得第一输入向量和第一输出向量,在反向计算过程中获得第一误差向量,根据获得的第一输入向量、第一输出向量和第一误差向量的精确数值以及与三者对应的第一阈值参数、第二阈值参数和第三阈值参数获得第一输入向量、第一输出向量和第一误差向量中各元素的符号值,以确定权重矩阵中各个权重参数的更新方向。
需要说明的是,在本公开至少一实施例中,根据第二阈值参数获得的第一输出向量中各元素的符号值可替代BP算法中前述公式中的激活函数σ,例如,神经网络中每层的误差向量可以由与每层相邻的后一层的权重矩阵的转置与后一层的第一误差向量的符号值相乘,再与每层进行了二值化或三值化处理的第一输出向量的符号值进行内积(即与第一输出向量中各元素的符号值一一对应相乘)获得。
若用A表示第一输入向量符号值,B表示第一输出向量符号值,C表示第一误差向量符号值,则权重矩阵中各权重的更新方向可以根据下述公式得到:
W=αA(l)×[((w(l+1))TC(l+1))·B(l+1)]
其中,W为权重矩阵中各权重的更新方向的符号值,W中各元素的取值为-1或0或1。
在上述公式中,A(l)、B(l+1)、C(l+1)中各元素的取值为-1或0或1。
因此,本公开至少一实施例通过对第一输入向量、第一输出向量和第一误差向量中的各元素进行二值化或三值化处理,能够简化计算过程,提高计算速度,更进一步地,本公开至少一实施例提供的处理单元及其操作方法在计算权重参数的更新方向时仅考虑符号值,能够避免对忆阻器电导值进行精确编程,电路实现复杂度低,系统运行时的能耗开销小,例如,可以在更新时只对忆阻器进行单次操作而无需校验,缓解了对忆阻器耐擦写特性的要求。
图1B是本公开至少一实施例提出的一种处理单元的示意图,如图1所示,该处理单元包括忆阻器阵列、前向输入模块、前向输出模块、反向输入模块、反向输出模块、两个阵列驱动模块、误差求解模块、符号逻辑模块、更新逻辑模块以及处理单元控制模块。
例如,忆阻器阵列配置为被映射为用于神经网络的网络层的权重矩阵。本公开的实施例对于神经网络的类型没有限制,例如可以是循环神经网络(RNN)、卷积神经网络(CNN)、长/短期记忆(LSTM)等等。
该忆阻器阵列可以包括阵列布置的多个忆阻器单元。例如,构成忆阻器阵列的忆阻器单元可以包括一个开关元件以及一个忆阻器(即1T1R)或者两个开关元件以及两个忆阻器(即2T2R)。例如,忆阻器阵列中的每个忆阻器单元中的单个忆阻器的电导值可以用于表示权重矩阵的一个权重参数,或者忆阻器阵列中的每个忆阻器单元中的两个忆阻器电导值的差值可以用于表示权重矩阵的一个权重参数,也即通过忆阻器阵列中的两列忆阻器实现一列输出电流的输出。
在忆阻器单元中,开关元件包括晶体管。例如,该晶体管可以为薄膜晶体管或场效应晶体管(例如MOS场效应晶体管)或其他特性相同的开关器件。例如,该晶体管可以是N型晶体管或者P型晶体管。需要说明的是,本公开对于忆阻器器件的类型、结构等也没有限制。
例如,输入模块配置为接收输入数据并将输入数据转换为输入信号以输入到忆阻器阵列中。
如图1B所示,输入模块包括前向输入模块和反向输入模块。例如,前向输入模块用于处理神经网络算法的前向推理计算任务的输入数据,并将输入数据转换为用于推理计算任务的前向输入信号,前向输入信号可以是模拟信号,例如电压信号。例如,反向输入模块用于处理神经网络算法的反向训练计算任务的输入数据,并将输入数据转换为用于训练计算任务的反向输入信号,反向输入信号可以是模拟信号,例如电压信号。例如,前向输入模块相当于本公开实施例的第一输入模块,反向输入模块相当于本公开实施例的第二输入模块,前向输入数据相当于本公开实施例的第一输入数据,反向输入数据相当于本公开实施例的第二输入数据,前向输入信号相当于本公开实施例的第一输入信号,反向输入信号相当于本公开实施例的第二输入信号。
例如,输出模块配置为接收忆阻器阵列对输入信号进行计算处理后得到的输出信号,并将输出信号转换为输出数据。
例如,如图1B所示,输出模块包括前向输出模块和反向输出模块。例如,前向输出模块接收忆阻器阵列对前向输入信号进行前向推理计算处理后得到的前向输出信号,并根据前向输出信号产生前向输出数据,前向输出信号可以是模拟信号,例如电流信号。例如,反向输出模块接收忆阻器阵列对反向输入信号进行反向训练计算处理后得到的反向输出信号,并根据反向输出信号产生反向输出数据,反向输出信号可以是模拟信号,例如电流信号。例如,前向输出模块相当于本公开实施例的第一输出模块,反向输出模块相当于本公开实施例的第二输出模块,前向输出数据相当于本公开实施例的第一输出数据,反向输出数据相当于本公开实施例的第二输出数据,前向输出信号相当于本公开实施例的第一输出信号,反向输出信号相当于本公开实施例的第二输出信号。
例如,阵列驱动模块配置为响应控制信号,对忆阻器阵列施加作为输入信号的电压信号,或从忆阻器阵列接收作为输出信号的电流信号。
例如,如图1B所示,其中一个阵列驱动模块配置为在前向计算状态时,接收对应于前向输入信号的前向输入电压信号,并将前向输入电压信号施加到忆阻器阵列,另一个阵列驱动模块配置为从忆阻器阵列接收对应于前向输出信号的电流信号。在反向计算状态时,两个阵列驱动模块的配置和执行方向与前向计算状态时相反即可。
例如,误差求解模块配置为根据输出数据得到网络层的第一误差向量,其中,“第一误差向量”在本公开实施例中表示为某一层网络层的误差精确值。例如,误差求解模块从最后一层的前向输出模块接收最后一层网络层对应的忆阻器阵列的前向输出数据,并将各个前向输出数据的输出值与预先设置好的目标值进行比较,得到各个前向输出数据的输出值与各个目标值的差值,从而获得最后一层网络层的第一误差向量,将该第一误差向量进行反向传播。例如,误差求解模块根据与每层网络层相邻的后一层的权重矩阵与后一层的第一误差向量计算得到每层网络层各自的第一误差向量。
例如,符号逻辑模块配置为得到第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,并根据第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,确定权重矩阵中每个权重参数的更新方向。例如,符号逻辑模块根据第一阈值参数得到对应某一网络层的忆阻器阵列的第一输入向量中每个元素各自的符号值,根据第二阈值参数得到对应后一层网络层的忆阻器阵列的第一输出向量中每个元素各自的符号值,根据第三阈值参数得到后一层网络层的第一误差向量,并根据三者每个元素的符号值,而不是每个元素的精确值,来计算得到某一网络层的权重参数的更新方向。
例如,符号逻辑模块配置为根据一个第一阈值参数得到第一输入向量中每个元素各自的二值化符号值。例如,第一阈值参数为S11,当第一输入向量中的第一输入元素大于等于第一阈值参数S11时,第一输入元素的符号值为+1;当第一输入向量中的第一输入元素小于第一阈值参数S11时,第一输入元素的符号值为0。
例如,符号逻辑模块配置为根据两个第一阈值参数得到第一输入向量中每个元素各自的三值化符号值。例如,两个第一阈值参数分别为S11和S12,其中,S11大于S12,当第一输入向量中的第一输入元素大于等于第一阈值参数S11时,第一输入元素的符号值为+1;当第一输入向量中的第一输入元素小于等于第一阈值参数S12时,第一输入元素的符号值为-1;当第一输入向量中的第一输入元素小于第一阈值参数S11且大于第一阈值参数S12时,第一输入元素的符号值为0。
例如,符号逻辑模块配置为根据一个第二阈值参数得到第一输出向量中每个元素各自的二值化符号值。例如,第二阈值参数为S21,当第一输出向量中的第一输出元素大于第二阈值参数S21时,第一输出元素的符号值为+1;当第一输出向量中的第一输出元素小于等于第二阈值参数S21时,第一输出元素的符号值为0。
例如,符号逻辑模块配置为根据两个第二阈值参数得到第一输出向量中每个元素各自的三值化符号值。例如,两个第二阈值参数分别为S21和S22,其中,S21大于S22,当第一输出向量中的第一输出元素大于第二阈值参数S21时,第一输出元素的符号值为+1;当第一输出向量中的第一输出元素小于第二阈值参数S22时,第一输出元素的符号值为-1;当第一输出向量中的第一输出元素小于等于第二阈值参数S21且大于等于第二阈值参数S22时,第一输出元素的符号值为0。
例如,符号逻辑模块配置为根据一个第三阈值参数得到第一误差向量中每个元素各自的二值化符号值。例如,第三阈值参数为S31,当第一误差向量中的第一误差元素大于第三阈值参数S31时,第一误差元素的符号值为+1;当第一误差向量中的第一误差元素小于等于第三阈值参数S31时,第一误差元素的符号值为0。
例如,符号逻辑模块配置为根据两个第三阈值参数得到第一误差向量中每个元素各自的三值化符号值。例如,两个第三阈值参数分别为S31和S32,其中,S31大于S32,当第一误差向量中的第一误差元素大于第三阈值参数S31时,第一误差元素的符号值为+1;当第一误差向量中的第一误差元素小于第三阈值参数S32时,第一误差元素的符号值为-1;当第一误差向量中的第一误差元素小于等于第三阈值参数S31且大于等于第三阈值参数S32时,第一误差元素的符号值为0。
需要说明的是,以上提及的符号逻辑模块根据第一阈值参数得到某一网络层的第一输入向量中每个元素各自的二值化符号值或三值化符号值,根据第二阈值参数得到第一输出向量中每个元素各自的二值化符号值或三值化符号以及根据第三阈值参数得到第一误差向量中每个元素各自的二值化符号值或三值化符号的方法只是本公开实施例列举的一些例子,但并不局限于此,阈值参数的选取以及元素与阈值参数之间的对比关系可根据实际情况进行设置。
例如,更新逻辑模块配置为根据权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新。例如,在权重参数的符号为正(+1)的情况下,增加忆阻器单元中的忆阻器的电导值;在权重参数的符号为负(-1)的情况下,减小忆阻器单元中的忆阻器的电导值;在权重参数的符号为0的情况下,则保持忆阻器单元中的忆阻器的电导值不变。
例如,当符号逻辑模块计算得到网络层的权重矩阵中的权重更新方向为正时,则更新逻辑模块增加忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值;当符号逻辑模块计算得到网络层的权重矩阵中的权重更新方向为负时,则更新逻辑模块减小忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值;当符号逻辑模块计算得到网络层的权重矩阵中的权重更新方向为不变时,则更新逻辑模块保持忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值。
例如,处理单元控制模块配置为可以切换和调度处理单元的工作模式。例如,处理单元控制模块可以将处理单元的工作模式切换到前向计算模式,以执行推理计算任务。例如,处理单元控制模块可以将处理单元的工作模式切换到反向计算模式,以执行训练计算任务。例如,处理单元控制模快可以将处理单元的工作模式切换到映射模式,以根据计算得到的权重更新方向对忆阻器阵列中相应的忆阻器进行置位操作或复位操作,从而增加或减小忆阻器的电导值。例如,处理单元控制模块可以将处理单元的工作模式切换到读取模式,以从忆阻器阵列中读取每个忆阻器当前的电导值,所读取的电导值可以用于校验前述置位操作或复位操作是否符合要求,如果不符合,则需要再次进行置位操作或复位操作。
图2A为本公开至少一实施例提供的一种忆阻器装置的示意图,该忆阻器装置包括忆阻器(子)阵列及其外围驱动电路,该外围驱动电路用于实现本公开的输入输出模块和阵列驱动模块等。例如,如图2A所示,该忆阻器装置包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,信号获取装置配置为将数字信号通过数字模拟转换器(Digital to AnalogConverter,简称DAC)转换为多个第一模拟信号,以在进行卷积处理时输入至忆阻器阵列的多个列信号输入端。
例如,忆阻器阵列包括M条源线、M条字线和N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为1T1R结构,可以将用于傅里叶变换的参数矩阵映射于忆阻器阵列中多个的忆阻器单元。
例如,通过字线驱动电路、位线驱动电路和源线驱动电路实现对于忆阻器阵列的操作。
例如,字线驱动电路包括多个多路选择器(Multiplexer,简称Mux),用于切换字线输入电压;位线驱动电路包括多个多路选择器,用于切换位线输入电压;源线驱动电路也包括多个多路选择器(Mux),用于切换源线输入电压。例如,源线驱动电路还包括多个模拟数字转换器(Analog to Digital converter,简称ADC),用于将模拟信号转换为数字信号。此外,在源线驱动电路中的Mux和ADC之间还可以进一步设置跨阻放大器(Trans-ImpedanceAmplifier,简称TIA)(图中未示出)以完成电流到电压的转换,以便于ADC处理。
例如,忆阻器阵列包括操作模式和计算模式。当忆阻器阵列处于操作模式时,忆阻器单元处于初始化状态,可以将权重矩阵中的权重参数的数值写入忆阻器阵列中。例如,将忆阻器的源线输入电压、位线输入电压和字线输入电压通过多路选择器切换至对应的预设电压区间。
例如,通过图2A中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将字线输入电压设置为2V(伏特),例如在对忆阻器进行复位操作时,将字线输入电压设置为5V,例如,字线输入电压可以通过图2A中的电压信号V_WL[1:M]得到。
例如,通过图2A中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将源线输入电压设置为0V,例如在对忆阻器进行复位操作时,将源线输入电压设置为2V,例如,源线输入电压可以通过图2A中的电压信号V_SL[1:M]得到。
例如,通过图2A中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将位线输入电压设置为2V,例如在对忆阻器进行复位操作时,将位线输入电压设置为0V,例如,位线输入电压可以通过图2A中DAC得到。
例如,当忆阻器阵列处于计算模式(前向计算或后向计算)时,忆阻器阵列中的忆阻器处于可用于计算的导电状态,列信号输入端输入的位线输入电压不会改变忆阻器的电导值,例如,可以通过忆阻器阵列执行乘加运算完成计算。例如,通过图2A中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间,例如施加开启信号时,相应行的字线输入电压设置为5V,例如不施加开启信号时,相应行的字线输入电压设置为0V,例如接通GND信号;通过图2A中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间,例如将源线输入电压设置为0V,从而使得多个行信号输出端的电流信号可以流入数据输出电路,通过图2A中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间,例如将位线输入电压设置为0.1V-0.3V,从而利用忆阻器阵列可进行乘加运算的特性完成卷积操作。
例如,数据输出电路可以包括多个TIA、ADC,可以将多个行信号输出端的电流信号转换为电压信号,而后转换为数字信号,以用于后续处理。
图2B为本公开至少一实施例提供的另一种忆阻器装置的示意图。图2B所示的忆阻器装置与图2A所示的忆阻器装置的结构基本相同,也包括忆阻器(子)阵列及其外围驱动电路,该外围驱动电路用于实现本公开的输入输出模块。例如,如图2B所示,该忆阻器装置信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,忆阻器阵列包括M条源线、2M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为2T2R结构,将用于变换处理的参数矩阵映射于忆阻器阵列中不同的多个忆阻器单元的操作,这里不再赘述。需要说明的是,忆阻器阵列也可以包括M条源线、M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。由于——为同时将开启信号施加至忆阻器阵列的多个信号控制端,可以由每条字线同时控制每行忆阻器单元中的两个忆阻器。
关于信号获取装置、控制驱动电路以及数据输出电路的描述可以参照之前的描述,这里不再赘述。
图3为本公开至少一实施例提出的一种处理单元的计算过程的示意图。该处理单元的计算数据通路根据计算模式可以包括(a)前向数据路径和(b)反向数据路径。前向数据路径可以是执行神经网络算法的推理计算任务的路径,反向数据路径可以是执行神经网络算法的训练计算任务的路径。
例如,如图3所示,(a)前向数据路径包括前向输入模块、第一阵列驱动模块、忆阻器阵列、第二阵列驱动模块、前向输出模块和误差求解模块。当处理单元被控制处于前向计算状态时,前向推理计算任务的输入数据从前向输入模块的输入端进入前向输入模块,并被转换为前向输入信号,例如,以电压信号的形式从前向输入模块的输出端输出。第一阵列驱动模块响应于控制信号,例如Mux的控制信号等,对忆阻器阵列的对应的位线施加前向输入电压信号。忆阻器阵列完成对输入数据的矩阵乘法运算并通过对应的源线输出电流信号。第二阵列驱动模块接收作为输出信号的电流信号,并将前向输出电流信号传输到前向输出模块。前向输出模块将输出信号转换为输出数据传输到误差求解模块中。
例如,如图3所示,(b)反向数据路径包括反向输入模块、第二阵列驱动模块、忆阻器阵列、第一阵列驱动模块和反向输出模块。当处理单元被控制处于反向计算状态时,反向训练计算任务的输入数据从反向输入模块的输入端进入反向输入模块,并被转换为反向输入信号,例如,以电压信号的形式从反向输入模块的输出端输出。第二阵列驱动模块对忆阻器阵列对应的源线施加反向输入电压信号。忆阻器阵列完成对输入数据的矩阵乘法运算并通过对应的位线输出电流信号。第一阵列驱动模块接收作为输出信号的电流信号,并将其传输到反向输出模块。
在神经网络的训练计算过程中,仅考虑权重参数的更新方向能有效降低系统的运行能耗与校验写次数,而权重参数更新方向的计算结果在很大程度上取决于阈值参数的选取,因此,阈值参数的选取对训练效果有着直接的影响。图4示出了一种阈值参数的选取方法,即对于进行模数转换后得到的数字形式的信号取前n位,用于设置阈值参数并与该阈值参数进行比较以得到信号的符号值。例如,对于二进制的8位无符号数,若取n=3,阈值参数实际上设置为25=32,则取信号的第一元素的前n位数与1…1(n个)比较,即实际上将该第一元素与该阈值参数进行比较。该第一元素例如可以是第一输入元素、第一输出元素或者第一误差元素。
例如,对于本公开一实施例中的二值化符号值的选取规则,若第一元素的前3位数为111,则第一元素大于等于阈值参数,该第一元素对应的符号值为+1,若第一元素的前3位数小于111,则第一元素小于阈值参数,该第一元素对应的符号值为0。
例如,对于二进制的8位有符号数且最高位为1表示负数,若取n=4,第一阈值参数设置为24=16,第二阈值参数设置为-24=-16,则取信号的第一元素的前4位数用于实现与第一阈值参数和第二阈值参数进行比较。
例如,对于本公开一实施例中的三值化符号值的选取规则,若第一元素的前4位数为0111,则第一元素大于等于第一阈值参数16,则第一元素的符号值为+1,若第一元素的前4位数为1111,则第一元素小于等于第二阈值参数-16,则第一元素的符号值为-1,若第一元素的前4位数为除0111和1111之外的其他值,则第一元素介于第一阈值参数16和第二阈值参数-16之间,则第一元素的符号值为0。
在本公开提供的至少一个实施例中,符号逻辑模块可以采用如图4所示的阈值参数选取方法设置阈值参数,例如,符号逻辑模块可以选取不同的n值,以根据实际需要调节阈值参数的大小,例如,符号逻辑模块可以通过减小阈值参数的设定值来改变符号值的计算结果,从而提高神经网络逐层训练过程中权重矩阵的更新方向的计算精度。
在本公开提供的另一个实施例中,符号逻辑模块还可以在不改变阈值参数的设定值的情况下,通过改变第一输入向量、第一输出向量和第一误差向量中元素数值的大小来改变计算得到的每个元素的符号值。例如,当第一阈值参数、第二阈值参数或第三阈值参数为特定位宽时,符号逻辑模块可以等比例放大第一输入向量、第一输出向量和第一误差向量中每个元素的值,并将放大后的第一输入向量、第一输出向量和第一误差向量中的每个元素分别与第一阈值参数和第二阈值参数进行比较,从而分别得到第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值。在无法更改阈值参数的情况下,等比放大第一输入向量、第一输出向量和第一误差向量中每个元素的精确值,等效于减小了阈值参数的设定值,从而能够在神经网络逐层训练过程中,随着训练程度的深入不断提高权重矩阵更新方向的计算精度。
例如,放大第一误差向量中各元素的值还可以通过等比例放大输出数据的输出值与目标值来实现。
例如,图5示出了一种基于脉冲数编码的误差求解模块的具体实现方案,例如,误差求解模块包括至少一个计数单元,每个计数单元包括至少一个计数器,例如,将预先设置好的目标值加载到计数器中,该目标值用于计算最后一层网络层的误差值,例如,误差求解模块从前向输出模块接收以脉冲数编码形式的输出数据,即用脉冲个数表示输出数据的输出值大小,误差求解模块中的多个计数器对每列输出数据的脉冲个数进行计数获得输出值,并在每列预设目标值的基础上减去该输出值,从而得到最后一层网络层的多个误差值,即本公开实施例中第一误差向量中的各个元素的值。
图6为本公开至少一实施例提出的一种符号逻辑模块的示意图,该符号逻辑模块配置为对进行模数转换后得到的脉冲形式的信号取第n个周期,以用于设置第一阈值参数、第二阈值参数或第三阈值参数。例如,如图6所示,该符号逻辑模块包括至少一个触发器。例如,输入信号以脉冲数编码形式输入到符号逻辑模块中,输入脉冲的个数表示为输入信号的输入值大小,阈值参数被设置作为触发信号,以用于计算得到输入信号的符号值。例如,在第n个周期时,阈值信号以高电平形式与输入脉冲信号相与,从而得到每个输入脉冲信号的符号值。
图7为本公开至少一实施例提出的另一种符号逻辑模块的示意图,该符号逻辑模块配置为采用参考电压作为第三阈值参数。例如,如图7所示,该符号逻辑模块包括积分电路和比较电路,例如,积分电路包括至少一个积分器,配置为对对应于第一误差向量中每个元素各自的值的电流信号进行积分,例如,比较电路包括至少一个比较器,配置为将积分电路的输出电压与第三阈值参数进行比较,以得到第一误差向量中每个元素各自的符号值,例如,如图7所示,该符号逻辑电路有两个比较器,第三阈值参数的个数为两个,分别以正向参考电压和负向参考电压的形式与积分电路的输出电压进行比较,得到输出信号的三值化符号值。例如,该符号逻辑电路有一个比较器,第三阈值参数的个数为一个,以参考电压的形式与积分电路的输出电压进行比较,得到输出信号的二值化符号值。
例如,该符号逻辑模块可以用于反向训练计算任务中最终一层的网络层,即在不需要计算得到最终一层网络层的第一误差向量的精确值的情况下,直接获得第一误差向量中各个元素的符号值,从而能够有效地简化电路并节省系统功耗。
值得一提的是,图7所示的符号逻辑模块中的阈值参数的大小也是可以调节的,例如,可以通过调节参考电压的大小改变第一阈值参数或第二阈值参数。
本公开至少一实施例中符号逻辑模块计算得到的第一输入向量、第一输出向量和第一误差向量的符号值,三者之一的元素符号值必须是三值化符号值,从而保证根据三者的元素符号值计算得到权重矩阵中各权重参数的更新方向是有正负之分的。
例如,符号逻辑模块中设置的第一阈值参数、第二阈值参数和第三阈值参数三者之一的个数为两个,以使得得到的第一输入向量、第一输出向量或第一误差向量之一的元素值为三值化符号值。例如,在图7所示的电路中,在计算第一误差向量中各元素的符号值时仅选用一个比较器,设置一个参考电压作为第一阈值参数,以使得到的第一误差向量的符号值为二值化符号,在计算第一输入向量和第一输出向量中各元素的符号值时选用两个比较器,设置两个参考电压作为第二阈值参数和第三阈值参数,以使得到的第一输入向量和第一输出向量各元素的符号值为三值化符号,符号逻辑模块根据第一误差向量中各元素的二值化符号值与第一输入向量和第一输出向量中各元素的三值化符号值计算得到权重矩阵中各权重参数的符号值,并由符号更新逻辑模块对忆阻器的电导值进行相应的更新。
本公开至少一实施例提供一种计算芯片,包括以上任一实施例中的处理单元。如图8所示,在本公开的至少一个实施例中,计算芯片包含一个或多个处理单元模组(简称PE模组),每个PE模组包括一个或多个忆阻器处理单元,各处理单元通过处理单元控制单元的控制可以彼此交互、协同配合。不同PE模组之间的通信实现方式多种多样;一种是基于片上路由(包括若干路由节点)机制,例如可以是开关阵列方式,也可以是片上网络方式等;另一种是基于总线(例如AXI总线等)机制实现PE模组间的点对点通信,每个PE模组既可以是主单元,又可以是从单元,不同PE模组具有不同的接口地址。
在实践中,一个人工神经网络的一个或多个网络层可以部署到一个或多个PE模组上,例如,图9为本公开至少一实施例提出的一种计算芯片的计算过程的示意图。
如图9所示,在前向过程中依次完成各个PE模组的前向推理计算过程,在反向过程中再以与前向过程相反的顺序依次完成各个PE模组的反向训练计算过程,并在各个PE模组内完成权重矩阵的权重更新。
对于其中的每个处理单元,本公开至少一个实施例的操作方法包括:将用于神经网络的网络层的权重矩阵映射到忆阻器阵列中;通过输入模块,接收输入数据并将输入数据转换为输入信号以输入到忆阻器阵列中;通过输出模块,接收忆阻器阵列对输入信号进行计算处理后得到的输出信号,并将输出信号转换为输出数据;通过误差求解模块,根据输出数据得到网络层的第一误差向量;通过符号逻辑模块,得到第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,并根据第一输入向量、第一输出向量和第一误差向量中每个元素各自的符号值,确定权重矩阵中各个权重参数的更新方向;通过更新逻辑模块,根据权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新。具体可以参见上面的描述,这里不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种处理单元,包括:
忆阻器阵列,配置为被映射为用于神经网络的网络层的权重矩阵;
输入模块,配置为接收输入数据并将所述输入数据转换为输入信号以输入到所述忆阻器阵列中;
输出模块,配置为接收所述忆阻器阵列对所述输入信号进行计算处理后得到的输出信号,并将所述输出信号转换为输出数据;
误差求解模块,配置为根据所述输出数据得到所述网络层的第一误差向量;
符号逻辑模块,配置为,基于从所述神经网络的前向计算过程中获得的对应所述网络层的忆阻器阵列的第一输入向量和第一输出向量,以及从所述误差求解模块获得的与所述网络层相邻的后一层网络层的所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值,以根据所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值确定所述权重矩阵中每个权重参数的更新方向;以及
更新逻辑模块,配置为根据所述权重矩阵中所述各个权重参数的更新方向对所述忆阻器阵列中与所述各个权重参数对应的各个忆阻器的电导值进行更新。
2.根据权利要求1所述的处理单元,还包括:
阵列驱动模块,配置为响应控制信号,对所述忆阻器阵列施加作为所述输入信号的电压信号,或从所述忆阻器阵列接收作为所述输出信号的电流信号;以及
处理单元模块,配置为切换和调度所述处理单元的工作模式。
3.根据权利要求2所述的处理单元,其中,
所述输入模块包括:
第一输入模块,配置为根据前向计算任务的第一输入数据生成第一输入信号,并将所述第一输入信号输入到所述忆阻器阵列中,以及
第二输入模块,配置为根据反向计算任务的第二输入数据生成第二输入信号,并将所述第二输入信号输入到所述忆阻器阵列中,其中,所述输入数据包括所述第一输入数据和所述第二输入数据,所述输入信号包括所述第一输入信号和所述第二输入信号;
所述输出模块包括:
第一输出模块,配置为接收所述忆阻器阵列对所述第一输入信号进行前向计算处理后得到的第一输出信号,并根据所述第一输出信号产生第一输出数据,以及
第二输出模块,配置为接收所述忆阻器阵列对所述第二输入信号进行反向计算处理后得到的第二输出信号,并根据所述第二输出信号产生第二输出数据,其中,所述输出数据包括所述第一输出数据和所述第二输出数据,所述输出信号包括所述第一输出信号和所述第二输出信号。
4.根据权利要求2所述的处理单元,其中,所述阵列驱动模块包括:
第一阵列驱动模块,配置为在前向计算状态时,接收对应于所述第一输入信号的第一输入电压信号,并将所述第一输入电压信号施加到所述忆阻器阵列,以及
第二阵列驱动模块,配置为在反向计算状态时,接收对应于所述第二输入信号的第二输入电压信号,并将所述第二输入电压信号施加到所述对忆阻器阵列。
5.根据权利要求1所述的处理单元,其中,所述符号逻辑模块还配置为,根据一个第一阈值参数得到所述第一输入向量中每个元素各自的二值化符号值;或者,根据两个第一阈值参数得到所述第一输入向量中每个元素各自的三值化符号值;
所述符号逻辑模块还配置为,根据一个第二阈值参数得到所述第一输出向量中每个元素各自的二值化符号值;或者,根据两个第二阈值参数得到所述第一输出向量中每个元素各自的三值化符号值;以及
所述符号逻辑模块还配置为,根据一个第三阈值参数得到所述第一误差向量中每个元素各自的二值化符号值;或者,根据两个第三阈值参数得到所述第一误差向量中每个元素各自的三值化符号值。
6.根据权利要求5所述的处理单元,其中,所述符号逻辑模块还配置为,对进行模数转换后得到的数字形式的信号取前n位,以用于设置所述第一阈值参数、所述第二阈值参数或所述第三阈值参数,n为正整数。
7.根据权利要求5所述的处理单元,其中,当所述第一阈值参数、所述第二阈值参数和所述第三阈值参数为固定值时,所述符号逻辑模块还配置为,放大所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素的值,并根据所述第一阈值参数、所述第二阈值参数和所述第三阈值参数与放大后的所述第一输入向量、所述第一输出向量和所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值。
8.根据权利要求5所述的处理单元,其中,所述符号逻辑模块还配置为,对进行模数转换后得到的脉冲形式的信号取第n个周期,以用于设置所述第一阈值参数、所述第二阈值参数或所述第三阈值参数,n为正整数。
9.根据权利要求5所述的处理单元,其中,所述符号逻辑模块还配置为,采用参考电压作为所述第三阈值参数,并且包括:
积分电路,配置为对对应于所述第一误差向量中每个元素各自的值的电流信号进行积分;以及
比较电路,配置为将积分电路的输出电压与所述第三阈值参数进行比较,以得到所述第一误差向量中每个元素各自的符号值。
10.根据权利要求5所述的处理单元,其中,所述第一阈值参数、所述第二阈值参数和所述第三阈值参数中至少一个阈值参数的个数为两个,以使得得到的所述第一输入向量、所述第一输出向量和所述第一误差向量中的至少一个为三值化符号值。
11.根据权利要求1所述的处理单元,其中,对于根据所述权重矩阵中各个权重参数的更新方向对忆阻器阵列中与各个权重参数对应的各个忆阻器的电导值进行更新的情形,所述更新逻辑模块配置为:
在所述权重参数的符号为正的情况下,增加忆阻器的电导值,或者
在所述权重参数的符号为负的情况下,减小忆阻器的电导值。
12.一种计算芯片,包括至少一个根据权利要求1-11任一所述的处理单元。
13.一种根据权利要求1-11任一所述的处理单元的操作方法,包括:
将用于所述神经网络的网络层的权重矩阵映射到所述忆阻器阵列中;
通过所述输入模块,接收所述输入数据并将所述输入数据转换为输入信号以输入到所述忆阻器阵列中;
通过所述输出模块,接收所述忆阻器阵列对所述输入信号进行计算处理后得到的输出信号,并将所述输出信号转换为输出数据;
通过所述误差求解模块,根据所述输出数据得到所述网络层的第一误差向量;
通过所述符号逻辑模块,基于从所述神经网络的前向计算过程中获得的对应所述网络层的忆阻器阵列的第一输入向量和第一输出向量,以及从所述误差求解模块获得的与所述网络层相邻的后一层网络层的所述第一误差向量,分别得到所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值,以根据所述第一输入向量、所述第一输出向量和所述第一误差向量中每个元素各自的符号值确定所述权重矩阵中各个权重参数的更新方向;
通过所述更新逻辑模块,根据所述权重矩阵中所述各个权重参数的更新方向对所述忆阻器阵列中与所述各个权重参数对应的各个忆阻器的电导值进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210624818.5A CN114861902A (zh) | 2022-06-02 | 2022-06-02 | 处理单元及其操作方法、计算芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210624818.5A CN114861902A (zh) | 2022-06-02 | 2022-06-02 | 处理单元及其操作方法、计算芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114861902A true CN114861902A (zh) | 2022-08-05 |
Family
ID=82625329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210624818.5A Pending CN114861902A (zh) | 2022-06-02 | 2022-06-02 | 处理单元及其操作方法、计算芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114861902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081373A (zh) * | 2022-08-22 | 2022-09-20 | 统信软件技术有限公司 | 忆阻器的仿真方法、装置、计算设备及可读存储介质 |
-
2022
- 2022-06-02 CN CN202210624818.5A patent/CN114861902A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081373A (zh) * | 2022-08-22 | 2022-09-20 | 统信软件技术有限公司 | 忆阻器的仿真方法、装置、计算设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183739B (zh) | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 | |
US11663457B2 (en) | Neural network circuits having non-volatile synapse arrays | |
US20190122105A1 (en) | Training of artificial neural networks | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
WO2018228424A1 (zh) | 一种神经网络训练方法和装置 | |
CN110807519B (zh) | 基于忆阻器的神经网络的并行加速方法及处理器、装置 | |
JPH03250244A (ja) | 情報処理装置 | |
CN114614865A (zh) | 基于忆阻器阵列的预编码装置和信号处理方法 | |
US20190122102A1 (en) | Memory configuration for implementing a neural network | |
WO2023217027A1 (zh) | 利用基于忆阻器阵列的环境模型的策略优化方法和装置 | |
CN114400031B (zh) | 一种补码映射的rram存算一体芯片及电子设备 | |
CN110991624A (zh) | 一种变脉宽输入电荷积累型忆阻神经网络电路 | |
CN114861902A (zh) | 处理单元及其操作方法、计算芯片 | |
CN115376581A (zh) | 一种基于忆阻器的存内计算阵列结构 | |
Chen | PUFFIN: an efficient DNN training accelerator for direct feedback alignment in FeFET | |
Haensch | Analog computing for deep learning: Algorithms, materials & architectures | |
CN117669676A (zh) | 一种基于忆阻器的感知神经元电路及应用 | |
Yeo et al. | A power and area efficient CMOS stochastic neuron for neural networks employing resistive crossbar array | |
CN115796252A (zh) | 权重写入方法及装置、电子设备和存储介质 | |
US20230113627A1 (en) | Electronic device and method of operating the same | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
CN112734022B (zh) | 一种具有识别和排序功能的四字符忆阻神经网络电路 | |
de Lima et al. | Quantization-aware in-situ training for reliable and accurate edge ai | |
CN114861900A (zh) | 用于忆阻器阵列的权重更新方法和处理单元 | |
Narayanan et al. | Neuromorphic technologies for next-generation cognitive computing |
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 |