CN109716363B - 用于硬件神经形态内核中的突触权重的高效存储的混合压缩方案 - Google Patents
用于硬件神经形态内核中的突触权重的高效存储的混合压缩方案 Download PDFInfo
- Publication number
- CN109716363B CN109716363B CN201780056555.XA CN201780056555A CN109716363B CN 109716363 B CN109716363 B CN 109716363B CN 201780056555 A CN201780056555 A CN 201780056555A CN 109716363 B CN109716363 B CN 109716363B
- Authority
- CN
- China
- Prior art keywords
- memory
- weight
- synaptic weights
- prefix
- synaptic
- 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.)
- Active
Links
- 230000000946 synaptic effect Effects 0.000 title claims abstract description 130
- 230000006835 compression Effects 0.000 title claims abstract description 87
- 238000007906 compression Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 29
- 210000002569 neuron Anatomy 0.000 description 18
- 210000005215 presynaptic neuron Anatomy 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006993 memory improvement Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/04—Architecture, e.g. interconnection topology
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/08—Learning methods
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
系统、设备和方法可以提供一种在神经形态内核中存储突触权重的混合压缩方案。该混合压缩方案利用了运行长度编码(RLE)压缩方式、基于字典的编码压缩方案和无压缩编码方案来在突触权重存储器中存储针对有效突触连接的权重。
Description
相关申请的交叉引用
本申请要求享有2016年12月6日提交的美国非临时专利申请No.15/370,542的优先权,该美国非临时专利申请要求享有2016年10月14日提交的美国临时专利申请No.62/408,534的优先权。
技术领域
实施例总体上涉及用于在神经形态内核中存储突触权重的混合压缩方案。
背景技术
具有脉冲神经网络的神经形态机器或硬件在处理真实世界刺激时(例如在图像识别系统和语音识别系统中)可能已经表现出高水平的能量效率。神经形态系统是生物神经系统的电子实例化,其模拟了真实神经网络的行为和结构方面。神经形态系统的三个主要部件是神经元(代表处理器)、突触(两个神经元之间的连接)和学习规则。神经元具有多个突触,突触在神经元之间传递信号。神经形态系统中的学习可以通过调整神经元之间的突触强度(或突触权重)来实现。
神经形态硬件可以典型地由需要大存储容量的多个神经元-突触内核构成。在神经形态内核中,可以使用突触存储器来存储用于突触连接的多位权重,并且因而需要大的存储容量。因此,在必须要在存储容量有限的架构中存储突触的权重时,出现挑战。
附图说明
通过阅读以下说明书和所附权利要求并参考以下附图,本发明的实施例的各种优点将对本领域的技术人员变得显而易见,在附图中:
图1是根据实施例的神经形态内核的图示;
图2是根据实施例的压缩方案的图示;
图3是根据实施例的神经形态设备的图示;
图4示出了根据实施例的存储突触权重的混合压缩方法的流程图;
图5A-5D示出了现有技术压缩方式与示例性实施例的混合压缩方案的对比;
图6示出了现有技术压缩方式与示例性实施例的混合压缩方案的对比的另一示例;
图7是根据实施例的计算系统的示例的方框图;以及
图8是根据实施例的启用压缩的存储器设备的示例的方框图。
具体实施方式
现在转向图1,其示出了神经形态内核10。神经形态内核10可以包括指针表12(例如,存储于存储器中)、处理器14、路由表16和权重表18(例如,存储于存储器中)。指针表12可以包含针对每个内核输入的指针,以指示其在权重表18中的起始位置。具体而言,指针表12可以存储权重表18中的对应于针对给定突触前神经元的扇出权重的地址范围。路由表16可以存储新产生的突触尖峰的目的地地址。
现在转向图2,示出了突触储存器的神经形态硬件组织20。神经形态硬件组织20包括源地址(或地址事件表示/AER)22、指针存储器24、突触权重存储器28和字典存储器30。指针存储器24可以包括对应于权重存储器28中的突触前神经元32、34的突触权重的起始地址的条目26。指针存储器24还可以包括被添加到每个个体地址条目26的位标识符24a、24b、24c,以指示用于每个突触前神经元32、34的压缩方案类型。
图2中的实施例示出了使用混合压缩方案压缩突触权重存储器的有效方式,该方案包括运行长度编码(RLE)压缩方案和字典编码压缩方案。突触前神经元32包括扇出权重。如图2所示,第一扇出权重可以具有数值权重或非零权重“w0”。可以通过在非零权重“w0”紧前方提供一个位“1”而将非零权重“w0”存储于权重存储器中。“1”指示紧接在该单个位“1”之后的条目是非零权重。
接下来的扇出权重“w1”也可以具有非零值。因此,“w1”紧前方的单个位是“1”,指示扇出权重“w1”具有非零值。
如果后续的一组突触连接具有一串零权重,这可以由“0”标识,以指示接下来的一组突触连接具有零权重值。此外,串中的零的数量可以被定义为“zl0”,指示串中的零的长度或数量,其中“z”是串中的零的数量。
可以在组位宽内表示零的长度。因此,如果连续的一组零不能拟合到组位宽中,可以将该组零分成单独的组,例如“zl0”和“zl1”。因此,利用零的轮次(zl0和zl1)存储非零值(w0、w1和w3)。
此外,在指针存储器24中,位标识符“0”(24a)标识将在突触前神经元32上执行RLE压缩方案。
用于压缩突触权重存储器28的第二种技术确定处于彼此的预定权重值内的经常出现的非零突触权重或具有大体上相似的权重的非零突触权重。在该情况下,值彼此接近的权重被当作相同或单个权重处理,而不会导致系统劣化,例如损失识别准确度。将值彼此接近的权重(WT)的这些组放在字典30中。字典30可以是查找表(LUT),但不限于此。
权重存储器28中的指针(例如,“ptr0”)可以指向字典30中的存储了值彼此接近的权重(WT)的组的位置38。由于这些权重未存储在权重存储器28中,所以减少了用于在权重存储器28中存储信息的位的数量,从而使得权重存储器28的尺寸更紧凑。指针存储器24中的位标识符“1”指示将在突触前神经元32、34上执行字典编码压缩。
指针存储器24中的位标识符“2”(24c)指示不压缩(或无压缩)方案。无压缩方案可以基于在指针存储器中检测到位标识符“2”而存储非零突触权重。可以在特定神经元扇出到所有其它神经元(例如,一个神经元到其它神经元的全局或公共连接)的情况下利用无压缩方案。针对这些类型神经元的扇出权重可以被连续存储,而没有指示权重为零或非零的附加位。
现在转向图3,其示出了根据实施例的神经形态设备50。在例示的示例中,分析N个神经元之间的突触连接的权重,并将权重映射到权重存储器28(图2)上。设备50包括权重压缩器52,权重压缩器52基于多个前缀位中的第一前缀位(例如,24a,图2)对权重存储器28(图2)中存储的突触权重执行RLE压缩。如前所述,诸如“0”的前缀位指示突触前神经元包括数值权重和非零值权重,并且因而应当对突触前神经元执行RLE压缩。然后对突触前神经元执行RLE压缩,如前所述。
如果基于多个前缀位中的诸如“1”的第二前缀位(24b,图2)确定特定突触权重在彼此的预定权重值内,则通信耦合到权重压缩器52的编码器54可以基于多个前缀位中的前缀位(例如,“1”)进行对处于彼此的预定权重值内的经常出现的突触权重的基于字典的编码。
另一方面,如果确定执行对突触前神经元的压缩不会有任何益处,或者如果在RLE压缩期间确定正在处理具有非零权重的公共神经元,则存储接口56进行非零突触权重的无压缩存储,而没有开销或指示权重为零或非零的附加位。
图4示出了根据实施例的压缩突触权重存储器中的突触权重的方法60。方法60一般可以在如本文所述的启用压缩的存储器设备中实施。更具体而言,方法60可以在一个或多个模块中被实施为机器可读或计算机可读存储介质中、可配置逻辑中、使用电路技术的固定功能逻辑硬件中存储的一组逻辑指令,所述存储介质例如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等,所述可配置逻辑例如是可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),所述电路技术例如是专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术、或其任何组合。
例如,可以采用一种或多种编程语言的任何组合来编写用于执行方法60中所示操作的计算机程序代码,包括诸如JAVA、SMALLTALK、C++等面向对象的编程语言、以及诸如“C”编程语言或类似编程语言的常规流程式编程语言。此外,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、对电子电路和/或硬件固有的其它结构部件(例如,主机处理器、中央处理单元/CPU、微控制器等)进行个性化的状态信息。
图示的处理方框62可以基于多个前缀位中的第一前缀位对权重存储器28(图2)中存储的一组突触权重执行RLE压缩。在将突触权重映射到权重存储器28(图2)上时,确定该组突触权重中的哪些突触权重具有零值,以及该组突触权重中的哪些突触权重具有非零值。如果确定突触前神经元的突触权重具有零值和非零值,可以对突触前神经元执行RLE压缩方案。
如处理框64中所示,如果基于多个前缀位中的第二前缀位确定特定的经常出现的突触权重处于彼此的预定权重值内,可以对经常出现的突触位执行基于字典的编码。在该情况下,将值彼此接近的突触权重视为相同的权重或单个权重。将值彼此接近的权重(WT)的这些组放在字典30(图2)中。
在处理框66中,可以确定执行突触前神经元的压缩是否没有益处,或者特定的神经元是否扇出到其它神经元,并且因此具有公共连接。针对这些类型的神经元的扇出权重可以被连续存储,而没有指示权重为零或非零的附加位,从而改善了存储器28(图2)的尺寸的紧凑型。
要注意,如上所述的每个位标识“0”、“1”或“2”可以标识要施加到一组突触权重的RLE压缩方案、具有字典编码的RLE压缩方案或无压缩方案。可以不同时向相同组的突触权重施加RLE压缩方案、具有字典编码的RLE压缩方案或无压缩方案。
现在转向图5A-5D,相应的曲线图70、72、74和76例示了示例性实施例的混合压缩方案与现有技术压缩方案的比较。例如,将示例性混合压缩方案与完全无压缩方案和替代方式比较,该替代方式存储目的地神经元的地址和用于有效突触连接的权重(神经元+WT)。在图示的曲线图中可以看出,混合压缩方式实现了更紧凑的存储器尺寸。图5A-5D示出了针对不同突触权重精确度以及针对与不同突触稀疏度的连接的不同压缩方案所需的存储器。在图示的曲线图中,稀疏度从0变化到0.9,或者具体而言,从0稀疏度变化到90%稀疏度。曲线图还示出,突触权重精确度从1位、2位、4位和8位变化。对于1位突触权重,压缩方案相对于无压缩方式没有明显优势。
对于2位突触权重,对于稀疏度超过70%的矩阵可以实现存储改进。对于90%的稀疏度,实现了相对于无压缩方式的最大节约(大约45%)。对于4位和更高的突触权重,可以实现对存储器尺寸的更好改善。例如,对于4位和8位突触权重,最大节约分别为大致67%和79%。
与无压缩或神经元+WT方式相比,RLE压缩方式一直提供了更紧凑的存储器尺寸。
然而,示例性实施例的混合压缩方式实现了最高程度的存储器紧凑性,并且为具有较小稀疏度的矩阵避免了压缩位的开销。
现在转向图6,示出了可以通过使用字典编码方式进一步增强压缩性能和存储器节省并且因而增强紧凑性。在字典编码方式中,可以将整个权重空间量化成8个离散值,它们可以任意分布于权重空间中。字典存储器30(图2)存储这8个离散值,并且权重存储器28(图2)存储指向字典存储器30(图2)的3位指针。8个离散值仅仅是示例性的,并且可以使用其它离散值。
现在转向图7,示出了基于存储器的计算系统130。系统130一般可以是服务器、台式计算机、笔记本计算机、平板计算机、可变换平板计算机、智能电视(TV)、个人数字助理(PDA)、移动因特网装置(MID)、智能电话、可穿戴装置、媒体播放器等的部分或其任何组合。在例示的示例中,输入/输出(I/O)模块148通信地耦合到显示器150(例如,液晶显示器/LCD、发光二极管/LED显示器、触摸屏)、大容量存储装置152(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存存储器)和网络控制器154(例如,有线、无线)。图示的系统130还可以包括主机处理器132(例如,中央处理单元/CPU),主机处理器132包括处理器侧高速缓存134(例如,LLC)和通过总线140或其它适当通信接口与系统存储器138通信的集成存储器控制器136。主机处理器132和I/O模块148可以被集成到片上系统(SoC)架构中的共享半导体管芯(未示出)上。
继续参照图7和8,系统存储器138可以包括存储器142(例如,可以是易失性存储器或非易失性存储器的远存储器)、高速缓存控制器144(144a-144d)以及可以比存储器142更快存取的存储器侧高速缓存146。存储器侧高速缓存146可以被组织成多个块(或子块)。图示的高速缓存控制器144可以总体上实施已经论述的方法60(图4)的一个或多个方面。于是,高速缓存控制器144可以充当启用压缩的存储器设备,其包括高速缓存未命中处理器144a,以(例如,响应于高速缓存未命中)识别第一块,其中第一块包括第一多个高速缓存线。例如,可以从远存储器142取回和/或接收第一块。此外,压缩控制器144b可以通信地耦合到高速缓存未命中处理器144a。压缩控制器144b可以识别第二块,第二块包括第二多个高速缓存线并存在于存储器侧高速缓存146中。在一个示例中,压缩控制器144b进一步压缩第一多个高速缓存线中的每条高速缓存线与第二多个高速缓存线中的对应高速缓存线,以获得包括第三多个高速缓存线的压缩块。
此外,替换控制器144c可以通信地耦合到高速缓存未命中处理器144a和压缩控制器144b,其中替换控制器144c被配置为,如果压缩块满足尺寸条件,则利用压缩块替换存储器侧高速缓存146中的第二块。例如,尺寸条件可以包括第三多个高速缓存线中的每条高速缓存线的尺寸都小于或等于与处理器侧高速缓存134相关联的高速缓存线尺寸。高速缓存控制器144还可以包括子块管理器144d,以将第一块划分成比高速缓存线尺寸更大的子块。在这样的情况下,压缩控制器144b可以基于子块来识别第二块。
在一个示例中,在两级存储器/2LM架构中,可以将存储器侧高速缓存146称为“近存储器”。如前所述,存储器142可以是包括易失性存储器或非易失性存储器的远存储器。非易失性存储器是不需要电力来维持介质所存储的数据的状态的存储介质。非易失性存储器的非限制性示例可以包括固态存储器(例如,平面或3D NAND闪存存储器或NOR闪存存储器)、3D交叉点存储器、使用硫系化物相变材料(例如,硫系化物玻璃)的存储装置、字节可寻址非易失性存储器装置、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、聚合物存储器(例如,铁电聚合物存储器)、铁电晶体管随机存取存储器(Fe-TRAM)、奥氏存储器、纳米线存储器、电可擦可编程只读存储器(EEPROM)、其它各种类型的非易失性随机存取存储器(RAM)和磁存储存储器中的任一种或其组合。在一些实施例中,3D交叉点存储器可以包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉点处,并且可单独寻址,并且其中位存储是基于体电阻的变化。在特定实施例中,具有非易失性存储器的存储器模块可以遵循由电子器件工程联合委员会(JEDEC)颁布的一种或多种标准,例如JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或其它适当标准(本文援引的JEDEC标准可在jedec.org获得)。
易失性存储器是需要电力来维持介质所存储的数据的状态的存储介质。易失性存储器的示例可以包括各种类型的随机存取存储器(RAM),例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可以用于存储器模块中的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在特定实施例中,存储器模块的DRAM遵循由JEDEC颁布的标准,例如用于双数据率(DDR)SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F或用于DDR4 SDRAM的JESD79-4A(这些标准可在www.jedec.org获得)。这样的标准(和类似标准)可以被称为基于DDR的标准,并且实施这种标准的存储装置106的通信接口可以被称为基于DDR的接口。
附加注释和示例:
示例1可以包括一种混合器件,其包括:存储用于突触连接的突触权重的权重存储器;存储多个前缀位的指针存储器,多个前缀位中的每个标识要对权重存储器中存储的突触权重执行的压缩的类型;字典存储器;以及控制器,控制器被配置为基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩,基于多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码,并且基于多个前缀位中的第三前缀位对非零突触权重进行压缩存储。
示例2可以包括示例1的系统,其中多个前缀位中的每个与要对权重存储器中存储的突触权重执行的权重存储器压缩的类型相关联。
示例3可以包括示例1的系统,其中执行RLE压缩还包括将第一位标识符置于非零突触权重之前,并且将第二位标识符置于零值突触权重的长度之前。
示例4可以包括示例1的系统,其中进行无压缩存储包括存储没有前缀位的非零突触权重。
示例5可以包括示例1的系统,其中基于字典的编码包括在权重存储器中存储指向字典存储器中的条目的指针。
示例6可以包括示例1和5中任一个的系统,其中基于字典的编码向查找表中存储处于彼此的预定权重值内的经常出现的突触权重。
示例7可以包括一种用于在神经形态内核中存储突触权重的设备,所述设备包括:权重压缩器,其基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩;通信地耦合到权重压缩器的编码器,编码器基于多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及通信地耦合到编码器的存储接口,存储接口基于多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
示例8可以包括示例7的设备,其中指针存储器中存储的多个前缀位中的每个要与要对权重存储器中存储的突触权重执行的权重存储器压缩的类型相关联。
示例9可以包括示例7的设备,其中RLE压缩将第一位标识符置于非零突触权重之前,并将第二位标识符置于零值突触权重的长度之前。
示例10可以包括示例7的设备,其中无压缩存储存储了没有前缀位的非零突触权重。
示例11可以包括示例7的设备,其中基于字典的编码在权重存储器中存储指向字典存储器中的条目的指针。
示例12可以包括示例7和11中任一个的设备,其中基于字典的编码向查找表中存储处于彼此的预定权重值内的经常出现的突触权重。
示例13可以包括一种用于在神经形态内核中存储突触权重的方法,该方法基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩;基于多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及基于多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
示例14可以包括示例13的方法,还包括在指针存储器中存储多个前缀位,并将多个前缀位中的每个与要对权重存储器中存储的突触权重执行的权重存储器压缩的类型相关联。
示例15可以包括示例13的方法,其中执行RLE压缩还包括将第一位标识符置于非零突触权重之前,并将第二位标识符置于零值突触权重的长度之前。
示例16可以包括示例13的方法,其中进行无压缩存储包括存储没有前缀位的非零突触权重。
示例17可以包括示例13的方法,其中进行基于字典的编码包括在权重存储器中存储指向字典存储器中的条目的指针。
示例18可以包括示例13和17中任一个的方法,其中基于字典的编码向查找表中存储处于彼此的预定权重值内的经常出现的突触权重。
示例19可以包括至少一种计算机可读存储介质,其包括一组指令,所述指令在由设备执行时,使设备基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩;基于多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及基于多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
示例20可以包括示例19的至少一种计算机可读存储介质,还包括在指针存储器中存储多个前缀位,并将多个前缀位中的每个与要对权重存储器中存储的突触权重执行的权重存储器压缩的类型相关联。
示例21可以包括示例19的至少一种计算机可读存储介质,其中执行RLE压缩还包括将第一位标识符置于非零突触权重之前,并将第二位标识符置于零值突触权重的长度之前。
示例22可以包括示例19的至少一种计算机可读存储介质,其中进行无压缩存储包括存储没有前缀位的非零突触权重。
示例23可以包括示例19的至少一种计算机可读存储介质,其中进行基于字典的编码包括在权重存储器中存储指向字典存储器中的条目的指针。
示例24可以包括示例19和23中任一个的至少一种计算机可读存储介质,其中基于字典的编码向查找表中存储处于彼此的预定权重值内的经常出现的突触权重。
示例25可以包括一种用于在神经形态内核中存储突触权重的设备,该设备包括用于基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩的模块;用于基于多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码的模块;以及用于基于多个前缀位中的第三前缀位对非零突触权重进行无压缩存储的模块。
示例26可以包括示例25的设备,还包括用于在指针存储器中存储多个前缀位并将多个前缀位中的每个与要对权重存储器中存储的突触权重执行的权重存储器压缩的类型相关联的模块。
示例27可以包括示例26的设备,其中执行RLE压缩还包括用于将第一位标识符置于非零突触权重之前的模块、以及用于将第二位标识符置于零值突触权重的长度之前的模块。
示例28可以包括示例25的设备,其中进行无压缩存储包括用于存储没有前缀位的非零突触权重的模块。
示例29可以包括示例25的设备,其中进行基于字典的编码包括用于在权重存储器中存储指向字典存储器中的条目的指针的模块。
示例30可以包括示例25和29中任一个的设备,其中基于字典的编码向查找表中存储处于彼此的预定权重值内的经常出现的突触权重。
本文所述的实施例适用于所有类型的半导体集成电路(“IC”)芯片。这些IC芯片的示例包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。此外,在一些附图中,利用线表示信号导体线。一些线可能不同,以指示更多构成的信号路径,一些线具有数字标记以指示若干构成信号路径,和/或一些线在一个或多个端部具有箭头,以指示主要信息流方向。不过,这不应以限制性方式来解释。相反,可以结合一个或多个示例性实施例使用这种添加的细节以方便更容易地理解电路。任何表达的信号线,无论是否具有附加信息,都可以实际包括一个或多个信号,所述信号可以在多个方向上行进并可以利用任何适当类型的信号方案来实施,所述信号方案例如是利用差分对、光纤线和/或单端线实施的数字或模拟线。
可能已经给出了示例性尺寸/模型/值/范围,尽管本发明的实施例不限于此。随着制造技术(例如,光刻)随时间推移而成熟,预计可以制造更小尺寸的装置。此外,为了例示和论述简单,并且为了不使本发明的实施例的某些方面难以理解,附图内可以示出或不示出通往IC芯片和其它部件的公知电源/地连接。此外,可以按照方框图的形式示出布置,以免使本发明的实施例难以理解,并且还考虑了如下事实:相对于这种方框图布置的实施方式的具体细节高度取决于要实施该实施例的平台,即,这种具体细节应当在本领域技术人员的理解范围内。在阐述具体细节(例如,电路)以便描述本发明的示例性实施例的情况下,对于本领域的技术人员应当显而易见的是,可以在没有这些具体细节或者存在这些具体细节的变化的情况下实践本发明的实施例。因此所述描述要被视为示例性的而非限制性的。
术语“耦合”在本文中可以用于指代所谈论的部件之间任何类型的关系(直接或间接),并且可以适用于电气、机械、流体、光、电磁、机电或其它连接。此外,术语“第一”、“第二”等在本文中可以仅用于方便论述,并且除非另外指明,否则不承载任何特定的时间或时域意义。
如本申请和权利要求中所用,由术语“一个或多个”连接的项目列表可以表示所列项目的任何组合。例如,短语“A、B或C中的一个或多个”可以表示:A;B;C;A和B;A和C;B和C;或A、B和C。
本领域的技术人员从前面的描述将会理解,可以以多种形式实施本发明的实施例的宽泛技术。因此,尽管已经结合其特定示例描述了本发明的实施例,但本发明的实施例的实际范围不应当受此限制,因为在研究附图、说明书和如下权利要求时,其它修改对于技术人员将变得显而易见。
Claims (20)
1.一种用于在神经形态内核中存储突触权重的混合压缩系统,所述系统包括:
权重存储器,其存储用于突触连接的突触权重;
指针存储器,其存储多个前缀位,所述多个前缀位中的每个标识要对所述权重存储器中存储的所述突触权重执行的压缩的类型;
字典存储器;以及
控制器,所述控制器被配置为:
基于所述多个前缀位中的第一前缀位对所述权重存储器中存储的所述突触权重执行运行长度编码(RLE)压缩;
基于所述多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及
基于所述多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
2.根据权利要求1所述的系统,其中所述多个前缀位中的每个与要对所述权重存储器中存储的所述突触权重执行的权重存储器压缩的类型相关联。
3.根据权利要求1所述的系统,其中执行所述RLE压缩还包括:
将第一位标识符置于非零突触权重之前;以及
将第二位标识符置于零值突触权重的长度之前。
4.根据权利要求1所述的系统,其中进行所述无压缩存储包括存储没有前缀位的非零突触权重。
5.根据权利要求1所述的系统,其中所述基于字典的编码包括在所述权重存储器中存储指向字典存储器中的条目的指针。
6.根据权利要求1和5中任一项所述的系统,其中所述基于字典的编码向查找表中存储处于彼此的所述预定权重值内的所述经常出现的突触权重。
7.一种用于在神经形态内核中存储突触权重的设备,所述设备包括:
权重压缩器,其基于多个前缀位中的第一前缀位对权重存储器中存储的所述突触权重执行运行长度编码(RLE)压缩,其中,所述多个前缀位中的每个标识要对所述突触权重执行的压缩的类型;
编码器,其通信地耦合到所述权重压缩器,所述编码器基于所述多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及
存储接口,其通信地耦合到所述编码器,所述存储接口基于所述多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
8.根据权利要求7所述的设备,其中,指针存储器中存储的多个前缀位中的每个与要对所述权重存储器中存储的所述突触权重执行的权重存储器压缩的类型相关联。
9.根据权利要求7所述的设备,其中所述RLE压缩将第一位标识符置于非零突触权重之前,并且将第二位标识符置于零值突触权重的长度之前。
10.根据权利要求7所述的设备,其中所述无压缩存储存储了没有前缀位的非零突触权重。
11.根据权利要求7所述的设备,其中所述基于字典的编码在所述权重存储器中存储指向字典存储器中的条目的指针。
12.根据权利要求7和11中任一项所述的设备,其中所述基于字典的编码向查找表中存储处于彼此的所述预定权重值内的所述经常出现的突触权重。
13.一种用于在神经形态内核中存储突触权重的方法,所述方法包括:
基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩,其中,所述多个前缀位中的每个标识要对所述突触权重执行的压缩的类型;
基于所述多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码;以及
基于所述多个前缀位中的第三前缀位对非零突触权重进行无压缩存储。
14.根据权利要求13所述的方法,还包括在指针存储器中存储所述多个前缀位,并且将所述多个前缀位中的每个与要对所述权重存储器中存储的所述突触权重执行的权重存储器压缩的类型相关联。
15.根据权利要求13所述的方法,其中执行所述RLE压缩还包括:
将第一位标识符置于非零突触权重之前;以及
将第二位标识符置于零值突触权重的长度之前。
16.根据权利要求13所述的方法,其中进行所述无压缩存储包括存储没有前缀位的非零突触权重。
17.根据权利要求13所述的方法,其中进行所述基于字典的编码包括在所述权重存储器中存储指向字典存储器中的条目的指针。
18.根据权利要求13和17中任一项所述的方法,其中所述基于字典的编码向查找表中存储处于彼此的所述预定权重值内的所述经常出现的突触权重。
19.一种用于在神经形态内核中存储突触权重的设备,所述设备包括:
用于基于多个前缀位中的第一前缀位对权重存储器中存储的突触权重执行运行长度编码(RLE)压缩的模块,其中,所述多个前缀位中的每个标识要对所述突触权重执行的压缩的类型;
用于基于所述多个前缀位中的第二前缀位对处于彼此的预定权重值内的经常出现的突触权重进行基于字典的编码的模块;以及
用于基于所述多个前缀位中的第三前缀位对非零突触权重进行无压缩存储的模块。
20.至少一种计算机可读存储介质,包括一组指令,所述指令在由设备执行时,使得所述设备执行根据权利要求13-18中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662408534P | 2016-10-14 | 2016-10-14 | |
US62/408,534 | 2016-10-14 | ||
US15/370,542 | 2016-12-06 | ||
US15/370,542 US10489702B2 (en) | 2016-10-14 | 2016-12-06 | Hybrid compression scheme for efficient storage of synaptic weights in hardware neuromorphic cores |
PCT/US2017/055755 WO2018071333A1 (en) | 2016-10-14 | 2017-10-09 | Hybrid compression scheme for efficient storage of synaptic weights in hardware neuromorphic cores |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109716363A CN109716363A (zh) | 2019-05-03 |
CN109716363B true CN109716363B (zh) | 2024-01-19 |
Family
ID=61904587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056555.XA Active CN109716363B (zh) | 2016-10-14 | 2017-10-09 | 用于硬件神经形态内核中的突触权重的高效存储的混合压缩方案 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10489702B2 (zh) |
CN (1) | CN109716363B (zh) |
DE (1) | DE112017005197T5 (zh) |
WO (1) | WO2018071333A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11620490B2 (en) * | 2017-10-17 | 2023-04-04 | Xilinx, Inc. | Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions |
CN111342844B (zh) * | 2020-02-28 | 2023-06-27 | 中船鹏力(南京)大气海洋信息系统有限公司 | 一种基于lzw编码与改进游程编码的雷达数据无损压缩及解压方法 |
CN113408713B (zh) * | 2021-08-18 | 2021-11-16 | 成都时识科技有限公司 | 消除数据副本的方法、神经网络处理器及电子产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971754A (zh) * | 2010-07-07 | 2013-03-13 | 高通股份有限公司 | 用于神经处理器中的可替代突触权重存储的方法和系统 |
CN104901702A (zh) * | 2009-07-28 | 2015-09-09 | 洛桑联邦理工学院 | 数据存储器件 |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277585B2 (en) * | 2001-05-25 | 2007-10-02 | Ricoh Company, Ltd. | Image encoding method, image encoding apparatus and storage medium |
EP2259214B1 (en) * | 2009-06-04 | 2013-02-27 | Honda Research Institute Europe GmbH | Implementing a neural associative memory based on non-linear learning of discrete synapses |
US8725658B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Elementary network description for efficient memory management in neuromorphic systems |
US9330355B2 (en) | 2013-08-06 | 2016-05-03 | Qualcomm Incorporated | Computed synapses for neuromorphic systems |
US9224091B2 (en) * | 2014-03-10 | 2015-12-29 | Globalfoundries Inc. | Learning artificial neural network using ternary content addressable memory (TCAM) |
-
2016
- 2016-12-06 US US15/370,542 patent/US10489702B2/en active Active
-
2017
- 2017-10-09 WO PCT/US2017/055755 patent/WO2018071333A1/en active Application Filing
- 2017-10-09 CN CN201780056555.XA patent/CN109716363B/zh active Active
- 2017-10-09 DE DE112017005197.5T patent/DE112017005197T5/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901702A (zh) * | 2009-07-28 | 2015-09-09 | 洛桑联邦理工学院 | 数据存储器件 |
CN102971754A (zh) * | 2010-07-07 | 2013-03-13 | 高通股份有限公司 | 用于神经处理器中的可替代突触权重存储的方法和系统 |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
Non-Patent Citations (2)
Title |
---|
基于字典压缩的TTA架构处理器代码压缩研究;孙桂玲等;《微电子学》;20130420(第02期);全文 * |
神经信息学的原理与展望;陈惟昌等;《生物物理学报》;20011230(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109716363A (zh) | 2019-05-03 |
US10489702B2 (en) | 2019-11-26 |
DE112017005197T5 (de) | 2019-07-11 |
US20180107919A1 (en) | 2018-04-19 |
WO2018071333A1 (en) | 2018-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520870B (zh) | 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件 | |
US10644721B2 (en) | Processing core data compression and storage system | |
US9727459B2 (en) | Non-volatile, solid-state memory configured to perform logical combination of two or more blocks sharing series-connected bit lines | |
US20210194500A1 (en) | Data Compression and Storage | |
CN109716363B (zh) | 用于硬件神经形态内核中的突触权重的高效存储的混合压缩方案 | |
US10691537B2 (en) | Storing deep neural network weights in non-volatile storage systems using vertical error correction codes | |
CN109643278B (zh) | 使用压缩来增加存储器侧高速缓存的容量的方法和设备 | |
US9720821B2 (en) | Adaptive compression data storing method for non-volatile memories and system using the same | |
US10643126B2 (en) | Systems, methods and devices for data quantization | |
US8706953B2 (en) | Data storage device and method performing background operation with selected data compression | |
CN109002369B (zh) | 基于汉明距离对数字进行二进制编码的方法和装置 | |
US20200301605A1 (en) | Memory array data structure for posit operations | |
US20200327930A1 (en) | Digital Backed Flash Refresh | |
US20200401344A1 (en) | Storage controller having data augmentation components for use with non-volatile memory die | |
CN110023895B (zh) | 在多电平非易失性存储器中实现一致的读取时间 | |
US10903849B1 (en) | Bit string compression | |
US11216696B2 (en) | Training data sample selection for use with non-volatile memory and machine learning processor | |
US11526287B2 (en) | Storage device and operating method of storage device | |
US9268629B2 (en) | Dual mapping between program states and data patterns | |
US20200321983A1 (en) | Encoding and decoding of hamming distance-based binary representations of numbers | |
CN110490312B (zh) | 一种池化计算方法和电路 | |
US20240221859A1 (en) | Digital verify failbit count (vfc) circuit | |
US11914862B2 (en) | Data compression with entropy encoding | |
US20240106459A1 (en) | Compression device and compression method | |
KR102420763B1 (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 |