一种数据管理方法、装置及相关设备制造方法及图纸

技术编号:36169431 阅读:33 留言:0更新日期:2022-12-31 20:20
一种数据管理方法、装置及相关设备,包括:嵌入表加速器获取第一嵌入表,第一嵌入表用于将第一向量转换为第二向量;将第一嵌入表存入一个或多个存储模块中,一个或多个存储模块中的每个存储模块存储有第一嵌入表中同一列的至少两个元素。通过将嵌入表中同一列的至少两个元素存储至同一个存储模块中,能够提高处理器读取同一列数据的效率,提高处理器效率,并能够提高在降维计算中实现近内存计算的概率,从而减少从存储模块传送到处理器的数据量,降低降维计算时所占用的内存出口带宽,同时能够降低处理器缓存嵌入表中元素所需的缓存空间。降低处理器缓存嵌入表中元素所需的缓存空间。降低处理器缓存嵌入表中元素所需的缓存空间。

【技术实现步骤摘要】
一种数据管理方法、装置及相关设备


[0001]本申请涉及计算机
,尤其涉及一种数据管理方法、装置及相关设备。

技术介绍

[0002]当前基于深度学习的推荐系统的输入特征具有高维、稀疏性的特点,通常通过嵌入(embedding)层将高维稀疏向量转换为低维稠密向量。嵌入层包括权重矩阵(嵌入表),将输入特征的向量与权重矩阵相乘,实现将高维稀疏向量转换为低维稠密向量。例如,输入特征是1*1000维的矩向量,嵌入层的权重矩阵为1000*n,从而能够将1000维的高维向量转换为n维的低维向量。
[0003]处理器在进行降维计算时,嵌入表的数据量较大,不能直接使用处理器的片上缓存,必须将嵌入表存放在内存,处理器在根据嵌入表实现上述降维计算时,需要从内存中读取嵌入表中的数据并缓存。但是,内存中通常会存放多个嵌入表,每个嵌入表中的数据随机存储在内存中不同的存储模块中,处理器在并行读取多个嵌入表的数据时,不同嵌入表之间的读取操作会互相影响,导致处理器读取到同一个嵌入表中的数据的时间间隔较大,降低了处理器的处理效率。因此,如何提供一种高效的嵌入层数据的处理方法成为亟待解决的技术问题。

技术实现思路

