CN114546251A - 权重矩阵数据存储方法、数据获取方法和装置、电子设备 - Google Patents
权重矩阵数据存储方法、数据获取方法和装置、电子设备 Download PDFInfo
- Publication number
- CN114546251A CN114546251A CN202110585727.0A CN202110585727A CN114546251A CN 114546251 A CN114546251 A CN 114546251A CN 202110585727 A CN202110585727 A CN 202110585727A CN 114546251 A CN114546251 A CN 114546251A
- Authority
- CN
- China
- Prior art keywords
- weight
- value
- special
- matrix
- type
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
本公开提供了一种权重矩阵的数据存储的方法,其包括:根据权重矩阵生成类型矩阵和特殊值表;存储所述类型矩阵和特殊值表;其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。本公开还提供了一种权重矩阵的数据获取的方法和装置、电子设备。
Description
技术领域
本公开涉及类脑计算领域,特别涉及一种权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备。
背景技术
类脑计算技术已被广泛用于智能科学、认知科学、信息处理、人工智能等领域,如用于图像(视频)识别、图像(视频)处理、语音识别等。
人脑包括大量(如1000亿左右)的神经元,而类脑芯片(神经形态芯片)则通过设置大量的电子模拟的神经元模拟人脑的工作。而神经元的工作过程中还需要用到很多的“权重(如连接权重)”,这些权重可以“权重矩阵”的形式存在,即,权重矩阵的每个元素为一个权重值(如一个连接的权重值)。
由于权重矩阵包括的权重值数量很多,精度较高,从而权重矩阵会占据大量的存储空间。
发明内容
本公开提供一种权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备。
第一方面,本公开实施例提供一种权重矩阵的数据存储的方法,其包括:
根据权重矩阵生成类型矩阵和特殊值表;
存储所述类型矩阵和特殊值表;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
在一些实施例中,所述预设权重值包括:
空权重;
至少一个预设的、非空的权重值。
在一些实施例中,在所述根据权重矩阵生成类型矩阵和特殊值表之前,还包括:
根据所述权重矩阵确定其中的多个权重值为预设权重值,并存储所述预设权重值。
第二方面,本公开实施例提供一种权重矩阵的数据获取的方法,包括:
根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
在一些实施例中,所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值包括:
地址产生器依次产生类型矩阵中各元素的地址,并输入至类型矩阵存储器;
类型矩阵存储器根据接收到的地址,将其中预存的类型矩阵的相应元素的类型输入至选通器和特殊值判断器;
预设值存储器将其中预存的各预设权重值同步输入至选通器;
特殊值判断器在接收到的类型为特殊值型时,向特殊值存储器输出更新信号;
特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
选通器根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出。
在一些实施例中,在所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值之后,还包括:
获取所确定的权重值。
在一些实施例中,在所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值之后,还包括:
根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;
从所述临时存储空间获取权重矩阵的权重值。
第三方面,本公开实施例提供一种权重矩阵的数据获取的装置,包括地址产生器、特殊值存储器、预设值存储器,以及至少一个获取单元;其中,
所述地址产生器用于依次产生类型矩阵中各元素的地址,并输入至相应获取单元的类型矩阵存储器;
所述预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的选通器;
所述特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
每个所述获取单元包括:
类型矩阵存储器,用于存储类型矩阵,并根据接收到的地址,将类型矩阵的相应元素的类型输入至选通器和特殊值判断器;
特殊值判断器,用于在接收到的类型为特殊值型时,向特殊值存储器输出更新信号;
选通器,用于根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
在一些实施例中,所述获取单元的数量为多个;
每个所述获取单元还包括:输出使能器,其连接选通器的输出;
所述装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;所述逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
第四方面,本公开实施例提供一种电子设备,其包括:
一个或多个处理器;
存储器,其上存储有一个或多个计算机程序:
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现:
上述任意一种的权重矩阵的数据存储的方法;
和/或,
上述任意一种的权重矩阵的数据获取的方法。
本公开实施例中,实际存储的只有类型矩阵、特殊值表、预设权重值,其中,类型矩阵只有权重值的“类型”,而每个类型的数据量显然远小于权重值的数据量,故类型矩阵占用的存储空间远小于权重矩阵占用的存储空间;而特殊值表和预设权重值只是权重矩阵中很少的具体权重值,故它们占用的存储空间也很小。
由此,本公开实施例中,所有实际存储的数据占用的存储空间比权重矩阵占用的存储空间小的多,但实际上包括了权重矩阵的全部信息(数据),从而大大节约了存储空间。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与详细实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种权重矩阵的数据存储的方法的流程图;
图2为本公开实施例提供的一种权重矩阵的数据存储的方法中一个权重矩阵与类型矩阵的对应关系图;
图3为本公开实施例提供的另一种权重矩阵的数据存储的方法的流程图;
图4为本公开实施例提供的一种权重矩阵的数据获取的方法的流程图;
图5为本公开实施例提供的另一种权重矩阵的数据获取的方法的流程图;
图6为本公开实施例提供的另一种权重矩阵的数据获取的方法的流程图;
图7为本公开实施例提供的一种权重矩阵的数据获取的装置的组成框图;
图8为本公开实施例提供的另一种权重矩阵的数据获取的装置的组成框图;
图9为本公开实施例提供的一种电子设备的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备进行详细描述。
在下文中将参考附图更充分地描述本公开,但是所示的实施例可以以不同形式来体现,且不应当被解释为限于本公开阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
本公开可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的术语“和/或”包括一个或多个相关列举条目的任何和所有组合。如本公开所使用的单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。如本公开所使用的术语“包括”、“由……制成”,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本公开所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
本公开不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是旨在限制性的。
第一方面,本公开实施例提供一种权重矩阵的数据存储的方法,其用于将权重矩阵的数据(信息)存储下来,以供后续的类脑计算过程使用。
其中,权重矩阵用于存储类脑计算中用的权重(如神经元的权重)。权重矩阵具体可为二维形式,也可为更高维度的形式,且其中的每个元素为一个具体的权重值。
其中,权重矩阵中所有权重值的精度是相同的,例如为int8、fp16等形式。
参照图1,本公开实施例的权重矩阵的数据存储的方法包括:
S101、根据权重矩阵生成类型矩阵和特殊值表。
S102、存储类型矩阵和特殊值表。
其中,类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;类型包括特殊值型和多个预设值型;每个预设值型对应一个预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
本公开实施例中,根据所要存储的权重矩阵的内容(数据),产生对应的类型矩阵和特殊值表,并将类型矩阵和特殊值表存储下来,以体现权重矩阵的信息(数据),供后续的类脑计算过程使用。
其中,参照图2,类型矩阵与权重矩阵的形式、尺寸均相同,故类型矩阵的每个元素,必然对应权重矩阵中一个处于相同的相对位置的元素。而且,类型矩阵的每个元素的值,为其在权重矩阵中对应的元素的权重值所属的“类型”。
显然,在权重矩阵中,有很多权重值是多次重复出现的,如一些兴奋权重值、抑制权重值、空权重等,故可将每个多次出现的权重值定义为一个预设权重值,使其属于一个“预设值型”;而权重矩阵中其它的权重值出现较少,故将它们全部定义为特殊权重值,并属于“特殊值型”。
而在特殊值表中,则将权重矩阵中出现的所有特殊权重值,按照预定的顺序(如逐行排列的顺序)存储下来。由此,特殊值表实际是一系列有顺序的数据(特殊权重值),也可视为“一维矩阵”或“序列”。
例如,参照图2和下表1,特殊值表的形式可为:
表1、特殊值表
3.2364 | -0.1231 | 63.7089 | … | … | … | … | … |
基于矩阵的格式要求,其中所有元素的数据精度是一样的。由此,例如每个权重值的数据量为16bits,则有N个元素的权重矩阵占据的存储空间为16*Nbits。
如前,权重值可能的类型通常是很少的几种,故“类型”的数据量显然远远小于权重值的数据量,例如,参照图2和下表2,权重矩阵中的预设权重值可包括权重值A、权重值B,以及空权重(用0表示),从而类型矩阵中的每个类型的数据量可为2bits,如分别用01、10、00对应权重值A、权重值B、空权重这三种预设权重值,而用11对应特殊权重值。
表2、类型与权重值的对应关系表
类型 | 01 | 10 | 00 | 11 |
权重值 | 权重值A | 权重值B | 0 | 特殊权重值 |
由此,类型矩阵占据的存储空间为2*Nbits。
例如,当权重矩阵中有80%的元素都属于预设权重值时,则只有20%的元素为特殊权重值,故特殊值表占用的存储空间为20%*16*Nbits。
由此,按照以上方式存储的权重矩阵的数据(类型矩阵和特殊值表)总计占用的存储空间为2*N+20%*16*N=5.2*Nbits,即使加上各预设权重值占用的存储空间也只是再增加3*16=48bits,在N很大时,该存储空间远远小于16*Nbits,故本公开实施例的方式可大大节约存储空间。
显然,权重矩阵中预设权重值的占比(数量比)越大,则本公开实施例的方式节约存储空间的效果越好,故本公开实施例特别适用于预设权重值占较大的权重矩阵,例如用于空权重占比较大的稀疏矩阵(空权重为预设权重值的一种)。
例如,本公开实施例可用于预设权重值至少占(在所有权重值中的个数比)40%,或至少占60%,或至少占80%的权重矩阵。
本公开实施例中,实际存储的只有类型矩阵、特殊值表、预设权重值,其中,类型矩阵只有权重值的“类型”,而每个类型的数据量显然远小于权重值的数据量,故类型矩阵占用的存储空间远小于权重矩阵占用的存储空间;而特殊值表和预设权重值只是权重矩阵中很少的具体权重值,故它们占用的存储空间也很小。
由此,本公开实施例中,所有实际存储的数据占用的存储空间比权重矩阵占用的存储空间小的多,但实际上包括了权重矩阵的全部信息(数据),从而大大节约了存储空间。
在一些实施例中,预设权重值包括:
空权重;
至少一个预设的、非空的权重值。
很多权重矩阵都是稀疏矩阵,即其中空权重的占比较大(如至少占40%,或至少占60%,或至少占80%),故可将空权重作为一种预设权重值,同时还有一些其它的非空的权重值作为权重值。
参照图3,在一些实施例中,在根据权重矩阵生成类型矩阵和特殊值表(S101)之前,还包括:
S100、根据权重矩阵确定其中的多个权重值为预设权重值,并存储预设权重值。
如前,预设权重值的选取对节约存储空间的效果有明显影响,预设权重值过少则特殊权重值过多,特殊值表占用的存储空间过大;而预设权重值的种类过多,则会导致每个“类型”的数据量过大,进而导致类型矩阵占用的存储空间过大。
为此,可根据当前要存储的权重矩阵的具体状况,选择其中部分多次出现的权重值为预设权重值,并将选定的预设权重值存储下来,以起到更好的节约存储空间的效果。
当然,也可以是根据大量权重矩阵的总体情况,预先设定通用的预设权重值并存储,而不是根据每个权重矩阵设置预设权重值。
第二方面,本公开实施例提供一种权重矩阵的数据获取的方法,其用根据以上方法存储得到的权重矩阵的数据,获取权重矩阵中所需的权重值,用于后续的类脑计算过程。
参照图4,本公开实施例的权重矩阵的数据获取的方法包括:
S201、根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值。
其中,类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;类型包括特殊值型和多个预设值型;每个预设值型对应一个预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
可见,通过以上方式存储的权重矩阵的数据并不是“权重矩阵”本身,故当需要使用权重矩阵中某个元素的权重值时,需要根据类型矩阵中相应元素(处于相同相对位置的元素)的类型,确定其对应的是哪种权重值,再根据特殊值表和预设权重值,确定其具体对应的特殊权重值或预设权重值。
参照图5,在一些实施例中,在根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值(S201)之后,还包括:
S202、获取所确定的权重值。
作为本公开实施例的一种形式,可以是在需要使用权重矩阵中元素的权重值时,直接按照以上方式得到相应的权重值,并直接读出、利用。
参照图6,在一些实施例中,在根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值(S201)之后,还包括:
S203、根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;
S204、从临时存储空间获取权重矩阵的权重值。
作为本公开实施例的另一种形式,也可以是先得到权重矩阵中部分或全部的权重值,也就是“复原”权重矩阵或其一部分,并将复原的权重矩阵或其一部分存储在临时存储空间中,故临时存储空间中相当于有一个“临时权重矩阵”,从而在需要时,可从该“临时权重矩阵”中获取权重值。
其中,当使用完“临时权重矩阵”中的数据后,可重新向临时存储空间中写入权重矩阵的“另一部分”。
下面对得到权重矩阵中元素的权重值的具体方式进行介绍。
应当理解,具体如何得到权重矩阵中元素的权重值,与权重值后续被如何利用没有必然关系。例如,通过以下方式得到的权重值,可以被直接获取(如S202),也可以用于形成以上“临时权重矩阵(如S203、S204)”。
应当理解,以下得到权重矩阵中元素的具体方式只是示例性的,而不是对本公开范围的限定。
参照图7,在一些实施例中,根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值(S201)包括:
A1、地址产生器依次产生类型矩阵中各元素的地址,并输入至类型矩阵存储器。
A2、预设值存储器将其中预存的各预设权重值同步输入至选通器。
A3、类型矩阵存储器根据接收到的地址,将其中预存的类型矩阵的相应元素的类型输入至选通器和特殊值判断器。
A4、特殊值判断器在接收到的类型为特殊值型时,向特殊值存储器输出更新信号。
A5、特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值。
A6、选通器根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出。
应当理解,以上每个步骤描述的只是相应结构进行的工作或功能,故以上步骤的描述顺序,并不代表其必然的执行顺序。
参照图7,地址产生器依次(与特殊值表中特殊权重值的存储顺序对应)产生地址并将其输入至类型矩阵存储器。
其中,以上产生的地址用于表明当前需要确定权重矩阵中哪个元素的权重值;故为了简便,权重矩阵和类型矩阵中对应元素的地址可以是相同的。
类型矩阵存储器根据接收到的地址,将地址所指元素的类型(如以上01、10、00、11)输入至选通器。
同时,预设值存储器(如寄存器)则将其中存储的所有预设权重值(如以上权重值A、权重值B、0)同步的输入(如持续输入)至选通器;特殊值存储器也将其中存储的当前特殊权重值输入(如持续输入)至选通器。
由此,选通器同时接收到所有的预设权重值以及当前特殊权重值;同时,选通器还接收到当前需要确定权重值的元素的类型,从而其可根据该类型,确定应让哪一个权重值输出(例如,类型为01则输出权重值A,类型为10则输出权重值B,类型为00则输出0,类型为11则输出当前特殊权重值),即确定将哪一“路”的输入选通,作为当前元素的权重值输出;而选通器接收到的其它各“路”权重值并不是对应当前元素的,故不被输出。
其中,类型矩阵存储器还将类型输入至特殊值判断器,特殊值判断器则在接收到的类型为特殊值型(如为11)时,向特殊值存储器输出更新信号,以供特殊值存储器“更新”当前特殊权重值,即选择特殊值表中的“下一个”特殊权重值作为新的当前特殊权重值,并输出至选通器。
可见,地址产生器产生的地址是“依次”的,而特殊值存储器中的特殊值表中的各特殊权重值也是按照相同方式“依次”排列的,从而,通过在类型为特殊值型时更新当前特殊权重值,可保证地址与当前特殊权重值是“同步”的,即保证输出的特殊权重值,必然是当前元素实际对应的那个特殊权重值。
参照图8,在一些实施例中,权重矩阵的数据获取的装置包括获取单元,每个获取单元包括以上的类型矩阵存储器、特殊值判断器、选通器。
当获取单元的数量为多个时,每个获取单元还包括:输出使能器,其连接选通器的输出;
而权重矩阵的数据获取的装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
如前,每个获取单元可确定一个元素的权重值,故若要以“并行”方式同时确定多个元素的权重值(如权重矩阵的一行中多个相邻元素的权重值)时,则需要同时使用多个(图8以两个为例)获取单元,各获取单元同步工作,每个获取单元确定一个权重值。
其中,当有多个获取单元时,若涉及到两个属于获取单元的结构的交互,则若无特殊说明,应当是指同一个获取单元内部的两个结构进行交互。
参照图8,当有多个获取单元时,其中特殊值存储器和预设值存储器可以“公用”,即它们将当前特殊权重值、预设权重值同步输出到所有获取单元的选通器,从而简化硬件结构。
而地址产生器也是“公用”的,区别在于其将各获取单元应处理的元素的地址分别输入至相应获取单元的类型矩阵存储器(即其同一时刻输入到各类型矩阵存储器的地址不同,但按顺序排列),再由各获取单元的类型矩阵存储器将对应的类型输入至自身所在获取单元的选通器,以供选通器输出相应元素的权重值。
其中,当“并行”输出的多个元素的权重值中有多个特殊权重值时,则必然有多个获取单元的选通器接收到的类型为特殊值型,并分别输出当前特殊权重值;但是,该多个不同获取单元应输出的特殊权重值实际是不同的,即特殊值存储器需要对当前特殊权重值进行多次更新,
为此,参照图8,还需要设置逻辑控制器和输出使能器。
其中,若逻辑控制器同时只接收到一个更新信号,则直接将其转发至特殊值存储器即可。
而当“并行”输出的多个元素的权重值中有多个特殊权重值时,逻辑控制器必然同时接收到多个更新信号(如两个更新信号),从而其需要依次将更新信号输入至特殊值存储器(如先将第一个更新信号输入至特殊值存储器,一定时间后再将第二个更新信号输入至特殊值存储器)。进而,特殊值存储器会多次更新当前特殊权重值,并在不同时间分别输出不同的当前特殊权重值(如在收到第一个更新信号后而收到第二个更新信号前,输出第一个当前特殊权重值;而在收到第二个更新信号后输出第二个当前特殊权重值)。
相应的,在同时接收到多个更新信号时,逻辑控制器还需要以轮询的方式,控制对应各更新信号的获取单元的输出使能器依次导通(如在特殊值存储器输出第一个当前特殊权重值时,使对应第一个更新信号的获取单元的输出使能器导通,使对应第二个更新信号的获取单元的输出使能器关断;而在特殊值存储器输出第二个当前特殊权重值时,使对应第二个更新信号的获取单元的输出使能器导通,使对应第一个更新信号的获取单元的输出使能器关断)。
由此,对应各更新信号的多个获取单元,可分别输出(是“并行”输出,但不是完全“同时”)各自对应的元素的特殊权重值。
其中,同时接收到多个更新信号时,逻辑控制器应控制其它不对应更新信号的获取单元的输出使能器保持导通状态;而在同时只接收到一个更新信号或未接收到更新信号时,逻辑控制器应控制所有获取单元的输出使能器保持导通状态,在此不再详细描述
其中,逻辑控制器的具体实现方式是多样的,例如,逻辑控制器可通过乘加器实现节拍性的调整工作状态,在此不再详细描述。
第三方面,参照图7,本公开实施例提供一种权重矩阵的数据获取的装置,包括地址产生器、特殊值存储器、预设值存储器,以及至少一个获取单元;其中,
地址产生器用于依次产生类型矩阵中各元素的地址,并输入至相应获取单元的类型矩阵存储器;
预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的选通器;
特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
每个获取单元包括:
类型矩阵存储器,用于存储类型矩阵,并根据接收到的地址,将类型矩阵的相应元素的类型输入至选通器和特殊值判断器;
特殊值判断器,用于在接收到的类型为特殊值型时,向特殊值存储器输出更新信号;
选通器,用于根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
其中,类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;类型包括特殊值型和多个预设值型;每个预设值型对应一个预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
参照图8,在一些实施例中,获取单元的数量为多个;
每个获取单元还包括:输出使能器,其连接选通器的输出;
装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;所述逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
本公开实施例的装置,可通过以上的硬件结构,实现以上的权重矩阵的数据获取的方法,在此不再详细描述。
其中,当有多个获取单元时,若涉及到两个属于获取单元的结构的交互,则若无特殊说明,应当是指同一个获取单元内部的两个结构进行交互。
其中,以上置中的多个结构,可以是多个相互独立的实体器件,也可以是多个结构集成在一起由一个实体器件实现,在此不再详细描述。
第四方面,参照图9,本公开实施例提供一种电子设备,其包括:
一个或多个处理器;
存储器,其上存储有一个或多个计算机程序:
一个或多个I/O接口,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互;
当一个或多个计算机程序被一个或多个处理器执行时,能实现:
上述任意一种的权重矩阵的数据存储的方法;
和/或,
上述任意一种的权重矩阵的数据获取的方法。
其中,处理器为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)连接在处理器与存储器间,能实现存储器与处理器的信息交互,其包括但不限于数据总线(Bus)等。
本公开实施例的电子设备可实现上述的方法,从而可用于类脑计算技术。
例如,以上电子设备可集成在类脑芯片(神经形态芯片)等类脑计算设备中。或者,以上电子设备也可独立于类脑计算设备,为类脑计算设备提供权重值。
本领域普通技术人员可以理解,上文中所公开的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。
某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器(CPU)、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH)或其它磁盘存储器;只读光盘(CD-ROM)、数字多功能盘(DVD)或其它光盘存储器;磁盒、磁带、磁盘存储或其它磁存储器;可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本公开已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (10)
1.一种权重矩阵的数据存储的方法,其包括:
根据权重矩阵生成类型矩阵和特殊值表;
存储所述类型矩阵和特殊值表;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
2.根据权利要求1所述的方法,其中,所述预设权重值包括:
空权重;
至少一个预设的、非空的权重值。
3.根据权利要求1所述的方法,其中,在所述根据权重矩阵生成类型矩阵和特殊值表之前,还包括:
根据所述权重矩阵确定其中的多个权重值为预设权重值,并存储所述预设权重值。
4.一种权重矩阵的数据获取的方法,包括:
根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
5.根据权利要求4所述的方法,其中,所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值包括:
地址产生器依次产生类型矩阵中各元素的地址,并输入至类型矩阵存储器;
类型矩阵存储器根据接收到的地址,将其中预存的类型矩阵的相应元素的类型输入至选通器和特殊值判断器;
预设值存储器将其中预存的各预设权重值同步输入至选通器;
特殊值判断器在接收到的类型为特殊值型时,向特殊值存储器输出更新信号;
特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
选通器根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出。
6.根据权利要求4所述的方法,其中,在所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值之后,还包括:
获取所确定的权重值。
7.根据权利要求4所述的方法,其中,在所述根据预存的类型矩阵的元素的类型,以及预存的特殊值表、预设权重值,确定权重矩阵中对应元素的权重值之后,还包括:
根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;
从所述临时存储空间获取权重矩阵的权重值。
8.一种权重矩阵的数据获取的装置,包括地址产生器、特殊值存储器、预设值存储器,以及至少一个获取单元;其中,
所述地址产生器用于依次产生类型矩阵中各元素的地址,并输入至相应获取单元的类型矩阵存储器;
所述预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的选通器;
所述特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
每个所述获取单元包括:
类型矩阵存储器,用于存储类型矩阵,并根据接收到的地址,将类型矩阵的相应元素的类型输入至选通器和特殊值判断器;
特殊值判断器,用于在接收到的类型为特殊值型时,向特殊值存储器输出更新信号;
选通器,用于根据接收到的类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
其中,所述类型矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值对应的类型,一个类型的数据量小于一个权重值的数据量;所述类型包括特殊值型和多个预设值型;每个所述预设值型对应一个预设权重值,所述特殊值型对应特殊权重值,除所述预设权重值外的其它权重值均为特殊权重值;所述特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
9.根据权利要求8所述的装置,其中,所述获取单元的数量为多个;
每个所述获取单元还包括:输出使能器,其连接选通器的输出;
所述装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;所述逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
10.一种电子设备,其包括:
一个或多个处理器;
存储器,其上存储有一个或多个计算机程序:
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现:
权利要求1至3中任意一项所述的权重矩阵的数据存储的方法;
和/或,
权利要求4至7中任意一项所述的权重矩阵的数据获取的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585727.0A CN114546251A (zh) | 2021-05-27 | 2021-05-27 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
PCT/CN2022/095238 WO2022247908A1 (zh) | 2021-05-27 | 2022-05-26 | 权重矩阵的数据存储方法、数据获取方法及装置、设备 |
US18/266,658 US20240046113A1 (en) | 2021-05-27 | 2022-05-26 | Data storage method, data acquisition method, data acquisition apparatus for a weight matrix, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110585727.0A CN114546251A (zh) | 2021-05-27 | 2021-05-27 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546251A true CN114546251A (zh) | 2022-05-27 |
Family
ID=81668547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110585727.0A Pending CN114546251A (zh) | 2021-05-27 | 2021-05-27 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546251A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117744128A (zh) * | 2024-02-21 | 2024-03-22 | 广州久零区块链技术有限公司 | 基于区块链的电商交易数据安全管理方法 |
-
2021
- 2021-05-27 CN CN202110585727.0A patent/CN114546251A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117744128A (zh) * | 2024-02-21 | 2024-03-22 | 广州久零区块链技术有限公司 | 基于区块链的电商交易数据安全管理方法 |
CN117744128B (zh) * | 2024-02-21 | 2024-05-14 | 广州久零区块链技术有限公司 | 基于区块链的电商交易数据安全管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534841B2 (en) | Appartus and methods for submatrix operations | |
CN114207629A (zh) | 用于在神经网络加速器中读写稀疏数据的系统和方法 | |
US11048509B2 (en) | Providing multi-element multi-vector (MEMV) register file access in vector-processor-based devices | |
WO2019127517A1 (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
US20220236874A1 (en) | Memory apparatus embedded with computing function and operation method thereof | |
US20220075724A1 (en) | Memory controllers including examples of calculating hamming distances for neural network and data center applications | |
US20200089550A1 (en) | Broadcast command and response | |
EP4024283A1 (en) | Method and apparatus for processing data, and related product | |
CN114527930B (zh) | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 | |
CN109727187B (zh) | 用于调整多个感兴趣区域数据的存储位置的方法和装置 | |
CN114546251A (zh) | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 | |
CN112396072B (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
WO2022055829A1 (en) | Memory systems including examples of calculating hamming distances for neural network and data center applications | |
WO2022055828A1 (en) | A memory including examples of calculating hamming distances for neural network and data center applications | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
US20210142144A1 (en) | Multi-size convolutional layer | |
US20240046113A1 (en) | Data storage method, data acquisition method, data acquisition apparatus for a weight matrix, and device | |
US20220121908A1 (en) | Method and apparatus for processing data, and related product | |
US11741349B2 (en) | Performing matrix-vector multiply operations for neural networks on electronic devices | |
EP4078371A1 (en) | Message-based processing system and method of operating the same | |
CN115759212A (zh) | 卷积运算电路及方法、神经网络加速器和电子设备 | |
CN110929854B (zh) | 一种数据处理方法、装置及硬件加速器 | |
CN111324793A (zh) | 对存储感兴趣区域的数据的操作进行控制的方法和装置 | |
US12032960B2 (en) | Flexible support for device emulation and bank swapping |
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 |