一种基于近数据处理的分布式推荐方法及系统与流程

文档序号:40325955发布日期:2024-12-18 13:02阅读:18来源:国知局
一种基于近数据处理的分布式推荐方法及系统与流程

本发明属于信息,特别涉及一种基于近数据处理的分布式推荐方法及系统。


背景技术:

1、个性化推荐系统在互联网行业中发挥着越来越重要的作用,广泛应用于流媒体、电子商务、社交媒体等在线服务。如今主流的深度学习推荐模型(deep learningrecommendation models,dlrms)同时处理包含个人信息的密集特征和包含相关项目索引的稀疏特征,密集特征输入由底层全连接的多层感知器 (mlp)处理,而稀疏输入则由嵌入层处理,将稀疏特征映射成为稠密的向量。接着,底层mlp 和嵌入层的输出被合并并输入到顶层 mlp 中进行预测,进一步计算出最终的推荐结果,如用户浏览某个内容的概率。

2、构建一个基于近数据处理的可扩展且高效的分布式dlrm 训练系统具有以下挑战性。首先,现有的基于内存的nmp解决方案仅支持 dlrm 推理即嵌入层前向传播阶段,并且没有针对 dlrm 训练进行优化。训练过程中嵌入表的操作在前向传递和后向传播之间有所不同,即前向传递中的收集-规约和后向传播中的复制-合并-更新,需要不同的硬件实现并可能引入额外的硬件开销。其次,cpu 和nmp处理单元在 cxl 内存下的不同内存地址空间中运行。cpu 在主机物理地址空间中管理 cxl 设备内存,而nmp处理单元需要设备物理地址来访问它。由于nmp处理单元数量相当多,主机直接管理会导致大量的控制和地址转换开销,从而削弱近内存处理的好处。最后,在 dlrm 训练中,dnn 加速器只有在收到来自嵌入层的结果后才能开始。与本地内存相比,cxl 内存的访问延迟更长,这会推迟 dnn 加速器进程并降低训练吞吐量。因此,现有技术仍然缺乏有效的技术来在 cxl 内存内为 dlrm 训练构建高效的nmp解决方案。


技术实现思路

1、针对现有技术之不足,本发明提供了一种基于近数据处理的分布式推荐方法及系统,旨在解决现有技术中存在的至少一个或多个技术问题。

2、为实现上述目的,本发明的第一方面:提供了一种基于近数据处理的分布式推荐方法,包括以下步骤:

3、(1)首先主机为近内存处理设备分配内存空间,初始化近内存处理设备的内存地址,配置内存控制器;

4、(2)在近内存处理设备上执行嵌入层查找操作,与执行多层感知机mlp的深度神经网络dnn加速器共同完成推荐系统前向传播过程,并计算预测结果;

5、(3)利用预测结果与真实值计算损失,反向传播梯度信息更新参数的权重值;

6、(4)采用预取技术进一步优化推荐系统的训练过程,近内存处理器在前向传播与反向传播之间的空隙,预取下一个批次的嵌入层数据。

7、进一步地,所述步骤(2)包括如下步骤:

8、(2.1)处理单元从内存中检索嵌入向量,存储在输入缓冲区中;

9、(2.2)从部分和缓冲区中读取已计算的部分和;

10、(2.3)在单指令流多数据流simd向量处理器上,使用嵌入向量和部分和计算得到新的部分和;

11、(2.4)根据选择信号,将计算结果存储在部分和缓冲区;

12、(2.5)设备处理器聚合各个近内存处理器的部分和缓冲区中嵌入层的结果;

13、(2.6)嵌入层的聚合结果通过cxl链路传输到dnn加速器;

14、(2.7)dnn加速器使用嵌入层和底部mlp的结果,在顶部mlp计算生成推荐系统最终的预测概率。

15、进一步地,所述步骤(3)包括如下步骤:

16、(3.1)dnn加速器利用预测结果与真实值计算损失,并计算在顶层mlp层的梯度;

17、(3.2)dnn加速器通过cxl链路将梯度传输到近内存处理器;

18、(3.3)再将梯度存储在梯度缓冲区中;

19、(3.4)在simd向量处理器上,使用稀疏长度和、加权和操作,将梯度进行合并计算;

20、(3.5)把更新后的梯度写回内存,完成梯度更新。

21、进一步地,所述步骤(4)包括如下步骤:

22、(4.1)在前向传播的同时,预取下一批次的嵌入层向量;

23、(4.2)使用梯度更新本轮更新且下一批次需要用到的预取数据;

24、(4.3)设定预取数据的更新优先级高于普通权重值,调度保证每次都优先更新预取数据的梯度,生成下一批的输入向量,之后再更新普通嵌入向量的权重;

25、(4.4)对于写回内存的更新后的权重数据,当识别到需要预取时,直接转发到输入缓冲区存储。

26、本发明的第二方面:一种基于近数据处理的分布式推荐系统,该系统用于共同实现或执行所述的基于近数据处理的分布式推荐方法,包括近内存处理器可重用硬件架构模块、高效设备内存管理模块、嵌入向量预取和调度策略模块:

27、所述近内存处理器可重用硬件架构模块,recxl近内存处理器只需要使用3个控制信号,即可在前向传播和后向传播阶段使用同一套硬件资源,避免不同阶段设计带来的额外硬件的开销;

28、所述高效设备内存管理模块,主机端在主机物理地址hpa空间中为每个recxl设备分配一段连续的内存区域,允许主机将recxl设备的数据映射到主机的物理内存空间中,进一步通过操作系统映射到虚拟地址空间中,提供统一的内存管理方式;

29、所述嵌入向量预取和调度策略模块,针对dlrm模型的计算特性设计智能的预取策略,用于缩短近内存处理器等待读取嵌入向量的时间;通过细粒度更新调度,recxl在写回内存的更新数据在下一批次训练中将被使用到时,使用数据转发技术直接将数据存到输入缓冲区,缩短内存访问以及训练所需时间。

30、进一步地,所述高效设备内存管理,具体为:主机端在主机物理地址hpa空间中为每个recxl设备分配一段连续的内存区域,并将其起始地址hpabase通知给nmp设备;nmp设备内部使用获取的hpabase建立hpa到设备物理地址dpa之间的映射关系;hpa减去hpabase的偏移值即为dpa,nmp设备可以定位对应的数据;nmp设备需要向主机发送数据时,只需要用dpa加上hpabase即可得到hpa,从而允许主机将recxl设备的数据映射到主机的物理内存空间中,进一步通过操作系统映射到虚拟地址空间中,提供统一的内存管理方式。

31、进一步地,所述嵌入向量预取策略被配置为:预取时,下一批次的嵌入向量从dram中读取,并存入部分和缓冲区;因为预取的向量中部分向量又恰好在这一批次中被更新,需要使用dnn加速器通过cxl传输的梯度更新对应的嵌入向量,执行预取向量的更新时,将控制信号s1设置为0,s2设置为0,预取的嵌入向量使用simd处理器更新计算,对应操作6;在使用梯度更新嵌入向量时,优先更新用于下一批次的嵌入向量,待下一批次的嵌入向量全部更新完成之后,执行下一批次的训练过程,使用预取的数据执行嵌入层规约操作,将计算的结果通过cxl链路传输给dnn加速器,让dnn加速器尽快开始下一批次的训练,同时nmp加速器开始更新它本批次内尚未使梯度更新的嵌入向量。

32、进一步地,所述嵌入向量调度策略被配置为:在反向传播阶段,使用梯度更新完所有嵌入向量并依次写回内存时,如果某个向量在下一批次中也需要更新,则把控制信号s3设置为1,将更新后的向量直接转发到输入缓冲区,对应操作7;从而消除了下一个批次收集和聚合预取中的一次存储器访问及减少每次训练迭代的延迟。

33、本发明的第三方面:一种电子设备,其特征在于,包括:

34、一个或多个处理器;

35、存储器,用于存储一个或多个程序;

36、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述的一种基于近数据处理的分布式推荐方法。

37、本发明第四方面:一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现所述一种基于近数据处理的分布式推荐方法的步骤。

38、本发明的有益技术效果如下:

39、本发明提供一种基于近数据处理的分布式推荐系统训练的内存加速器recxl,它是一个构建在标准cxl内存技术之上的近内存处理(nmp)架构。与现有的仅支持传统内存扩展或独立硬件处理单元相比,recxl创新地将硬件资源的可重用性、高效的内存管理以及智能的预取和调度策略整合到一个统一的系统中,并进行最小化的硬件修改。硬件可重用硬件架构,recxl根据dlrm模型训练中前向传播和后向传播阶段时间上的不重叠特性,通过仅需的三个控制信号实现了硬件资源在不同阶段的高效复用,减少了硬件成本并提升了系统的性能功耗比。高效设备内存管理方法,recxl利用创新的内存映射技术,在主机物理地址空间中为每个设备分配连续内存区域,并通过起始地址建立高效的hpa到dpa的映射关系,简化了内存管理并提高了访问速度。嵌入向量预取和调度策略,recxl针对dlrm模型的计算特性,设计了智能的预取策略,减少了近内存处理器等待读取嵌入向量的时间,实现了数据预取和处理的并行化,显著提升了系统的整体吞吐量和响应速度。细粒度更新调度,recxl进一步优化了更新流程,通过优先处理预取的嵌入向量,加快了数据的更新速度,减少了训练迭代周期,从而进一步提升了训练效率。

40、综上所述,recxl通过创新的架构和策略,为分布式推荐系统训练提供了一个高效、灵活且具有成本效益的内存加速解决方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1