[0004]本申请公开了数据管理方法、装置及相关设备,能够提高处理器读取同一列数据的效率,提高处理器效率。
[0005]第一方面,本申请提供了一种数据管理方法,包括:嵌入表加速器获取第一嵌入表,将第一嵌入表存储至一个或多个存储模块中,在将第一嵌入表存储至存储模块中时,上述一个或多个存储模块中的每个存储模块需存储第一嵌入表中同一列的至少两个元素,其中,第一嵌入表用于在推荐系统的嵌入层中将第一向量转换为第二向量。
[0006]通过将嵌入表中同一列的至少两个元素存储至同一个DIMM中,从而能够提高处理器读取同一列数据的效率,在降维计算时,需要对同一列的元素进行求和计算,同一列的至少两个元素存储至同一个DIMM中,能够提高在降维计算中在DIMM中实现近内存计算的概率,减少从DIMM传送到处理器的数据量,降低降维计算时所占用的内存出口带宽,同时能够降低处理器缓存嵌入表中元素所需的缓存空间。
[0007]在一种可能的实现方式中,上述将第一嵌入表存入一个或多个存储模块中之前,还包括:嵌入表加速器根据一个或多个嵌入表对计算设备中的多个存储模块进行分池,得到一个或多个内存池,其中,一个或多个内存池中的每个内存池包括至少一个存储模块;
[0008]上述将第一嵌入表存入一个或多个存储模块中,具体为:将第一嵌入表存入一个内存池的一个或者多个存储模块中,或者将第一嵌入表存入多个内存池的多个存储模块中。
[0009]将计算设备中的存储模块划分为一个或者多个内存池,在存储嵌入表时,将嵌入
表按照内存池进行存储,使一个嵌入表的元素可以存储到一个内存池中,且使同一个存储模块中存储有同一个嵌入表中同一列的至少两个元素,实现不同嵌入表的数据之间的相互隔离,从而在处理器在并行读取多个嵌入表中的数据时,能够减少读取不同嵌入表中数据时的相互影响,提高处理器读取同一列数据的效率,提高处理器效率。
[0010]在一种可能的实现方式中,上述根据一个或多个嵌入表对计算设备中的多个存储模块进行分池,得到一个或多个内存池,包括:嵌入表加速器先根据存储模块的数据位宽与一个或多个嵌入表中每个嵌入表的列数,确定每个嵌入表的列宽;然后根据每个嵌入表的列宽,将计算设备中的多个存储模块划分为一个或多个内存池;其中,对于一个包括m行n列的元素的第二嵌入表,该第二嵌入表每一个列宽对应的元素包括第二嵌入表中m行j列的元素,j小于n,第二嵌入表是所述一个或多个嵌入表中的任意一个。
[0011]数据位宽是每次能够从存储模块中读取的数据的长度,将嵌入表中的每行数据按照存储模块的数据位宽分成多个数据段,从而得到每个嵌入表的列宽,然后根据每个嵌入表的列宽进行分池,从而能够使一个嵌入表的元素可以存储到一个内存池中,且使同一个内存池中存储有同一个嵌入表中同一列的至少两个元素。
[0012]在一种可能的实现方式中,在根据一个或多个嵌入表的列宽对计算设备中的多个存储模块划分内存池时,如果一个或多个嵌入表的列宽的总和小于或等于计算设备中存储模块的数量,则在划分内存池后,上述一个或多个嵌入表中的每个嵌入表能够对应一个内存池,且任意一个嵌入表的列宽与其对应的内存池包括的存储模块的数量相等。
[0013]每个嵌入表对应一个内存池且任意一个嵌入表的列宽与其对应的内存池包括的存储模块的数量相等,能够在存储嵌入表时,将嵌入表中同一列宽包括的元素存储至同一个存储模块中,这样能够使每个存储模块中存储嵌入表中同一列的元素,能够提高处理器读取同一列数据的效率,在降维计算时,需要对同一列的元素进行求和计算,同一列的元素存储至同一个DIMM中,能够在DIMM中实现近内存计算的概率,减少从DIMM传送到处理器的数据量,降低降维计算时所占用的内存出口带宽,同时能够降低处理器缓存嵌入表中元素所需的缓存空间。
[0014]在一种可能的实现方式中,上述将第一嵌入表存入一个内存池的一个或多个存储模块中,包括:将第一嵌入表存入第一嵌入表对应的内存池中,且将第一嵌入表中每一个列宽对应的元素存储至第一嵌入表对应的内存池的一个存储模块中,所述第一嵌入表为所述一个或多个嵌入表中的一个。
[0015]将嵌入表中同一列宽包括的元素存储至同一个存储模块中,这样能够使每个存储模块中存储嵌入表中同一列的元素,能够提高处理器读取同一列数据的效率,在降维计算时,需要对同一列的元素进行求和计算,同一列的元素存储至同一个DIMM中,能够在DIMM中实现近内存计算的概率,减少从DIMM传送到处理器的数据量,降低降维计算时所占用的内存出口带宽,同时能够降低处理器缓存嵌入表中元素所需的缓存空间。
[0016]在一种可能的实现方式中,在将计算设备中的存储模块进行分池之后,上述将第一嵌入表存入至少一个内存池的存储模块中,包括:嵌入表加速器确定第一嵌入表的列宽;在第一嵌入表的列宽大于一个或多个内存池中任意一个内存池中存储模块的数量时,根据一个或多个内存池中每个内存池包括的存储模块的数量,将第一嵌入表划分为多个子表;然后将多个子表中的每个子表存入各自对应的内存池中;其中,每个子表对应一个内存池,
每个子表对应的内存池中包括的存储模块的数量大于或等于每个子表的列宽;每个子表中每一个列宽包括的元素存储至对应的内存池的一个存储模块中。
[0017]在一个嵌入表的列宽较大时,将嵌入表划分为多个子表,使的每个子表对应一个内存池,且每个子表对应的内存池包括的存储模块的数量大于或等于子表的列宽,能够在存储子表时,将子表中同一列宽包括的元素存储至同一个存储模块中,这样能够使每个存储模块中存储有一个嵌入表中同一列的元素。从而在处理器在并行读取多个嵌入表中的数据时,能够减少读取不同嵌入表中数据时的相互影响,提高处理器读取同一列数据的效率,提高处理器效率。另外,同一列的元素存储至同一个DIMM中,能够在降维计算中在DI本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据管理方法,其特征在于,包括:获取第一嵌入表,所述第一嵌入表用于在推荐系统的嵌入层中将第一向量转换为第二向量;将所述第一嵌入表存入一个或多个存储模块中,所述一个或多个存储模块中的每个存储模块存储有所述第一嵌入表中同一列的至少两个元素。2.根据权利要求1所述的方法,其特征在于,所述将所述第一嵌入表存入一个或多个存储模块中之前,还包括:根据一个或多个嵌入表对计算设备中的多个存储模块进行分池,得到一个或多个内存池,其中,所述一个或多个内存池中的每个内存池包括至少一个存储模块;所述将所述第一嵌入表存入一个或多个存储模块中,包括:将所述第一嵌入表存入至少一个内存池的存储模块中。3.根据权利要求2所述的方法,其特征在于,所述根据一个或多个嵌入表对计算设备中的多个存储模块进行分池,得到一个或多个内存池,包括:根据存储模块的数据位宽与所述一个或多个嵌入表中每个嵌入表的列数,确定所述每个嵌入表的列宽,其中,第二嵌入表包括m行n列的元素,所述第二嵌入表每一个列宽对应的元素包括所述第二嵌入表中m行j列的元素,j小于n,所述第二嵌入表是所述一个或多个嵌入表中的任意一个;根据所述一个或多个嵌入表中每个嵌入表的列宽,将所述计算设备中的多个存储模块划分成一个或者多个内存池。4.根据权利要求3所述的方法,其特征在于,在所述一个或多个嵌入表的列宽的总和小于或等于所述计算设备中存储模块的数量时,所述一个或多个嵌入表中的每个嵌入表对应一个内存池,其中,所述第二嵌入表对应的内存池包括的存储模块的数量等于所述第二嵌入表的列宽。5.根据权利要求4所述的方法,其特征在于,所述将所述第一嵌入表存入一个内存池的一个或多个存储模块中,包括:将所述第一嵌入表存入所述第一嵌入表对应的内存池中,其中,所述第一嵌入表中每一个列宽对应的元素存储至所述第一嵌入表对应的内存池的一个存储模块中,所述第一嵌入表为所述一个或多个嵌入表中的一个。6.根据权利要求3所述的方法,其特征在于,所述将所述第一嵌入表存入至少一个内存池的存储模块中,包括:确定所述第一嵌入表的列宽;在所述第一嵌入表的列宽大于所述一个或多个内存池中任意一个内存池中存储模块的数量时,根据所述一个或多个内存池中每个内存池包括的存储模块的数量,将所述第一嵌入表划分为多个子表;其中,每个子表对应一个内存池,每个子表对应的内存池中包括的存储模块的数量大于或等于每个子表的列宽;将所述多个子表中的每个子表存入各自对应的内存池中,其中,所述每个子表每一个列宽包括的元素存储至对应的内存池的一个存储模块中。7.根据权利要求1所述的方法,其特征在于,所述将所述第一嵌入表存入一个或多个存储模块中,包括:
根据存储模块的数据位宽与所述第一嵌入表的列数,确定所述第一嵌入表的列宽,其中,所述第一嵌入表包括m行n列的元素,所述第一嵌入表每一个列宽对应的元素包括所述第一嵌入表中m行j列的元素,j小于n;若所述计算设备的多个存储模块中包括没有存储数据的空闲存储模块,且所述空闲存储模块的数量大于所述第一嵌入表的列宽,根据所述第一嵌入表的列宽从所述空闲存储模块中划分出第一内存池,将所述第一嵌入表存入所述第一内存池中,其中,所述第一内存池中包括的存储模块的数量与所述第一嵌入表的列宽相同,所述第一嵌入表每一个列宽对应的元素存储至所述第一内存池的一个存储模块中。8.根据权利要求7所述的方法,其特征在于,若所述空闲存储模块的数量小于或等于所述第一嵌入表的列宽,将所述空闲存储模块划分为一个内存池,并将所述第一嵌入表存储至所述空闲存储模块。9.根据权利要求2至8任一项所述的方法,其特征在于,所述方法还包括:生成映射关系表,所述映射关系表记载有每个嵌入表与内存池之间的对应关系,用于指示每个嵌入表存储的内存池;接收获取指令,所述获取指令包括目标嵌入表的标识与行序号,用于指示读取所述目标嵌入表中的目标数据;根据所述嵌入表标识与所述映射关系表,确定所述目标嵌入表所在的目标内存池,并根据所述行序号从所述目标内存池中获取所述行序号指示的目标数据。10.一种数据管理装置,其特征在于,包括:管理模块,用于获取第一嵌入表,所述第一嵌入表用于在推荐系统的嵌入层中将第一向量转换为第二向量;读写模块,用于将所述...

【专利技术属性】
技术研发人员:胡天驰谢尚港
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1