用于存储器管理的方法和用于机器学习的系统及方法技术方案

技术编号:21893459 阅读:23 留言:0更新日期:2019-08-17 15:07
本发明专利技术涉及一种用于存储器管理的方法和用于机器学习的系统及方法。在一个实施例中,所述方法包括产生依赖关系结构,所述依赖关系结构包含一个或多个任务识别符及一个或多个数据对象识别符。所述依赖关系结构包含对所述一个或多个数据对象识别符中的第一数据对象识别符的一个或多个依赖关系的列表,所述列表的第一依赖关系识别以由所述第一数据对象识别符识别的数据对象作为输入的第一任务。所述方法进一步包括计数对所述第一数据对象识别符的依赖关系的数目,当所述第一任务完成执行时将所述计数递减1,且当所述计数达到零时将所述第一数据对象解除分配。

Methods for memory management and systems and methods for machine learning

【技术实现步骤摘要】
用于存储器管理的方法和用于机器学习的系统及方法
根据本专利技术的实施例的一个或多个方面涉及存储器管理,且更具体来说,涉及一种用于为机器学习而管理存储器的系统及方法。
技术介绍
机器学习(machinelearning,ML)当在图形处理器(graphicsprocessingunit,GPU)上执行时可遭受与GPU存储器相关的性能瓶颈。因此,当某些数据对象对于有待执行的计算来说不再被需要时,如果存储器仍被不必要地分配给那些数据对象,则性能可能会受到影响。因此,需要一种改善的存储器管理系统及方法。
技术实现思路
根据本专利技术的实施例,提供一种用于存储器管理的方法,包括:产生依赖关系结构(dependencystructure),所述依赖关系结构包含一个或多个任务识别符及一个或多个数据对象识别符,所述依赖关系结构包含对所述一个或多个数据对象识别符中的第一数据对象识别符的一个或多个依赖关系的列表,所述列表的第一依赖关系识别以由所述第一数据对象识别符识别的第一数据对象作为输入的第一任务;确定计数,所述计数是对所述第一数据对象识别符的依赖关系的数目;确定所述第一任务已完成执行;至少部分地基于确定所述第一任务已完成执行而将所述计数递减1;确定所述计数小于第一阈值;以及至少部分地基于确定所述计数小于所述第一阈值而将所述第一数据对象解除分配。在一个实施例中,所述第一阈值是1。在一个实施例中,所述方法包括确定与所述第一任务相关联的依赖关系的数目。在一个实施例中,所述第一任务是神经网络的第一层中的计算运算。在一个实施例中,所述第一数据对象是所述第一层中的激活(activation)。在一个实施例中,所述第一任务包括在反向推算(backwardpass)期间:计算所述激活中的梯度;以及计算权重中的梯度。在一个实施例中,所述第一数据对象是所述第一层中的输入梯度。在一个实施例中,所述第一任务包括在反向推算期间:计算激活中的梯度;以及计算权重中的梯度。在一个实施例中,所述第一数据对象是所述第一层中的权重梯度。在一个实施例中,所述第一任务包括对与所述权重梯度对应的权重执行就地更新(in-placeupdate)。在一个实施例中,所述方法包括:产生零个或更多个推算内存留(pass-persistent)数据对象识别符的列表,所述零个或更多个推算内存留数据对象识别符中的第一推算内存留数据对象识别符识别神经网络中的第一数据对象;确定反向推算已完成;以及基于确定所述反向推算已完成而将所述第一数据对象解除分配。在一个实施例中,所述第一数据对象是神经网络的第一层的激活。在一个实施例中,所述方法包括:产生零个或更多个训练内存留(training-persistent)数据对象识别符的列表,第一训练内存留数据对象识别符识别神经网络中的第一数据对象,确定所述神经网络的训练已完成,以及基于确定所述神经网络的训练已完成而将所述第一数据对象解除分配。在一个实施例中,所述第一数据对象是神经网络的第一层中的权重。根据本专利技术的实施例,提供一种用于机器学习的系统,所述系统包括:图形处理器及连接到所述图形处理器的存储器,所述图形处理器被配置成:调用非复用检测器(noreusedetector);以及在调用所述非复用检测器之后,启动图形处理器内核,所述非复用检测器被配置成:识别第一数据对象,所述第一数据对象具有至少由以所述数据对象作为输入的一个或多个任务界定的存留期(persistence);产生依赖关系结构,所述依赖关系结构包含识别所述第一数据对象的第一数据对象识别符、以及所述一个或多个任务中以所述数据对象作为输入的第一任务;确定计数,所述计数是对所述第一数据对象识别符的依赖关系的数目;确定所述第一任务已完成执行;至少部分地基于确定所述第一任务已完成执行而将所述计数递减1;确定所述计数小于第一阈值;以及至少部分地基于确定所述计数小于所述第一阈值而将所述第一数据对象解除分配。在一个实施例中,所述第一阈值是1。在一个实施例中,所述第一任务是神经网络的第一层中的计算运算。在一个实施例中,所述第一数据对象是所述第一层中的激活。在一个实施例中,所述第一任务包括在反向推算期间:计算所述激活中的梯度;以及计算权重中的梯度。根据本专利技术的实施例,提供一种用于机器学习的方法,所述方法包括:为神经网络中的第一数据对象分配存储器;确定所述第一数据对象具有至少由以所述第一数据对象作为输入的一个或多个任务界定的存留期;确定以所述第一数据对象作为输入的所述一个或多个任务中的最后一个已完成执行;以及基于确定以所述第一数据对象作为输入的所述一个或多个任务中的所述最后一个已完成执行且基于确定所述第一数据对象具有至少由以所述第一数据对象作为输入的所述一个或多个任务界定的存留期而将所述第一数据对象解除分配。在一个实施例中,所述方法包括:为所述神经网络中的第二数据对象分配存储器;确定所述第二数据对象具有由反向推算的完成界定的存留期;以及基于确定所述第二数据对象具有由所述反向推算的所述完成界定的存留期而在所述反向推算的完成时将所述第二数据对象解除分配。在一个实施例中,所述方法包括:为所述神经网络中的第三数据对象分配存储器;确定所述第三数据对象具有由所述神经网络的训练的完成界定的存留期;以及基于确定所述第三数据对象具有由所述神经网络的训练的完成界定的存留期而在所述神经网络的训练的完成时将所述第三数据对象解除分配。附图说明参照说明书、权利要求书及附图,将了解及理解本专利技术的这些以及其他特征及优点,附图中:图1是根据本专利技术实施例的流程图。图2是根据本专利技术实施例的有向非循环图的图示。图3是根据本专利技术实施例的正向推算(forwardpass)的数据流程图。图4是根据本专利技术实施例的反向推算的数据流程图。图5A是根据本专利技术实施例的矢量和图。图5B是根据本专利技术实施例的数据流程图。[符号的说明]100:GPU存储器;105:慢速系统存储器;110:机器学习执行引擎;115:机器学习存储器管理器;120:非复用检测器;A、B、C、D、E:数据对象;dE:误差梯度;dWx:权重梯度/原始梯度;dWy:梯度/输入/权重梯度;dX、dY:梯度;dZ:损失梯度/输入/输入梯度/梯度;E:误差;mWx:滑动平均值;mWx*:经更新的滑动平均值;Wx、Wx*、Wy*:权重;Wy:权重/输入;X:数据对象/输入;Y:输出/输入/激活;Z:输出/所预测输出/输入/数据对象;Z*:真实输出。具体实施方式以下结合附图所述的详细说明旨在作为对根据本专利技术所提供的用于为机器学习而管理存储器的系统及方法的示例性实施例的说明,而非旨在表示其中可构造或利用本专利技术的仅有形式。所述说明结合所示的实施例陈述本专利技术的特征。然而,应理解,可通过也旨在涵盖于本专利技术的范围内的不同实施例来实现相同的或等效的功能及结构。如本文中别处所示,相同的元件编号旨在指示相同的元件或特征。在一些相关技术系统中,在机器学习训练期间为数据对象分配存储器,且所述数据对象存留至其被释放为止,并且所述数据对象中的一些数据对象被高速缓存在GPU存储器中。一旦GPU存储器达到其最大容量,系统便在操作系统(operatingsystem,OS)级上将分配在GPU上的数据对象以页粒度(pagegranu本文档来自技高网...

【技术保护点】
1.一种用于存储器管理的方法,包括:产生依赖关系结构,所述依赖关系结构包含一个或多个任务识别符及一个或多个数据对象识别符,所述依赖关系结构包含对所述一个或多个数据对象识别符中的第一数据对象识别符的一个或多个依赖关系的列表,所述列表的第一依赖关系识别以由所述第一数据对象识别符识别的第一数据对象作为输入的第一任务;确定计数,所述计数是对所述第一数据对象识别符的依赖关系的数目;确定所述第一任务已完成执行;至少部分地基于确定所述第一任务已完成执行而将所述计数递减1;确定所述计数小于第一阈值;以及至少部分地基于确定所述计数小于所述第一阈值而将所述第一数据对象解除分配。

【技术特征摘要】
2018.02.02 US 62/625,530;2018.04.09 US 15/948,7061.一种用于存储器管理的方法,包括:产生依赖关系结构,所述依赖关系结构包含一个或多个任务识别符及一个或多个数据对象识别符,所述依赖关系结构包含对所述一个或多个数据对象识别符中的第一数据对象识别符的一个或多个依赖关系的列表,所述列表的第一依赖关系识别以由所述第一数据对象识别符识别的第一数据对象作为输入的第一任务;确定计数,所述计数是对所述第一数据对象识别符的依赖关系的数目;确定所述第一任务已完成执行;至少部分地基于确定所述第一任务已完成执行而将所述计数递减1;确定所述计数小于第一阈值;以及至少部分地基于确定所述计数小于所述第一阈值而将所述第一数据对象解除分配。2.根据权利要求1所述的方法,其中所述第一阈值是1。3.根据权利要求1所述的方法,还包括确定与所述第一任务相关联的依赖关系的数目。4.根据权利要求1所述的方法,其中所述第一任务是神经网络的第一层中的计算运算。5.根据权利要求4所述的方法,其中所述第一数据对象是所述第一层中的激活。6.根据权利要求5所述的方法,其中所述第一任务包括在反向推算期间:计算所述激活中的梯度;以及计算权重中的梯度。7.根据权利要求4所述的方法,其中所述第一数据对象是所述第一层中的输入梯度。8.根据权利要求7所述的方法,其中所述第一任务包括在反向推算期间:计算激活中的梯度;以及计算权重中的梯度。9.根据权利要求4所述的方法,其中所述第一数据对象是所述第一层中的权重梯度。10.根据权利要求9所述的方法,其中所述第一任务包括对与所述权重梯度对应的权重执行就地更新。11.根据权利要求1所述的方法,还包括:产生零个或更多个推算内存留数据对象识别符的列表,第一推算内存留数据对象识别符识别神经网络中的第一数据对象;确定反向推算已完成;以及基于确定所述反向推算已完成而将所述第一数据对象解除分配。12.根据权利要求11所述的方法,其中所述第一数据对象是神经网络的第一层的激活。13.根据权利要求1所述的方法,还包括:产生零个或更多个训练内存留数据对象识别符的列表,第一训练内存留数据对象识别符识别神经网络中的第一数据对象,确定所述神经网络的训练已完成,以及基于确定所述神经网络的训练已完成而将所述第一数据对象解除分配。14.根据权利要求13所述的方法...

【专利技术属性】
技术研发人员:李周桓奇亮奭
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

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

1