一种内存管理方法、装置、异构系统、存储介质和程序产品与流程

    技术2025-01-15  41


    本发明涉及计算机,尤其涉及一种内存管理方法、装置、异构系统、存储介质和程序产品。


    背景技术:

    1、随着人工智能、大数据等应用的迅猛发展,带来对多样化海量数据计算能力及时效性的更高要求,需要巨大算力进行计算支撑。受硬件架构、通信总线等技术工艺的限制,传统通用中央处理器(cpu,central processing unit)的计算能力趋于饱和。因此,为了提高计算性能、增加系统的灵活性和适应性,从而满足不同计算任务的需求,计算系统向异构化、并行化发展。其中,异构化指的是在计算系统中使用有别于cpu架构的处理器和加速器来优化执行特定的计算任务,例如图形处理器(gpu,graphics processing unit)、数字信号处理器(dsp,digital signal processor)和张量处理器(tpu,tensor processingunit),这些处理器(或加速器)在特定任务上具有更高的性能和效率。通过将任务分配给适合执行的处理器和加速器,异构计算系统能够更好地利用硬件资源,并提高整体的计算性能。并行化是指将计算任务分解为多个子任务,并同时互联多个处理器节点或加速器节点形成分布式并行系统,在其上执行这些子任务。通过将任务分发到多个计算节点上,可以同时处理多个子任务,从而加速整个计算过程。

    2、目前,异构系统的内存模型技术方案中,内存配置通常是在应用程序编码设计、启动或初始化时便已经被确定的,极大增加了编程复杂性的同时,由于这种相对静态的内存配置及运用方式,无法对于不同计算负载和不同类型加速器系统内存模式进行动态调整,且为了完全支持同一应用程序对多个不同类型加速器内存区域的访问,需要不同的软件构造,使得难以实现混合异构系统间的数据共享、一致性内存访问以及处理器之间的保护。同时,异构系统中不同设备具有不同的内存特性和访问延迟,静态的内存模型可能导致功能及性能瓶颈,如果内存配置不合理,可能会导致数据无法在不同内存之间共享迁移,或极大增加访问延迟和数据传输开销。


    技术实现思路

    1、为解决现有存在的技术问题,本发明实施例提供一种内存管理方法、装置、异构系统、存储介质和程序产品。

    2、为达到上述目的,本发明实施例的技术方案是这样实现的:

    3、第一方面,本发明实施例提供一种内存管理方法,包括:

    4、获取应用程序的访存请求,基于所述访存请求在第一地址空间为所述应用程序分配至少一个内存页;所述第一地址空间为根据异构系统中的至少一个节点的内存创建的虚拟地址空间,所述第一地址空间包括多个内存页,每个内存页用于指示所述第一地址空间中固定大小的地址空间;

    5、将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧;所述第二地址空间包括多个内存页帧,每个内存页帧用于对应的节点进行内存寻址。

    6、上述方案中,所述将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧,包括:基于第一内存页表将每个内存页映射至相应的内存页帧;其中,所述第一内存页表中记录有所述第一地址空间中每个内存页与所述第二地址空间中相应内存页帧之间的映射。

    7、上述方案中,所述第一内存页表包括至少一个条目,每个条目与所述第一地址空间中相应内存页的索引相关;所述基于第一内存页表将每个内存页映射至相应的内存页帧,包括:根据第一内存页对应的第一索引确定所述第一内存页表中的第一条目,基于所述第一条目将所述第一内存页映射至第一内存页帧;其中,所述第一内存页为所述至少一个内存页中的任一内存页,所述第一条目用于指示所述第一内存页和所述第二地址空间中的第一内存页帧之间的映射。

    8、上述方案中,所述方法还包括:获取所述至少一个节点的内存信息,基于所述内存信息创建所述第一地址空间和/或所述第二地址空间;所述内存信息至少包括以下其中之一:节点的设备类型、节点的内存结构、节点在操作系统中注册的地址空间。

    9、上述方案中,所述方法还包括:在所述第二地址空间中的第二内存页帧所关联的内存未被使用的情况下,将所述第二内存页帧存储在第一内存表中;所述第二内存页帧为所述第二地址空间中的任一内存页帧。

    10、上述方案中,所述第一地址空间中每个内存页对应的最后一级页表项包括第一字段和/或第二字段,其中,所述第一字段用于指示对应的内存页的存在情况;所述第二字段用于指示对应的内存页映射至内存页帧的策略。

    11、上述方案中,所述第一字段的不同取值至少用于表征以下信息中的至少一种:对应的内存页仅存在于所述异构系统的处理器中;对应的内存页仅存在于所述异构系统的加速器中;对应的内存页存在于处理器和加速器的共享区域;和/或,所述第二字段的不同取值至少用于表征以下信息中的至少一种:按照预设策略进行映射;按照应用程序中承载的策略进行映射;仅支持在所述异构系统的处理器中映射;仅支持在所述异构系统的加速器中映射。

    12、上述方案中,所述第一地址空间通过至少一个内存大页进行管理,每个内存大页均包括多个内存子域;其中,每个所述内存大页均具有关联的第一缓存信息,所述第一缓存信息至少用于记录所述多个内存子域之间的映射连续性信息。

    13、上述方案中,所述第一地址空间还关联第二内存表,所述第二内存表用于缓存所述第一地址空间中的内存页与所述第二地址空间中的内存页帧之间的映射信息;所述第二内存表中的每个页表项均包括第三字段和/或第四字段;其中,所述第三字段用于指示对应的页表项的存在情况;所述第四字段用于指示对应的页表项的适用范围。

    14、上述方案中,所述第三字段的不同取值至少用于表征以下信息中的至少一种:对应的页表项仅存在于所述异构系统的处理器中;对应的页表项仅存在于所述异构系统的加速器中;对应的页表项存在于处理器和加速器的共享区域;和/或,所述第四字段的不同取值至少用于表征以下信息中的至少一种:对应的页表项在所述异构系统中共享;对应的页表项仅在节点中共享。

    15、上述方案中,所述应用程序的二进制代码中包括第一区段,所述第一区段用于承载内存映射的策略信息。

    16、第二方面,本发明实施例还提供一种内存管理装置,包括获取模块、分配模块和映射模块;其中,

    17、所述获取模块,用于获取应用程序的访存请求;

    18、所述分配模块,用于基于所述访存请求在第一地址空间为所述应用程序分配至少一个内存页;所述第一地址空间为根据异构系统中的至少一个节点的内存创建的虚拟地址空间,所述第一地址空间包括多个内存页,每个内存页用于指示所述第一地址空间中固定大小的地址空间;

    19、所述映射模块,用于将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧;所述第二地址空间包括多个内存页帧,每个内存页帧用于对应的节点进行内存寻址。

    20、第三方面,本发明实施例还提供一种异构系统,所述异构系统包括通信连接的至少一个节点,每个节点均包括对应的内存控制器;所述内存控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述第一方面所述方法的步骤。

    21、第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述第一方面所述方法的步骤。

    22、第五方面,本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述第一方面所述方法的步骤。

    23、本发明实施例提供的内存管理方法、装置、异构系统、存储介质和程序产品,基于应用程序的访存请求在第一地址空间为应用程序分配至少一个内存页,并将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧,用于异构系统中对应的节点进行内存寻址,相较于相关技术,可对异构系统中存在的不同类型的异构内存模型进行统一类型的数据处理,可解决由于异构系统中不同类型内存模型访存机制不同、性能延时有差异而无法互用的问题,能够实现由统一的第一地址空间向原先各类不兼容的第二地址空间的转换,有效地形成应用程序可连续寻址的统一共享内存空间,使得应用程序可以向访问主内存一样访问其他类型的内存,达到简化编程模型的效果,降低了为混合异构系统编程的难度,开发者可以更方便地利用不同类型的处理器或加速器,更高效地为混合异构系统开发并行计算应用。


    技术特征:

    1.一种内存管理方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧,包括:

    3.根据权利要求2所述的方法,其特征在于,所述第一内存页表包括至少一个条目,每个条目与所述第一地址空间中相应内存页的索引相关;所述基于第一内存页表将每个内存页映射至相应的内存页帧,包括:

    4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    6.根据权利要求1所述的方法,其特征在于,所述第一地址空间中每个内存页对应的最后一级页表项包括第一字段和/或第二字段,其中,所述第一字段用于指示对应的内存页的存在情况;所述第二字段用于指示对应的内存页映射至内存页帧的策略。

    7.根据权利要求6所述的方法,其特征在于,所述第一字段的不同取值至少用于表征以下信息中的至少一种:

    8.根据权利要求1所述的方法,其特征在于,所述第一地址空间通过至少一个内存大页进行管理,每个内存大页均包括多个内存子域;其中,每个所述内存大页均具有关联的第一缓存信息,所述第一缓存信息至少用于记录所述多个内存子域之间的映射连续性信息。

    9.根据权利要求1所述的方法,其特征在于,所述第一地址空间还关联第二内存表,所述第二内存表用于缓存所述第一地址空间中的内存页与所述第二地址空间中的内存页帧之间的映射信息;所述第二内存表中的每个页表项均包括第三字段和/或第四字段;其中,所述第三字段用于指示对应的页表项的存在情况;所述第四字段用于指示对应的页表项的适用范围。

    10.根据权利要求9所述的方法,其特征在于,所述第三字段的不同取值至少用于表征以下信息中的至少一种:

    11.根据权利要求1至10任一项所述的方法,其特征在于,所述应用程序的二进制代码中包括第一区段,所述第一区段用于承载内存映射的策略信息。

    12.一种内存管理装置,其特征在于,所述装置包括获取模块、分配模块和映射模块;其中,

    13.一种异构系统,其特征在于,所述异构系统包括通信连接的至少一个节点,每个节点均包括对应的内存控制器;所述内存控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至11任一项所述方法的步骤。

    14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至11任一项所述方法的步骤。

    15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现权利要求1至11任一项所述方法的步骤。


    技术总结
    本发明实施例公开了一种内存管理方法、装置、异构系统、存储介质和程序产品,所述方法包括:获取应用程序的访存请求,基于所述访存请求在第一地址空间为所述应用程序分配至少一个内存页;所述第一地址空间为根据异构系统中的至少一个节点的内存创建的虚拟地址空间,所述第一地址空间包括多个内存页,每个内存页用于指示所述第一地址空间中固定大小的地址空间;将所述至少一个内存页分别映射至第二地址空间中的相应内存页帧;所述第二地址空间包括多个内存页帧,每个内存页帧用于对应的节点进行内存寻址。

    技术研发人员:解子岩,张昊,赵奇慧,刘景磊,王升
    受保护的技术使用者:中国移动通信有限公司研究院
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-25021.html

    最新回复(0)