版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A,2018.11.23A,2019.05.28行内存分配,而且还能够有效提高内存的利用2获取训练数据中张量申请和释放请求,其中,所述张量申请和释根据所述目标张量大小确定与所述目标张量大小对应的目标内存地址链表块,其中,确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突的缓当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存6.根据权利要求5所述的方法,其特征在于,所述响应于检测到张量内存分配失败事3响应于检测到张量内存分配失败事件,根据获取训练数据中张量申请和释放请求,其中,所述张量申请和释根据所述目标张量大小确定与所述目标张量大小对应的目标内存地址链表块,其中,确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突的缓根据所述内存分配信息对于内存池分配器进行初始化,并基于当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块4将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存响应于检测到张量内存分配失败事件,根据获取训练数据中的张量内存统计信息,所述张量内存统计根据所述目标张量大小确定与所述目标张量大小对应的目标内存地址链表块,其中,5确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突的缓当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存响应于检测到张量内存分配失败事件,根据6量信息插入至所述缓存块中,并根据所述预设遍历顺序确定下一目标张量信息进行处理;响应于所述张量内存统计信息遍历结束,将当前内存地址链表块信息确定为内存分配信当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存第一再分配模块,被配置为响应于检测到张量内存分配失第二确定子模块,被配置为响应于检测到张量内存分配失失败张量大小确定与所述内存分配失败张量大小对应的候选第二分配子模块,被配置为当所述候选内存地址链表块7述第一头信息中存储有所述空闲缓存块所在的内存地第三分配子模块,被配置为当所述候选内存地址链表块中不存第一释放模块,被配置为响应于检测到张量内存释放命令,第一获取子模块,被配置为响应于检测到张量内存释放命第一插入模块,被配置为确定预设遍历顺序,根据所述第二分配模块,被配置为根据所述内存分配信息对于内存池当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块8将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存第二再分配模块,被配置为响应于检测到张量内存分配失第四确定子模块,被配置为响应于检测到张量内存分配失失败张量大小确定与所述内存分配失败张量大小对应的候选第四分配子模块,被配置为当所述候选内存地址链表块述第一头信息中存储有所述空闲缓存块所在的内存地第五分配子模块,被配置为当所述候选内存地址链表块中不存第二释放模块,被配置为响应于检测到张量内存释放命令,第二获取子模块,被配置为响应于检测到张量内存释放命第三获取模块,被配置为获取训练数据中的张量内存统第二插入模块,被配置为确定预设遍历顺序,根据所述确定模块,被配置为响应于所述张量内存统计信息遍历结束9当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓存块将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存地址将所述内存地址间隔乘以所述所需内存地址间隔数量得到目标将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存第三再分配模块,被配置为响应于检测到张量内存分配失第六确定子模块,被配置为响应于检测到张量内存分配失失败张量大小确定与所述内存分配失败张量大小对应的候选第六分配子模块,被配置为当所述候选内存地址链表块述第一头信息中存储有所述空闲缓存块所在的内存地第七分配子模块,被配置为当所述候选内存地址链表块中不存所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条述处理器执行以实现权利要求1-20任一项所述的处理器执行时实现权利要求1-20任一项所述的[0003]现有技术中对于CPU的内存管理方案包括通用的Malloc库管理内存方案、[0016]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0017]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0018]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0022]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0024]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链述内存分配失败张量大小对应的候选内存地的第六种实现方式和第一方面的第七种实现方式,本公开在第一方面的第八种实现方式[0048]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0049]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0050]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0054]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0056]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链述内存分配失败张量大小对应的候选内存地[0077]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0078]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0079]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0082]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0084]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链述内存分配失败张量大小对应的候选内存地[0103]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0104]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0105]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0109]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0111]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链分配失败张量大小确定与所述内存分配失败张量大小对应的[0119]第三确定子模块,被配置为确定所述候选内存地址链表块中是否存在空闲缓存[0121]第三分配子模块,被配置为当所述候选内存地址链表块的第六种实现方式和第四方面的第七种实现方式,本公开在第四方面的第八种实现方式[0131]第二分配模块,被配置为根据所述内存分配信息对于内[0135]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0136]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0137]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0141]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0143]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链分配失败张量大小确定与所述内存分配失败张量大小对应的[0148]第五确定子模块,被配置为确定所述候选内存地址链表块中是否存在空闲缓存[0150]第五分配子模块,被配置为当所述候选内存地址链表块插入至与张量大小对应的目标内存地址链表块的缓[0164]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0165]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0166]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0169]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0171]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链分配失败张量大小确定与所述内存分配失败张量大小对应的[0176]第七确定子模块,被配置为确定所述候选内存地址链表块中是否存在空闲缓存[0178]第七分配子模块,被配置为当所述候选内存地址链表块述内存分配信息进行后续的张量内存分配。该技术方案不仅适用于小块内存的分配和管[0200]图16示出根据图14所示实施方式的内存管理装置的第一分配模块1403的结构框[0202]图18示出根据图17所示实施方式的内存管理装置的第一再分配模块1704的结构[0204]图20示出根据图19所示实施方式的内存管理装置的第一释放模块1905的结构框[0208]图24是适于用来实现根据本发明一实施方式的内存管理方法的计算机系统的结[0212]本发明实施例提供的技术方案基于具有代表性的训练数据训练得到内存分配信是制约深度学习性能优劣的关键因素,目前对于内存管理的优化研究主要集中在GPU显存[0218]现有技术中对于CPU的内存管理方案包括通用的Malloc库管理内存方案、[0220]考虑到虽然深度学习任务的一个小批量数据(mini-batch)中需要的内存块的周批量数据。其中,实际参与所述内存分配信息训练的是所述训练数据中产生的对于张量[0232]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0233]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0234]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓来确定所述目标张量信息是否可以插入至所述[0239]然后根据上文所提及的生存期比较来确定所述目标内存地址链表块中是否存在[0241]若所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓块信息确定为所述内存分配信息,所述内存分配信息可被用于对于其他数据执行内存分[0246]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0248]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链[0249]为了在满足目标张量大小需求的情况下,充分利用内存[0250]比如,若所述内存地址间隔设置为4KB,所述目标张量大小为33KB,33KB/4KB=链表块中有两个缓存块,那么就可在所述内存池分配器的缓存中初始化2个36KB大小的缓存用于对应到该内存地址链表块大小的所有张量的[0255]在本发明一实施方式中,所述方法还包括响应于检测到[0260]考虑到由于某些可变的稀疏张量可能会导致根据所述内存分配信息确定的缓存设内存再分配规则对于内存分配失败的张量量大小确定与所述内存分配失败张量大小对应的候选内述内存分配失败张量大小确定与所述内存分配失败张量大小对应的候选内存地址链表块,其中,所述候选内存地址链表块的确定方法可参考上文目标内存地址链表块的确定方法,[0279]上文提及,所述头信息用于标识所述内存分配失败张量中,首先确定训练数据并获取训练数据中的张量申请和释放请求对应的张量内存统计信分配器的缓存进行初始化时,就可在所述内存池分配器中初始化出3个36KB大小的缓存用于对应到该内存地址链表块大小的所有张量的内存申请,初始化出2个40KB大小的缓存用于对应到该内存地址链表块大小的所有张量的内存申请,初始化出2个48KB大小的缓存用于对应到该内存地址链表块大小的所有张量[0290]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0291]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0292]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0297]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0299]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链[0300]为了在满足目标张量大小需求的情况下,充分利用内存[0301]考虑到由于某些可变的稀疏张量可能会导致根据所述内存分配信息确定的缓存述内存分配失败张量大小对应的候选内存地分配失败张量大小直接向操作系统申请内存分配,并为申请得到的内存填充第二头信息,[0312]上文提及,所述头信息用于标识所述内存分配失败张量内存地址链表块的某个缓存块中,则将释放的内存信息归还给该内存地址链表块的缓存[0321]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0322]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0323]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓[0327]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0329]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链[0330]为了在满足目标张量大小需求的情况下,充分利用内存[0331]考虑到由于某些可变的稀疏张量可能会导致根据所述内存分配信息确定的缓存述内存分配失败张量大小对应的候选内存地分配失败张量大小直接向操作系统申请内存分配,并为申请得到的内存填充第二头信息,[0338]图12-图13所示实施方式中的技术特征与上文图1-图11所示实施方式中的技术特是制约深度学习性能优劣的关键因素,目前对于内存管理的优化研究主要集中在GPU显存[0345]现有技术中对于CPU的内存管理方案包括通用的Malloc库管理内存方案、[0347]考虑到虽然深度学习任务的一个小批量数据(mini-batch)中需要的内存块的周批量数据。其中,实际参与所述内存分配信息训练的是所述训练数据中产生的对于张量[0353]训练子模块1502,被配置为根据所述预设遍历顺序遍历[0359]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0360]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0361]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓来确定所述目标张量信息是否可以插入至所述[0367]然后根据上文所提及的生存期比较来确定所述目标内存地址链表块中是否存在中存储的内存空间对于所述目标张量信息来说[0369]若所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓块信息确定为所述内存分配信息,所述内存分配信息可被用于对于其他数据执行内存分[0374]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0376]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链[0377]为了在满足目标张量大小需求的情况下,充分利用内存[0378]比如,若所述内存地址间隔设置为4KB,所述目标张量大小为33KB,33KB/4KB=[0381]第一分配子模块1602,被配置为基于初始化后的内存池分配器进行张量内存分缓存中初始化2个36KB大小的缓存用于对应到该内存地址链表块大小的所有张量的内存申[0383]在本发明一实施方式中,所述装置还包括响应于检测到[0388]考虑到由于某些可变的稀疏张量可能会导致根据所述内存分配信息确定的缓存配模块1704则按照预设内存再分配规则对于内存分配失败的张[0393]第二分配子模块1803,被配置为当所述候选内存地址链表块中存在空闲缓存块据所述内存分配失败张量大小确定与所述内存分配失败张量大小对应的候选内存地址链放模块1905即可按照预设内存释放规则对于所占用的内存[0407]上文提及,所述头信息用于标识所述内存分配失败张量[0416]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0417]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0418]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓一插入模块2102采用遍历试探的方式基于所述张量内存统计信[0423]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0425]将与所述目标内存地址大小对应的内存地址链表块确定为所述目标内存地址链[0426]为了在满足目标张量大小需求的情况下,充分利用内存[0427]考虑到由于某些可变的稀疏张量可能会导致根据所述内存分配信息确定的缓存分配失败张量大小确定与所述内存分配失败张量大小对应的[0430]第五确定子模块,被配置为确定所述候选内存地址链表块中是否存在空闲缓存[0432]第五分配子模块,被配置为当所述候选内存地址链表块述内存分配失败张量大小确定与所述内存分配失败张量大小对应的候选内存地址链表块,其中,所述候选内存地址链表块的确定方法可参考上文目标内存地址链表块的确定方法,[0438]上文提及,所述头信息用于标识所述内存分配失败张量信息插入至与张量大小对应的目标内存地址[0447]确定所述目标内存地址链表块中是否存在与所述目标张量信息不产生预设冲突[0448]当所述目标内存地址链表块中存在与所述目标张量信息不产生预设冲突的缓存块时,将所述目标张量信息插入至所述与所述目标张量信息不产生预设冲突的缓存块中,并根据所述预设遍历顺序确定下一目标张量信[0449]当所述目标内存地址链表块中不存在与所述目标张量信息不产生预设冲突的缓二插入模块2202采用遍历试探的方式基于所述张量内存统计信[0453]将所述目标张量大小除以所述内存地址间隔得到的结果向上取整得到所需内存[0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学高年级教师奖惩制度
- 2026年财务人员外汇结算业务培训方案
- 2026年宁波市海曙区社区工作者招聘考试真题(附答案)
- 佛山市辅警招聘考试题库及答案
- 风湿病表现及护理技巧介绍
- 心理学故事科普
- web前端行业前景介绍
- 健康评估心理社会评估
- 潮州市专职消防员招聘考试题及答案
- 常德市护士招聘面试题及答案
- 2026湖南益阳职业技术学院招聘事业单位人员6人备考题库及答案详解(新)
- 2025浙江中国绍兴黄酒集团有限公司招聘11人笔试参考题库附带答案详解
- 【新教材】人教版八年级生物下册实验01 鸟卵适于在陆地上发育的结构特征(教学课件)
- 收费员心理健康培训课件
- 2026年江西财经大学MBA教育学院面试题库含答案
- 《高中生科技创新活动与综合素质评价研究》教学研究课题报告
- GB/T 35351-2025增材制造术语
- DB32/T 3545.2-2020血液净化治疗技术管理第2部分:血液透析水处理系统质量控制规范
- 烧伤浸浴治疗
- 电影鉴赏评论知到智慧树章节测试课后答案2024年秋山东艺术学院
- 数值分析知到智慧树章节测试课后答案2024年秋上海财经大学
评论
0/150
提交评论