CN117236391A - 利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 - Google Patents
利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 Download PDFInfo
- Publication number
- CN117236391A CN117236391A CN202311175404.XA CN202311175404A CN117236391A CN 117236391 A CN117236391 A CN 117236391A CN 202311175404 A CN202311175404 A CN 202311175404A CN 117236391 A CN117236391 A CN 117236391A
- Authority
- CN
- China
- Prior art keywords
- calculation
- array
- equivalent
- standard deviation
- input
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 89
- 238000013531 bayesian neural network Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000003860 storage Methods 0.000 title claims description 14
- 238000011065 in-situ storage Methods 0.000 claims abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013528 artificial neural network Methods 0.000 abstract description 3
- 238000003491 array Methods 0.000 description 7
- 241000764238 Isis Species 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于神经网络技术领域。具体为一种利用MRAM实现基于随机计算的贝叶斯神经网络存算一体方法,本方法适用于随机计算域的贝叶斯神经网络,利用MRAM的二值特性,将权重数据预先存储在MRAM中,利用三极管作为电路的开关信号,表示数据的输入,采用PCSA作为信号读取方式,得出计算结果。本发明利用非易失性存储器件MRAM,来设计存算一体架构,实现数据在原位的存储和计算。相对于CMOS技术,能够大幅降级计算功耗,缓解“存储墙”的问题。
Description
技术领域
本发明涉及神经网络技术领域,具体涉及利用非易失性存储器MRAM搭建的存内计算架构,适用于随机计算域的贝叶斯神经网络的存算一体方法。
背景技术
如今人工智能等高运算处理环境需要处理的数据量越来越多,而存储器的数据搬运慢、搬运能耗大,缓存的大小和密度都很难提升,因此存储器和处理器之间的差距越来越大,导致算力不能充分发挥。传统冯诺依曼架构用的是CMOS技术,该架构下的“存储墙”问题不断凸显,限制了技术的发展。并且目前已经有不同的技术方案,来尝试解决“存储墙”的问题。包括1)继续优化存储器和处理器的性能;2)近存计算,使存储器和处理器距离更近,减少数据搬运的消耗;3)存内计算,利用器件的性质,让数据的存储和计算可以在原位同时进行,直接避免数据的搬运。
当前新型的主要是用非易失性存储器来构建存内计算架构,常见的有RRAM,PCM,FeFET and MRAM等。这些目前都已有一些存内计算架构的成果。这些器件有各自的特性,适用于不同的应用场景。
而对于贝叶斯神经网络来说,相较于传统深度神经网络具有更多的参数量,需要进行更多次的计算,因此贝叶斯神经网络的“存储墙”问题会更严重。
发明内容
为解决上述技术问题,本发明提供了一种利用MRAM实现基于随机计算的贝叶斯神经网络存算一体方法,基于贝叶斯神经网络的随机计算特征等需求。选择采用MRAM,以缓解传统冯诺依曼架构的“存储墙”问题并大幅降级整体功耗。
为实现上述目的,本发明完整的技术方案包括:
一种利用MRAM实现基于随机计算的贝叶斯神经网络存算一体方法,所述方法适用于随机计算域的贝叶斯神经网络,利用非易失性存储器件MRAM设计存算一体架构,实现数据在原位的存储和计算;
所述存算一体架构包括等效均值μ′计算阵列和等效标准差σ′计算阵列,所述等效均值μ′计算阵列和等效标准差σ′计算阵列预存有贝叶斯神经网络的权重数据,
所述等效均值μ′计算阵列和等效标准差σ′计算阵列利用三极管作为电路的开关信号,表示数据的输入,采用预充电感知放大器(PCSA)作为信号读取方式,得出计算结果。
所述等效均值μ′计算阵列的每一行均单独通过行字线(RWL)与行控制器连接,所述的行控制器包括与等效均值μ′计算阵列的每一行单独连接的多个三极管,所述三极管作为电路的开关信号,完成输入数据xj的输入;
所述等效标准差σ′计算阵列的每一行均单独通过行字线(RWL)与行控制器连接,所述的行控制器包括与等效标准差σ′计算阵列的每一行单独连接的多个三极管,所述三极管作为电路的开关信号,完成输入数据xj的输入;所述等效标准差σ′计算阵列的每一列均单独通过列字线(CWL)将实时高斯随机数发生器与列控制器连接,所述的列控制器包括与等效标准差σ′计算阵列的每一行单独连接的多个三极管,所述三极管作为电路的开关信号,完成高斯随机数的输入。
进一步的,所述等效均值μ′计算阵列和等效标准差σ′计算阵列的每一列均单独连接有一个PCSA,采用PCSA作为信号读取器件,得出计算结果。
进一步的,在等效均值μ′计算阵列和等效标准差σ′计算阵列的计算过程中,不涉及MRAM的翻转,只有高阻或低阻两种状态,用来分别表示0和1,同时MRAM不存在中间态。
进一步的,所述贝叶斯神经网络的输入数据作为控制信号不用预先存储,为实时输入并实时得出计算结果;
在等效均值μ′计算阵列中,每次输入只有1根RWL有数据输入,其他都处于断开状态;
在等效标准差σ′计算阵列中,每次输入过程中,只有1根RWL有数据输入,其他RWL都处于断开状态,且所有CWL均与等效标准差σ′计算阵列保持导通并输入高斯随机数。
进一步的,所述PCSA作为信号读取的器件,读取出来的高/低电平直接表述计算结果为1或0。
进一步的,所述存算一体架构还包括数据选择器MUX,用以实现加法计算,
进一步的,所述存算一体架构还包括计数器Counter,用以计算随机比特流代表的具体值。
本发明与现有技术相比的有益效果为:
1.采用存算一体的方式,显著缓解了“存储墙”的问题。
2.MRAM的功耗低,占用面积小,相对于CMOS技术,能够大幅降级计算功耗。
3.器件有两种状态,分别代表0/1,可以通过注入电流来实现翻转,以完成数据的预存储,在运算阶段不涉及MRAM器件的翻转。
4.目前的存内计算方案都是在模拟域中进行,通过累积阵列中的电压/电流值,经过放大器,再进行模/数转化,从而得到最后的计算值。而本发明的阵列在数字域中而非在模拟域中计算,无需复杂的数/模和模/数转换器,外围电路简单,电路可靠性强。
附图说明
图1为基于随机计算的贝叶斯神经网络存内计算架构。
图2为两个计算阵列的基本单元示意,其中图2(a)为等效均值计算阵列基本单元,图2(b)为等效标准差计算阵列基本单元。
图3为两个计算阵列示意,其中图3(a)为等效均值计算阵列,(b)为等效标准差计算阵列。
具体实施方式
下面结合本发明的附图,对本发明的技术方案进行进一步的详细说明,显然,所描述的实施例仅作为例示,并非用于限制本次申请。
在贝叶斯神经网络中,权重符合概率分布,一般为高斯分布,通常用均值μ和标准差σ来表征。在贝叶斯神经网络的推理过程中,输出向量y中的每一个元素,其计算公式如下:
其中,yi为贝叶斯神经网络的输出,wij为权重,xj为输入,σij为标准差,μij为均值,uij为符合标准正态分布的随机数,即u~N(0,1)。在随机计算域中,公式可以等效成如下形式:
在单级编码的模式下,hij代表随机比特流的值这样,随机计算域的贝叶斯神经网络计算就可以通过分别计算hijxjσ′ij,μ′ijxj两个部分来得到,其中μ′为等效均值,σ′为等效标准差。
图1显示了基于随机计算的贝叶斯神经网络存内计算架构。它包含了高斯随机数发生器(GRNG,用于产生hij,等效均值μ′和等效标准差σ′两个计算阵列(分别实现μ′ijxj,hijxjσ′ij两个部分的计算),PCSA阵列(预充电感知放大器,读出相应阵列的乘法结果),MUX(数据选择器,实现加法计算)和Counter(计数器,计算随机比特流代表的具体值)。其中最核心的就是等效均值μ′和等效标准差σ′两个计算阵列,也是本发明的核心。
本发明涉及了两个不同的计算阵列,来分别实现μ′ijxj,hijxjσ′ij的计算。其中μ′ijxj的基本计算单元如图2(a)所示。hijxjσ′ij的基本计算单元如图2(b)所示。
在整个计算过程中,数据被预先转换成随机比特流,其中,权重参数μ′ij和σ′ij被直接存储在MRAM中。输入数据xh作为控制信号(RWL,即行字线),控制三极管的通断。当输入数据为1时,RWL处给高电平,使得三极管导通;当输入数据为0时,RWL处给低电平,使得三极管断开。高斯随机数hij也用作控制信号(CWL,即列字线),当hij为1时,CWL处给高电平,三极管导通;当hij为0时,CWL处给低电平,三极管断开。
具体工作流程如下:
如图2(a)所示,假设输入数据x为2位比特长度的比特流(每一位是0或者1)。首先将所有三极管都断开,然后在第一行(RWL1)输入x的第一位数据,PCSA直接读出所测电路的结果,PCSA输出高电平代表1,低电平代表0,PCSA测出的值就是的计算值。计算方法如下:
PCSA的读取原理为,将两端连接的等效电阻值Req与它的内部参考电阻值Rref进行比较,如果Req大于Rref,那么PCSA就输出低电平(相当于0),如果Req小于Rref,那么PCSA就输出高电平(相当于1)。
然后断开RWL1的三极管,在第二行(RWL2)输入x的第二位数据,PCSA作为感测放大器直接读出所测电路的结果,PCSA测出的值就是的计算值。
图2(a)是最小计算单元,贝叶斯神经网络的计算架构的整个阵列可以表现为图3(a)。
对于图2(b)来说,同样假设x为2位比特长度的比特流,首先将所有三极管都断开,然后在第一行(RWL1)输入x的第一位数据,同时在CWL上输入hi1的第一位数据(所有列同时输入由不用的GRNG实时产生的不同数据),PCSA测出的值就是的计算值。然后断开RWL1的三极管,在第二行(RWL2)输入x的第二位数据,同时在CWL上继续输入hi1的第二位数据,PCSA测出的值就是/>的计算值。图2(b)是最小计算单元,贝叶斯神经网络的计算架构的整个阵列可以表现为图3(b)。
计算阵列中每一列代表对应不同的输出向量yi,列与列之间共享输入x,但彼此互不影响。
因此,利用MRAM和阵列的性质,就可以把μ′ijxj,hijxjσ′ij中的乘法运算,简化成利用PCSA对电路的读取运算。
此外,本发明中数据标号中,代表hij的第一位,假设随机计算域下,比特流长度是32位,那么/>这一串32位的0/1比特流所代表的具体数值,就是hij的值。i代表的是输出数据的个数(y的个数),j代表的是输入数据的个数(x的个数)。
以上申请的仅为本申请的一些实施方式。对于本领域的普通技术人员来说,在不脱离本申请创造构思的前提下,还可以做出若干变型和改进,这些都属于本申请的保护范围。
Claims (7)
1.一种利用MRAM实现基于随机计算的贝叶斯神经网络存算一体方法,其特征在于,所述方法适用于随机计算域的贝叶斯神经网络,利用非易失性存储器件MRAM设计存算一体架构,实现数据在原位的存储和计算;
所述存算一体架构包括等效均值μ′计算阵列和等效标准差σ′计算阵列,所述等效均值μ′计算阵列和等效标准差σ′计算阵列预存有贝叶斯神经网络的权重数据,
所述等效均值μ′计算阵列和等效标准差σ′计算阵列利用三极管作为电路的开关信号,表示数据的输入,采用预充电感知放大器(PCSA)作为信号读取方式,得出计算结果。
所述等效均值μ′计算阵列的每一行均单独通过行字线(RWL)与行控制器连接,所述的行控制器包括与等效均值μ′计算阵列的每一行单独连接的多个三极管,所述三极管作为电路的开关信号,完成输入数据xj的输入;
所述等效标准差σ′计算阵列的每一行均单独通过行字线(RWL)与行控制器连接,所述的行控制器包括与等效标准差σ′计算阵列的每一行单独连接的多个三极管,所述三极管作为电路的开关信号,完成输入数据xj的输入;所述等效标准差σ′计算阵列的每一列均单独通过列字线(CWL)将实时高斯随机数发生器与列控制器连接,所述的列控制器包括与等效标准差σ′计算阵列的每一列单独连接的多个三极管,所述三极管作为电路的开关信号,完成高斯随机数的输入。
2.根据权利要求1所述的存算一体方法,其特征在于,所述等效均值μ′计算阵列和等效标准差σ′计算阵列的每一列均单独连接有一个PCSA,采用PCSA作为信号读取器件,得出计算结果。
3.根据权利要求2所述的存算一体方法,其特征在于,在等效均值μ′计算阵列和等效标准差σ′计算阵列的计算过程中,不涉及MRAM的翻转,只有高阻或低阻两种状态,用来分别表示0和1,同时MRAM不存在中间态。
4.根据权利要求2所述的存算一体方法,其特征在于,所述贝叶斯神经网络的输入数据作为控制信号不用预先存储,为实时输入并实时得出计算结果;
在等效均值μ′计算阵列中,每次输入只有1根RWL有数据输入,其他都处于断开状态;
在等效标准差σ′计算阵列中,每次输入过程中,只有1根RWL有数据输入,其他RWL都处于断开状态,且所有CWL均与等效标准差σ′计算阵列保持导通并输入高斯随机数。
5.根据权利要求4所述的存算一体方法,其特征在于,所述PCSA作为信号读取的器件,读取出来的高/低电平直接表述计算结果为1或0。
6.根据权利要求5所述的存算一体方法,其特征在于,所述存算一体架构还包括数据选择器MUX,用以实现加法计算。
7.根据权利要求6所述的存算一体方法,其特征在于,所述存算一体架构还包括计数器Counter,用以计算随机比特流代表的具体值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175404.XA CN117236391A (zh) | 2023-09-13 | 2023-09-13 | 利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311175404.XA CN117236391A (zh) | 2023-09-13 | 2023-09-13 | 利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117236391A true CN117236391A (zh) | 2023-12-15 |
Family
ID=89094104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311175404.XA Pending CN117236391A (zh) | 2023-09-13 | 2023-09-13 | 利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117236391A (zh) |
-
2023
- 2023-09-13 CN CN202311175404.XA patent/CN117236391A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151439B2 (en) | Computing in-memory system and method based on skyrmion racetrack memory | |
EP3671748A1 (en) | In-memory computing for machine learning | |
CN111478703B (zh) | 基于忆阻交叉阵列的处理电路及输出电流的补偿方法 | |
CN113688984B (zh) | 一种基于磁性随机存储器的存内二值化神经网络计算电路 | |
CN113936717B (zh) | 一种复用权重的存算一体电路 | |
CN117636945B (zh) | 5bit带符号位的同或与同或累加运算电路、CIM电路 | |
He et al. | Accelerating low bit-width deep convolution neural network in MRAM | |
CN112182495B (zh) | 一种基于忆阻器的二元域矩阵运算电路 | |
CN111193511A (zh) | 一种应用于基于eFlash存算一体电路的数模混合读取电路的设计 | |
WO2021038228A1 (en) | Refactoring mac operations | |
CN115390789A (zh) | 基于磁隧道结计算单元的模拟域全精度存内计算电路及方法 | |
CN114822638A (zh) | 计算器件以及计算方法 | |
CN114937470B (zh) | 基于多比特sram单元的定点全精度存内计算电路 | |
CN112989273A (zh) | 一种利用补码编码进行存内运算的方法 | |
Yang et al. | Essence: Exploiting structured stochastic gradient pruning for endurance-aware reram-based in-memory training systems | |
CN118034644A (zh) | 一种基于eDRAM的高密度高可靠性存内计算电路 | |
CN108154226B (zh) | 一种使用模拟计算的神经网络芯片 | |
CN115879530B (zh) | 一种面向rram存内计算系统阵列结构优化的方法 | |
CN110085270B (zh) | 存储运算电路模块及处理器 | |
CN116860696A (zh) | 一种基于非易失性存储器的存内计算电路 | |
CN117236391A (zh) | 利用mram实现基于随机计算的贝叶斯神经网络存算一体方法 | |
CN114093394B (zh) | 一种可转置存内计算电路及其实现方法 | |
CN113553028B (zh) | 基于概率比特电路的问题求解优化方法及系统 | |
Zhang et al. | On-Device Continual Learning With STT-Assisted-SOT MRAM Based In-Memory Computing | |
US20230161557A1 (en) | Compute-in-memory devices and methods of operating the same |
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 |