[发明专利]用于对物理内存池进行分配管理的方法及装置、物理内存池在审
申请号: | 202110777376.3 | 申请日: | 2021-07-09 |
公开(公告)号: | CN113485832A | 公开(公告)日: | 2021-10-08 |
发明(设计)人: | 赵军平 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/06 |
代理公司: | 北京永新同创知识产权代理有限公司 11376 | 代理人: | 林锦辉;刘景峰 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 物理 内存 进行 分配 管理 方法 装置 | ||
1.一种用于对物理内存池进行分配管理的方法,其中,所述物理内存池由系统中的GPU显存和其他物理内存构成,所述物理内存池的管理结构信息包括已释放内存对象集和已分配内存对象集,其中,所述已释放内存对象集包括所述物理内存池中经过分配后当前已释放的空闲内存对象,所述已分配内存对象集包括所述物理内存池中已分配且当前在使用的内存对象,
所述方法包括:
响应于请求指定容量的内存,在所述已释放内存对象集中查询是否存在所述指定容量的内存对象;
若存在,对所查询到的所述指定容量的内存对象进行分配;以及
将所分配的内存对象从所述已释放内存对象集中删除,并增加至所述已分配内存对象集。
2.如权利要求1所述的方法,还包括:
在所述已释放内存对象集中不存在所述指定容量的内存对象时,在所述物理内存池的未分配内存中分配所述指定容量的内存对象;以及
将所分配的内存对象增加至所述已分配内存对象集。
3.如权利要求2所述的方法,还包括:
在所述未分配内存的容量小于所述指定容量时,对所述已释放内存对象集中容量大于所述指定容量的内存对象进行分配;以及
将所分配的内存对象从所述已释放内存对象集中删除,并增加至所述已分配内存对象集。
4.如权利要求3所述的方法,其中,所述管理结构信息还包括内存对象容量信息,所述内存对象容量信息用于记录所述已释放内存对象集和所述已分配内存对象集中的内存对象容量,
在所述未分配内存的容量小于所述指定容量时,对所述已释放内存对象集中容量大于所述指定容量的内存对象进行分配包括:
在所述未分配内存的容量小于所述指定容量时,使用所述内存对象容量信息查询所述已释放内存对象集中容量大于所述指定容量且与所述指定容量的容量差最小的已释放内存对象;以及
对所查询到的已释放内存对象进行分配。
5.如权利要求1所述的方法,其中,所述方法应用于深度学习,
响应于请求指定容量的内存,在所述已释放内存对象集中查询是否存在所述指定容量的内存对象包括:
在所述深度学习的第一轮循环时,响应于请求指定容量的内存,在所述已释放内存对象集中查询是否存在所述指定容量的内存对象。
6.如权利要求5所述的方法,还包括:
针对所述深度学习在第一轮循环后的每一轮循环,复用所述第一次循环中分配的内存对象和/或内存对象中的数据。
7.如权利要求5所述的方法,其中,所述物理内存池被配置成静态内存区域和动态内存区域,
所述静态内存区域用于为所述深度学习中被频繁访问且小于指定大小的第一数据分配内存对象,所述静态内存区域被配置在所述物理内存池的GPU显存中;
所述动态内存区域用于为所述深度学习中除所述第一数据以外的其他数据分配内存对象。
8.如权利要求7所述的方法,其中,所述动态内存区域包括用于为多次使用的数据分配内存对象的第一动态内存区域和用于为一次性数据分配内存对象的第二动态内存区域。
9.如权利要求8所述的方法,其中,在物理内存池中,所述静态内存区域与所述动态内存区域相邻;
所述动态内存区域的起始地址端是所述第一动态内存区域的起始地址端,所述动态内存区域的结束地址端是所述第二动态内存区域的结束地址端;或者,所述动态内存区域的起始地址端是所述第二动态内存区域的起始地址端,所述动态内存区域的结束地址端是所述第一动态内存区域的结束地址端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110777376.3/1.html,转载请声明来源钻瓜专利网。