CN117573397A - 内存优化方法、系统和存储介质 - Google Patents

内存优化方法、系统和存储介质 Download PDF

Info

Publication number
CN117573397A
CN117573397A CN202410058230.7A CN202410058230A CN117573397A CN 117573397 A CN117573397 A CN 117573397A CN 202410058230 A CN202410058230 A CN 202410058230A CN 117573397 A CN117573397 A CN 117573397A
Authority
CN
China
Prior art keywords
shared data
data
potential
server
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410058230.7A
Other languages
English (en)
Other versions
CN117573397B (zh
Inventor
黄增士
王鲲
陈飞
邹懋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vita Technology Beijing Co ltd
Original Assignee
Vita Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vita Technology Beijing Co ltd filed Critical Vita Technology Beijing Co ltd
Priority to CN202410058230.7A priority Critical patent/CN117573397B/zh
Publication of CN117573397A publication Critical patent/CN117573397A/zh
Application granted granted Critical
Publication of CN117573397B publication Critical patent/CN117573397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种内存优化方法、系统和存储介质,涉及计算机技术领域,该方法包括:响应于针对所述虚拟设备的目标操作,获取潜在共享数据;将所述潜在共享数据与共享数据列表中的数据进行匹配;若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据,并指示所述服务器基于所述元数据执行所述目标操作。本公开实施例在确定共享数据列表中存在潜在共享数据匹配的第一数据时,直接向服务器发送该第一数据对应的元数据,便可以实现目标操作,在实现内存共享的同时可以有效降低内存占用。

Description

内存优化方法、系统和存储介质
技术领域
本公开涉及计算机技术领域,具体地,涉及一种内存优化方法、系统和存储介质。
背景技术
随着AI(Artificial Intelligence,人工智能应用)的广泛应用,GPU(Graphicprocessing Unit,图形处理器单元)作为高效算力,获得了广泛的发展。然而,高端的GPU卡虽然性能突出,但是价格昂贵。
目前主要通过共享GPU资源的形式,来实现降低GPU成本的目标。然而,在多个用户共享GPU服务器时,会对GPU服务器产生更高的要求,尤其是内存资源。当使用远程共享GPU服务器时,远端服务器的内存成为限制用户扩展的关键因素之一。因此,如何更好的对内存进行优化是亟待解决的技术问题。
发明内容
为克服相关技术中存在的问题,本公开提供一种内存优化方法、系统和存储介质。
根据本公开实施例的第一方面,提供一种内存优化方法,应用于电子设备,所述电子设备包括虚拟设备,所述方法包括:
响应于针对所述虚拟设备的目标操作,获取潜在共享数据;
将所述潜在共享数据与共享数据列表中的数据进行匹配;
若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据,并指示所述服务器基于所述元数据执行所述目标操作。
可选地,所述方法还包括:
若所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据,则将所述潜在共享数据发送给所述服务器,并指示所述服务器在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据持久化到所述共享数据列表。
可选地,所述满足预设条件包括:
所述服务器处记录有所述潜在共享数据,且所述潜在共享数据被记录的次数超出预设阈值。
可选地,所述获取潜在共享数据,包括:
确定操作列表中是否存在与所述目标操作匹配的操作;
若操作列表中存在与所述目标操作匹配的操作,则提取所述目标操作对应的参数数据,并将所述参数数据作为所述潜在共享数据,所述潜在共享数据的数据长度大于预设长度。
可选地,所述元数据包括所述第一数据的地址和长度。
根据本公开实施例的第二方面,提供一种内存优化方法,应用于服务器,所述方法包括:
接收电子设备发送的第一数据对应的元数据,所述元数据是所述电子设备确定共享数据列表中存在与潜在共享数据匹配的第一数据时发送,其中,所述潜在共享数据是所述电子设备响应于针对虚拟设备的目标操作获取;
基于所述元数据执行目标操作。
可选地,所述方法还包括:
接收所述电子设备发送的所述潜在共享数据,所述潜在共享数据是所述电子设备确定所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据时发送;
在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据更新到所述共享数据列表。
可选地,所述在所述潜在共享数据满足预设条件时执行持久化操作,包括:
获取所述潜在共享数据的目标哈希值;
若确定哈希值列表中存在所述目标哈希值,则更新所述潜在共享数据被记录的目标次数;
如果更新后的所述目标次数超出预设阈值,则将所述潜在共享数据持久化到所述共享数据列表。
根据本公开实施例的第三方面,提供一种内存优化系统,所述系统包括:
电子设备,用于响应于针对虚拟设备的目标操作,获取潜在共享数据;将所述潜在共享数据与共享数据列表中的数据进行匹配;若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据;
服务器,用于接收所述第一数据对应的元数据,并基于所述元数据执行所述目标操作。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现第一方面和第二方面中任一项所述内存优化方法的步骤。
本公开在确定共享数据列表中存在与潜在共享数据匹配的第一数据时,通过仅向服务器发送该第一数据对应的元数据便可以有效的实现对目标操作的执行,具体的,响应于针对虚拟设备的目标操作,获取潜在共享数据,在此基础上,将潜在共享数据与共享数据列表中的数据进行匹配,若确定共享数据列表中存在与该潜在共享数据匹配的第一数据,则向服务器发送第一数据对应的元数据,并指示服务器基于该元数据执行目标操作,如此在实现内存共享的同时可以有效降低内存占用。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种内存优化方法的流程图。
图2是根据一示例性实施例示出的一种内存优化方法中潜在共享数据的筛选示例图。
图3是根据一示例性实施例示出的一种内存优化方法中进行内存优化的详细流程图。
图4是根据一示例性实施例示出的一种内存优化方法的流程图。
图5是根据一示例性实施例示出的一种内存优化方法中添加潜在共享数据的流程图。
图6是根据一示例性实施例示出的一种内存优化方法中更新共享内存的流程图。
图7是根据一示例性实施例示出的一种内存优化装置的框图。
图8是根据一示例性实施例示出的一种内存优化装置的框图。
图9是根据一示例性实施例示出的一种内存优化系统的框图。
图10是根据一示例性实施例示出的一种电子设备的框图。
图11是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开的描述中,使用的术语如“第一”、“第二”等是用于区别类似的对象,而不必理解为特定的顺序或先后次序。另外,在未作相反说明的情况下,在参考附图的描述中,不同附图中的同一标记表示相同的要素。
在本公开实施例中尽管在附图中以特定的顺序描述操作或步骤,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作或步骤,或是要求执行全部所示的操作或步骤以得到期望的结果。在本公开的实施例中,可以串行执行这些操作或步骤;也可以并行执行这些操作或步骤;也可以执行这些操作或步骤中的一部分。
相关技术为了扩充GPU服务器的服务能力,通常是通过扩展物理内存的方式来实现,但是该扩充方式会带来巨大的成本。另外,堆物理内存在带来巨大的成本增加的同时也会降低GPU共享带来的收益。
针对上述问题本公开实施例分析了AI类应用使用GPU服务器的方法及各类数据内存消耗占比,在此基础上,提出了在多用户间共享数据的方法,以实现节省GPU服务器内存,提升服务能力的效果。具体的,本公开实施例可以自动分析用户间潜在的相同数据,并将该潜在数据在共享服务器上进行保存。当用户应用启动时,本公开实施例可以优先使用共享服务器上的共享数据,当多用户使用同一份共享数据时,其物理内存仅使用一份即可,从而可以有效降低内存占用。
图1是根据一示例性实施例示出的一种内存优化方法的流程图,如图1所示,该内存优化方法可以应用于电子设备,具体包括以下步骤。
在步骤S110中,响应于针对虚拟设备的目标操作,获取潜在共享数据。
本公开实施例中,电子设备可以称作是用户节点,其中,用户节点中可以添加有虚拟设备,电子设备对所有GPU的访问均可以通过该虚拟设备完成。示例性的,电子设备可以为电脑。
这里,虚拟设备可用于数据转发,即将针对虚拟设备的操作转发到服务器对实际物理卡的操作。另外,虚拟设备还可用于接收用户对虚拟设备的访问,并对访问的请求做分析处理,以确定出潜在共享数据,即筛选出可共享数据。
作为一种可选地方式,本公开实施例中的电子设备在执行应用程序操作时可以通过虚拟设备在服务器处执行。也就是说,电子设备可以检测应用程序是否访问虚拟设备,如果检测到应用程序访问虚拟设备,则可以获取潜在共享数据。这里,应用程序可以是AI类的应用程序,如应用程序可以是TensorFlow、pytorch等。
其中,应用程序访问虚拟设备的操作可以称作是目标操作,即响应于针对虚拟设备的目标操作,本公开实施例可以获取潜在共享数据。示例性的,目标操作可以是TensorFlow、pytorch等进行的训练或者预测操作等。
在一些实施方式中,针对虚拟设备的目标操作可以是对电子设备中API(Application Programming Interface,应用程序编程接口)的调用,目标操作不同对应的API接口也不相同。
作为一种可选地方式,在接收到用户针对虚拟设备的目标操作之后,本公开实施例可以获取潜在共享数据。具体的,确定操作列表中是否存在与目标操作匹配的操作;若操作列表中存在与该目标操作匹配的操作,则本公开实施例可以提取目标操作对应的参数数据,并将该参数数据作为潜在共享数据,其中,潜在共享数据的数据长度可以大于预设长度。
在此之前,本公开实施例也可以先获取预设操作,该预设操作可以是内存占用超出预设内存的操作。在此基础上,由预设操作组成操作列表。也就是说,操作列表中的每个预设操作均可以是内存占用较多的操作。
另外,在构建操作列表的过程中,本公开实施例也可以获取每个预设操作对应的第一参数,该第一参数可以是预设操作中资源占用超出预设资源,且被重复使用的概率超出预设概率的数据。也就是说,第一参数的数据长度长,且更容易被使用。另外,第一参数还可以是被加载到程序的数据。
可选地,在获取潜在共享数据的过程中,一方面本公开实施例可以直接通过对目标操作的各参数进行分析,来获取潜在共享数据,分析的准则可以是数据长度长,且重复使用率大的参数。也就是说,潜在共享数据的数据长度超出预设长度,和/或,潜在共享数据的重复使用率超出使用率阈值。
另一方面,本公开实施例也可以直接确定操作列表中与目标操作匹配的第一操作,在此基础上,将确定出的该第一操作对应的第一参数作为潜在共享数据。其中,第一操作与第一参数存在相互对应的关系。
需要说明的是,本公开实施例中的操作列表可以包括至少一个操作,每个操作均可以通过指定API接口实现。因此,本公开实施例中的操作列表可以包括多个指定API接口。同时,目标操作也可以指的是调用的指定API接口。
示例性的,操作列表可以包括cuModuleLoadData、cuLibraryLoadData等API接口。可见,本公开实施例中的潜在共享数据可以是指定API接口加载的设备程序。
综上所述,本公开实施例可选择资源占用较多的部分加载程序操作组成操作列表,且可以将其中的需要加载到设备的程序数据作为潜在共享数据。另外,针对AI应用的分析,本公开实施例确定大量的内存会被加载的设备程序占据,如包括cuModuleLoadData,cuLibraryLoadData等接口加载的设备程序。因此,在此处,本公开实施例可以选择这一类操作的设备程序作为潜在的共享数据。
换句话说,在检测到目标操作之后,本公开实施例首先可以判断该目标操作是否在预置的操作列表中。如果确定目标操作在预置的操作列表中,则提取该操作对应的参数数据,并将该参数数据作为潜在共享数据。另外,该潜在共享数据的筛选可以由虚拟设备的数据筛选模块执行,即虚拟设备的数据筛选模块可以对访问信息进行筛选,以选出潜在的共享数据,该潜在共享数据的筛选过程可以如图2所示。
通过图2可以知道,在检测到应用操作虚拟设备时,本公开实施例可以确定本次操作是否在指定操作列表中。如果确定本次操作在指定操作列表中,则从该操作对应的参数中提取潜在共享数据。反之,如果确定本次操作未在指定操作列表,则向服务器发送该操作和对应的数据,以指示服务器直接基于其接收的数据执行对应的操作。
在步骤S120中,将潜在共享数据与共享数据列表中的数据进行匹配。
作为一种可选地方式,通过数据筛选模块提取到潜在共享数据之后,本公开实施例可以将该潜在共享数据与共享数据列表中的数据进行匹配。也就是说,确定共享数据列表中是否存在与潜在共享数据相同的数据,详细如图2所示。
其中,共享数据列表可以是电子设备预先从服务器处获取的,该共享数据列表可以包括多个共享数据和每个共享数据对应的元数据。这里,每个共享数据对应的元数据可以包括数据的存储地址和数据的长度等。
作为一个具体的实施方式,在用户首次操作虚拟设备时,虚拟设备可以从GPU服务器端获取共享数据列表,该共享数据列表中可以记录有GPU服务器上共享内存中的数据信息,该数据信息可以包括数据地址、长度以及内容等。
通过上述介绍知道,首次操作虚拟设备的时候,电子设备可以从服务器处获取共享数据列表,即用户程序第一次访问虚拟设备的时候可以从服务器处下载共享数据列表。
可选地,指定应用程序在重启的时候,本公开实施例也可以从服务器处获取该共享数据列表。可选地,当检测到共享数据列表发生更新后,电子设备也可以接收服务器下发的共享数据列表。
在步骤S130中,若共享数据列表中存在与潜在共享数据匹配的第一数据,则向服务器发送第一数据对应的元数据。
作为一种可选地方式,在将潜在共享数据与共享数据列表中的数据进行匹配时,如果确定该共享数据列表中存在与共享数据匹配的第一数据,则电子设备可以向服务器发送第一数据对应的元数据,并指示服务器基于元数据执行目标操作。
换句话说,获取到潜在共享数据后,本公开实施例可以将该潜在共享数据与共享数据列表中的数据进行比对,以查询该潜在共享数据是否存在于共享数据列表中,即确定共享数据列表中是否存在与该潜在共享数据相同的第一数据。如果确定潜在共享数据存在于共享数据列表中,则表明潜在共享数据可以在服务器上通过共享内存获取。此时,电子设备可以向服务器发送与潜在共享数据相同的第一数据对应的元数据给服务器。
换句话说,电子设备可以将其查询到的共享数据信息(第一数据对应的元数据)传递给GPU服务器。此时,GPU服务器可以基于该共享数据信息提取第一数据在共享内存的位置,并使用共享内存地址作为操作参数。在此基础上,执行设备操作。
另外,在将第一数据对应的元数据发送给服务器的过程中,本公开实施例也可以发送目标操作对应的操作信息给服务器,基于该操作信息可以指示服务器执行目标操作。
示例性的,在确定共享数据列表中存在与潜在共享数据匹配的第一数据的情况下,电子设备可以向GPU服务器发送共享数据信息和目标操作(应用操作)。其中,共享数据信息可以是第一数据对应的元数据,其可以包括第一数据的存储地址和长度等。可见,在该情况下电子设备不需要发送原始的操作数据给服务器,如此在一定程度上可以提高操作的执行效率。
作为一种可选地方式,服务器在接收到共享数据信息之后,其可以基于该共享数据信息从共享内存中提取共享数据,并将该共享数据作为目标操作的输入参数。在此基础上,基于输入参数执行该目标操作,即在服务器上执行目标操作,如此可以实现利用共享内存节省内存的目标。
作为另一种可选地方式,如果确定共享数据列表中不存在与潜在共享数据匹配的第一数据,则本公开实施例可以将该潜在共享数据发送给服务器,并指示服务器在潜在共享数据满足预设条件时执行持久化操作。这里,持久化操作可用于将潜在共享数据持久化到共享数据列表。
示例性的,当确定潜在共享数据不在共享数据列表中时,本公开实施例可以直接将该潜在共享数据发送给GPU服务器。在此基础上,GPU服务器可以记录该潜在共享数据的信息,以供后续提取共享数据使用。
本公开实施例中,潜在共享数据满足预设条件可以是服务器处记录有潜在共享数据,且该潜在共享数据被记录的次数超出预设阈值。也就是说,服务器在接收到潜在共享数据之后,其可以先记录该潜在共享数据。在此基础上,对潜在共享数据进行筛选,即确定潜在共享数据是否满足预设条件。如果确定潜在共享数据满足预设条件,则服务器可以执行共享数据持久化操作,以对共享数据列表进行更新,详细过程请参阅图3。
作为一个具体的实施方式,如图3所示,当应用访问设备时,虚拟设备可以截获该访问信息,以获取潜在共享数据。具体的,查询该潜在数据是否可以共享,即确定共享数据列表是否存在潜在共享数据。如果共享数据列表中存在与潜在共享数据相同的数据,则表明GPU服务器端存在相同的数据,确定该潜在共享数据可共享,后续GPU服务器的操作可以直接使用该潜在共享数据,即多个用户可以同时使用共享内存存储的该潜在共享数据,如此可以节省内存。
反之,若共享数据列表中不存在与潜在共享数据相同的数据,则可以在GPU服务器端记录该潜在共享数据,即将潜在共享数据添加到潜在共享数据列表中。当该潜在共享数据被记录多次时,则可以触发筛选流程,以筛选出该潜在共享数据作为共享数据,并将该共享数据持久化,即将潜在共享数据作为共享数据进行持久化。最后,该持久化后的共享数据可以被周期性的加载到共享内存中,即将潜在的共享数据写入共享内存。另外,服务器可以更新共享内存的内容及数据索引信息,即更新共享数据列表。
本公开实施例在分析AI应用运行特点的基础上,提出了一种面向共享GPU服务器的内存优化方法,通过针对共享GPU服务器中内存占比最大的数据部分,本公开实施例可以结合大部分客户使用框架来进行AI计算。另外,通过多用户间的数据共享方法不仅能够降低内存用量,而且可以提升共享GPU服务器资源利用率。
综上,本公开实施例可以提取GPU应用中的相同数据,并不断在GPU共享服务器端收集这些数据,然后通过数据共享的方式能够实现多用户共享一份数据、占用一份内存的目的,进而可以实现节省内存使用的目标。也就是说,通过共享多个应用的相同数据可以节省内存。
本公开实施例电子设备在确定共享数据列表中存在与潜在共享数据匹配的第一数据时,通过仅向服务器发送该第一数据对应的元数据便可以有效的实现对目标操作的执行,具体的,响应于针对虚拟设备的目标操作,获取潜在共享数据,在此基础上,将潜在共享数据与共享数据列表中的数据进行匹配,若确定共享数据列表中存在与该潜在共享数据匹配的第一数据,则向服务器发送第一数据对应的元数据,并指示服务器基于该元数据执行目标操作,如此在实现内存共享的同时可以有效降低内存占用。
图4是根据一示例性实施例示出的一种内存优化方法的流程图,如图4所示,该内存优化方法可以应用于服务器,具体包括以下步骤。
在步骤S210中,接收电子设备发送的第一数据对应的元数据。
本公开实施例中,服务器可以接收电子设备发送的第一数据对应的元数据。其中,元数据可以是电子设备确定共享数据列表中存在与潜在共享数据相同的第一数据时发送,而潜在共享数据则是电子设备检测到针对虚拟设备有目标操作时获取。也就是说,在确定共享数据列表中存在与潜在共享数据匹配的第一数据时,服务器可以从电子设备处接收该第一数据对应的元数据。
在步骤S220中,基于元数据执行目标操作。
通过上述介绍知道,元数据可以包括第一数据的地址和长度,服务器在接收到元数据之后,便可以基于该元数据查询获取第一数据,即根据元数据中的地址和长度等信息获取服务器中存储的第一数据。在此基础上,服务器可以基于元数据对应的第一数据执行目标操作。
在此过程中,服务器首先可以基于元数据获取第一数据,在此基础上,根据第一数据执行目标操作。另外,在确定共享数据列表中存在与潜在共享数据匹配的第一数据时,服务器也可以从电子设备处接收目标操作的操作信息。之后,基于第一数据执行该操作信息对应的目标操作。
作为另一种可选地方式,服务器也可以接收电子设备发送的潜在共享数据,这里的潜在共享数据是电子设备确定共享数据列表中不存在与潜在共享数据匹配的第一数据时发送。另外,在确定潜在共享数据满足预设条件的情况下,执行持久化操作,其中,持久化操作可用于将该潜在共享数据更新到共享数据列表。
换句话说,在确定共享数据列表中不存在与潜在共享数据匹配的第一数据时,服务器可以从电子设备处接收该潜在共享数据。在此基础上,服务器可以对该潜在共享数据进行记录,并可以获取该潜在共享数据被记录的目标次数,如果确定该目标次数超出预设阈值,则将潜在共享数据持久化到共享数据列表。
具体的,在获取到潜在共享数据之后,服务器可以获取该潜在共享数据的目标哈希值,在此基础上,确定哈希值列表中是否存在该目标哈希值。如果确定哈希值列表中存在该目标哈希值,则更新潜在共享数据被记录的目标次数。在此基础上,如果确定更新后的目标次数超出预设阈值,则将该潜在共享数据持久化到共享数据列表中,详细过程如图5所示。
通过图5知道,服务器在接收到潜在共享数据之后,本公开实施例可以先计算该潜在共享数据的目标哈希值,然后,将该目标哈希值加入到潜在共享数据列表中。
另外,在将该目标哈希值加入到潜在共享数据列表时,本公开实施例可以先判断潜在共享数据列表中是否存在该目标哈希值。如果确定潜在共享数据列表中存在目标哈希值,则将该目标哈希值的引入计数加1,得到更新后的目标次数。
也就是说,如果确定潜在共享数据列表中存在目标哈希值,则将记录的目标哈希值的数据项的引用计数加1。另外,在引用计数增加后,本公开实施例可以判断引用计数(更新后的目标次数)是否达到设定阈值(预设阈值),如果引用计数未达到设定阈值(预设阈值),则无需操作,等待后续更新。如果引用计数已超过设定阈值(预设阈值),则将该潜在共享数据标记为共享数据,并交后续流程将共享数据持久化,并更新到共享内存中。
其中,共享数据持久化的流程如图6所示,通过图6知道,当新增共享数据时,本公开实施例可以先将共享数据持久化,以避免故障时丢失该共享数据信息。在此基础上,将新增的共享数据加载到共享内存中,然后再更新共享数据的表信息,即更新共享数据列表。
另外,在更新完共享数据列表之后,后续新起的应用则可以使用最新的共享数据列表,从而对新增的数据可以实现共享。也就是说,在对共享数据列表进行更新之后,服务器可以将更新后的共享数据列表下发给电子设备,以使电子设备能够基于新的共享数据列表对数据进行筛选。
本公开实施例中,共享内存的更新和数据共享是不断进行的过程,随着用户应用的多次调用,该结构会不断提取可共享的数据,从而达到多个用户/应用共享数据,共享内存的目标。
作为另一种可选地方式,如果确定潜在共享数据列表中未存在目标哈希值,则服务器可以在潜在共享数据列表中创建新的数据项,以通过该新的数据项记录潜在哈希数据的哈希值,并将引用计数标记为1。
综上,本公开实施例在不增加物理内存的基础上,能够扩充GPU服务器的共享能力,以实现GPU资源共享。换句话说,本公开实施例在有效降低内存用量的同时可以降低GPU资源共享的成本。
本公开实施例服务器可以接收电子设备发送的第一数据对应的元数据,并基于该元数据执行目标操作,即服务器可以基于元数据在共享内存中获取到第一数据,利用第一数据便可以执行目标操作,如此在实现内存共享的同时可以有效降低内存占用。
图7是根据一示例性实施例示出的一种内存优化装置300的框图,如图7所示,该内存优化装置300可以包括获取模块310、匹配模块320和发送模块330。
该获取模块310被配置为响应于针对所述虚拟设备的目标操作,获取潜在共享数据;
该匹配模块320被配置为将所述潜在共享数据与共享数据列表中的数据进行匹配;
该发送模块330被配置为若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据,并指示所述服务器基于所述元数据执行所述目标操作。
在一些实施方式中,发送模块330还可以被配置为若所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据,则将所述潜在共享数据发送给所述服务器,并指示所述服务器在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据持久化到所述共享数据列表。
在一些实施方式中,所述满足预设条件包括:
所述服务器处记录有所述潜在共享数据,且所述潜在共享数据被记录的次数超出预设阈值。
在一些实施方式中,匹配模块320还可以被配置为确定操作列表中是否存在与所述目标操作匹配的操作;
获取模块310可以包括:
提取子模块,被配置为若操作列表中存在与所述目标操作匹配的操作,则提取所述目标操作对应的参数数据,并将所述参数数据作为所述潜在共享数据,所述潜在共享数据的数据长度大于预设长度。
在一些实施方式中,所述元数据包括所述第一数据的地址和长度。
本公开实施例电子设备在确定共享数据列表中存在与潜在共享数据匹配的第一数据时,通过仅向服务器发送该第一数据对应的元数据便可以有效的实现对目标操作的执行,具体的,响应于针对虚拟设备的目标操作,获取潜在共享数据,在此基础上,将潜在共享数据与共享数据列表中的数据进行匹配,若确定共享数据列表中存在与该潜在共享数据匹配的第一数据,则向服务器发送第一数据对应的元数据,并指示服务器基于该元数据执行目标操作,如此在实现内存共享的同时可以有效降低内存占用。
图8是根据一示例性实施例示出的一种内存优化装置400的框图,如图8所示,该内存优化装置400可以包括接收模块410和执行模块420。
该接收模块410被配置为接收电子设备发送的第一数据对应的元数据,所述元数据是所述电子设备确定共享数据列表中存在与潜在共享数据匹配的第一数据时发送,其中,所述潜在共享数据是所述电子设备响应于针对虚拟设备的目标操作获取;
该执行模块420被配置为基于所述元数据执行目标操作。
在一些实施方式中,接收模块410还可以被配置为接收所述电子设备发送的所述潜在共享数据,所述潜在共享数据是所述电子设备确定所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据时发送;
内存优化装置400还可以包括:
持久化模块,被配置为在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据更新到所述共享数据列表。
在一些实施方式中,持久化模块可以包括:
哈希值获取子模块,被配置为获取所述潜在共享数据的目标哈希值;
更新子模块,被配置为若确定哈希值列表中存在所述目标哈希值,则更新所述潜在共享数据被记录的目标次数;
持久化子模块,被配置为如果更新后的所述目标次数超出预设阈值,则将所述潜在共享数据持久化到所述共享数据列表。
本公开实施例服务器可以接收电子设备发送的第一数据对应的元数据,并基于该元数据执行目标操作,即服务器可以基于元数据在共享内存中获取到第一数据,利用第一数据便可以执行目标操作,如此在实现内存共享的同时可以有效降低内存占用。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种内存优化系统50的框图。如图9所示,该内存优化系统50可以包括电子设备700和服务器1900。
该电子设备700用于响应于针对虚拟设备的目标操作,获取潜在共享数据;将所述潜在共享数据与共享数据列表中的数据进行匹配;若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据;
该服务器1900用于接收所述第一数据对应的元数据,并基于所述元数据执行所述目标操作。
本公开实施例中,电子设备700也可以称作是用户节点,该用户节点可以包括虚拟设备,该虚拟设备可以包括通信模块、数据筛选模块和共享数据列表;服务器1900可以是GPU共享服务器,该GPU共享服务器可以包括通信模块、内存管理模块、持久化模块和共享数据管理模块。
在一些实施方式中,当应用程序访问服务器1900时,电子设备700的数据筛选模块可以基于访问的类型(操作),筛选出可能可以共享的数据,并将该数据作为潜在共享数据。在此基础上,将该潜在共享数据与共享数据列表中的数据进行比对,以判断共享数据列表中是否存在与该潜在共享数据相同的数据。
如果确定共享数据列表中存在与潜在共享数据相同的数据,则利用电子设备700的通信模块向服务器1900发送数据信息,该数据信息可以是共享数据列表中与潜在共享数据匹配的第一数据对应的元数据。在接收到该数据信息之后,服务器1900可以直接使用共享内存中与该元数据对应的共享数据,用以向执行目标操作,从而减少内存用量。
可选地,服务器1900的共享数据管理模块可以基于用户的多次调用,不断更新共享的数据内容,即对共享数据列表中的数据进行不断更新,如此可以使GPU服务器更好的适应用户应用,节省内存。
本公开实施例通过不断的提取用户应用中可共享的数据部分,并使用共享GPU服务器的共享内存,能够实现GPU服务器的内存共享,从而可以节省GPU服务器的内存资源,以扩充服务能力。并且,本公开实施例基于GPU应用的特点可以有效的实现GPU服务器的内存共享,以节省内存用量。
图10是根据一示例性实施例示出的一种电子设备700的框图。如图10所示,该电子设备700可以包括:第一处理器701,第一存储器702。该电子设备700还可以包括多媒体组件703,第一输入/输出(I/O)接口704,以及第一通信组件705中的一者或多者。
其中,第一处理器701用于控制该电子设备700的整体操作,以完成上述的内存优化方法中的全部或部分步骤。第一存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该第一存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在第一存储器702或通过第一通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为第一处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。第一通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该第一通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的内存优化方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的内存优化方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的第一存储器702,上述程序指令可由电子设备700的第一处理器701执行以完成上述的内存优化方法。
图11是根据一示例性实施例示出的一种服务器1900的框图。参照图11,服务器1900包括第二处理器1922,其数量可以为一个或多个,以及第二存储器1932,用于存储可由第二处理器1922执行的计算机程序。第二存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,第二处理器1922可以被配置为执行该计算机程序,以执行上述的内存优化方法。
另外,服务器1900还可以包括电源组件1926和第二通信组件1950,该电源组件1926可以被配置为执行服务器1900的电源管理,该第二通信组件1950可以被配置为实现服务器1900的通信,例如,有线或无线通信。此外,该服务器1900还可以包括第二输入/输出(I/O)接口1958。服务器1900可以操作基于存储在第二存储器1932的操作系统。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的内存优化方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的第二存储器1932,上述程序指令可由服务器1900的第二处理器1922执行以完成上述的内存优化方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的内存优化方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种内存优化方法,其特征在于,应用于电子设备,所述电子设备包括虚拟设备,所述方法包括:
响应于针对所述虚拟设备的目标操作,获取潜在共享数据;
将所述潜在共享数据与共享数据列表中的数据进行匹配;
若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据,并指示所述服务器基于所述元数据执行所述目标操作。
2.根据权利要求1所述的内存优化方法,其特征在于,所述方法还包括:
若所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据,则将所述潜在共享数据发送给所述服务器,并指示所述服务器在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据持久化到所述共享数据列表。
3.根据权利要求2所述的内存优化方法,其特征在于,所述满足预设条件包括:
所述服务器处记录有所述潜在共享数据,且所述潜在共享数据被记录的次数超出预设阈值。
4.根据权利要求1所述的内存优化方法,其特征在于,所述获取潜在共享数据,包括:
确定操作列表中是否存在与所述目标操作匹配的操作;
若操作列表中存在与所述目标操作匹配的操作,则提取所述目标操作对应的参数数据,并将所述参数数据作为所述潜在共享数据,所述潜在共享数据的数据长度大于预设长度。
5.根据权利要求1至4任一所述的内存优化方法,其特征在于,所述元数据包括所述第一数据的地址和长度。
6.一种内存优化方法,其特征在于,应用于服务器,所述方法包括:
接收电子设备发送的第一数据对应的元数据,所述元数据是所述电子设备确定共享数据列表中存在与潜在共享数据匹配的第一数据时发送,其中,所述潜在共享数据是所述电子设备响应于针对虚拟设备的目标操作获取;
基于所述元数据执行目标操作。
7.根据权利要求6所述的内存优化方法,其特征在于,所述方法还包括:
接收所述电子设备发送的所述潜在共享数据,所述潜在共享数据是所述电子设备确定所述共享数据列表中不存在与所述潜在共享数据匹配的第一数据时发送;
在所述潜在共享数据满足预设条件时执行持久化操作,所述持久化操作用于将所述潜在共享数据更新到所述共享数据列表。
8.根据权利要求7所述的内存优化方法,其特征在于,所述在所述潜在共享数据满足预设条件时执行持久化操作,包括:
获取所述潜在共享数据的目标哈希值;
若确定哈希值列表中存在所述目标哈希值,则更新所述潜在共享数据被记录的目标次数;
如果更新后的所述目标次数超出预设阈值,则将所述潜在共享数据持久化到所述共享数据列表。
9.一种内存优化系统,其特征在于,所述系统包括:
电子设备,用于响应于针对虚拟设备的目标操作,获取潜在共享数据;将所述潜在共享数据与共享数据列表中的数据进行匹配;若所述共享数据列表中存在与所述潜在共享数据匹配的第一数据,则向服务器发送所述第一数据对应的元数据;
服务器,用于接收所述第一数据对应的元数据,并基于所述元数据执行所述目标操作。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
CN202410058230.7A 2024-01-15 2024-01-15 内存优化方法、系统和存储介质 Active CN117573397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410058230.7A CN117573397B (zh) 2024-01-15 2024-01-15 内存优化方法、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410058230.7A CN117573397B (zh) 2024-01-15 2024-01-15 内存优化方法、系统和存储介质

Publications (2)

Publication Number Publication Date
CN117573397A true CN117573397A (zh) 2024-02-20
CN117573397B CN117573397B (zh) 2024-04-19

Family

ID=89864786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410058230.7A Active CN117573397B (zh) 2024-01-15 2024-01-15 内存优化方法、系统和存储介质

Country Status (1)

Country Link
CN (1) CN117573397B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304268A (zh) * 2018-02-05 2018-07-20 努比亚技术有限公司 内存优化方法、移动终端及计算机可读存储介质
CN112559529A (zh) * 2020-12-16 2021-03-26 杭州趣链科技有限公司 数据存储方法、装置、计算机设备及存储介质
CN115563221A (zh) * 2022-10-25 2023-01-03 阿里巴巴(中国)有限公司 数据同步方法、存储系统、设备及存储介质
WO2023173516A1 (zh) * 2022-03-18 2023-09-21 维塔科技(北京)有限公司 数据交互的方法、装置、存储介质及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304268A (zh) * 2018-02-05 2018-07-20 努比亚技术有限公司 内存优化方法、移动终端及计算机可读存储介质
CN112559529A (zh) * 2020-12-16 2021-03-26 杭州趣链科技有限公司 数据存储方法、装置、计算机设备及存储介质
WO2023173516A1 (zh) * 2022-03-18 2023-09-21 维塔科技(北京)有限公司 数据交互的方法、装置、存储介质及电子设备
CN115563221A (zh) * 2022-10-25 2023-01-03 阿里巴巴(中国)有限公司 数据同步方法、存储系统、设备及存储介质

Also Published As

Publication number Publication date
CN117573397B (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
CN107832100B (zh) 一种apk插件的加载方法及其终端
CN110096336B (zh) 数据监控方法、装置、设备和介质
CN105760199B (zh) 一种应用资源加载方法及其设备
CN110737668A (zh) 数据存储方法、数据读取方法、相关设备及介质
CN107153643B (zh) 数据表连接方法及装置
CN111367828B (zh) 内存压缩方法、装置、终端及存储介质
CN112100152A (zh) 业务数据处理方法、系统、服务器和可读存储介质
US10938773B2 (en) Method and apparatus for synchronizing contact information and medium
CN113392041A (zh) 应用缓存清理方法、装置、设备及存储介质
CN113014608B (zh) 一种流量分发控制方法、装置、电子设备及存储介质
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN115145806A (zh) 一种数据采集方法、装置、以及计算机可读存储介质
CN117573397B (zh) 内存优化方法、系统和存储介质
CN107168648B (zh) 文件存储方法、装置及终端
CN114585035A (zh) 一种语音通话方法、装置和计算机可读存储介质
CN113849195A (zh) 应用程序加载方法、装置、存储介质以及终端
CN113572747A (zh) 一种ip地址的处理方法、装置、存储介质和处理器
CN112231290A (zh) 一种本地日志的处理方法、装置、设备及存储介质
CN114270309A (zh) 资源获取方法、装置以及电子设备
CN111625302A (zh) 函数耗时跟踪方法、设备和存储介质
CN117453423B (zh) Gpu显存管理方法和系统,存储介质和电子设备
CN117724852B (zh) 一种云电脑计算资源分配方法及装置
CN115391335A (zh) 数据存储方法、装置、电子设备及存储介质
CN114356579A (zh) 内存缓存服务节点的分析方法、装置及服务器
CN110213314B (zh) 确定存储节点的方法、装置、服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant