CN120803803B - 异常处理方法、装置、设备、介质及程序产品 - Google Patents
异常处理方法、装置、设备、介质及程序产品Info
- Publication number
- CN120803803B CN120803803B CN202511324427.1A CN202511324427A CN120803803B CN 120803803 B CN120803803 B CN 120803803B CN 202511324427 A CN202511324427 A CN 202511324427A CN 120803803 B CN120803803 B CN 120803803B
- Authority
- CN
- China
- Prior art keywords
- thread
- page
- processor
- thread block
- pages
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0715—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种异常处理方法、装置、设备、介质及程序产品。应用于服务器技术领域,该方法包括:在确定处理器运行的第一线程块存在缺页异常的情况下,中断第一线程块的运行;在处理器上运行第二线程块,其中,第二线程块从多个备用线程块中确定;以及响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从扩展存储空间将批迁移页批量迁移至处理器的存储单元中,多个待迁移页包括以下数据中的至少一项:用于运行第一线程块的导致缺页异常的数据、用于运行第二线程块的导致缺页异常的数据。
Description
技术领域
本申请涉及服务器技术领域,尤其涉及高并行处理以及虚拟内存管理技术领域,更具体地,涉及一种异常处理方法、装置、电子设备、存储介质及程序产品。
背景技术
可以利用通用图形处理器执行高并发任务,以应用于高吞吐量、低延迟的场景。例如,可以应用于推荐、人机交互、网络社交等实时性需求较高的场景。
但是,在执行高并发任务的过程中,任务处理异常的问题也随之增加,例如任务执行不完整、处理结果不准确以及部分任务的响应延迟较高等。如何快速有效地进行异常处理,成为一个研究重点。
发明内容
有鉴于此,本申请提供了一种异常处理方法、装置、电子设备、存储介质及程序产品。
本申请的一个方面提供了一种异常处理方法,包括:在确定处理器运行的第一线程块存在缺页异常的情况下,中断第一线程块的运行,其中,第一线程块包括多个线程束,第一线程块存在缺页异常表征多个线程束均存在缺页异常,线程束存在缺页异常表征运行线程束所需的数据存储在扩展存储空间中;在处理器上运行第二线程块,其中,第二线程块从多个备用线程块中确定;以及响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从扩展存储空间将批迁移页批量迁移至处理器的存储单元中,其中,多个待迁移页包括以下数据中的至少一项:用于运行第一线程块的导致缺页异常的数据、用于运行第二线程块的导致缺页异常的数据。
本申请的另一方面提供了一种异常处理装置,包括:中断模块,用于在确定处理器运行的第一线程块存在缺页异常的情况下,中断第一线程块的运行,其中,第一线程块包括多个线程束,第一线程块存在缺页异常表征多个线程束均存在缺页异常,线程束存在缺页异常表征运行线程束所需的数据存储在扩展存储空间中;激活模块,用于在处理器上运行第二线程块,其中,第二线程块从多个备用线程块中确定;以及迁移模块,用于响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从扩展存储空间将批迁移页批量迁移至处理器的存储单元中,其中,多个待迁移页包括以下数据中的至少一项:用于运行第一线程块的导致缺页异常的数据、用于运行第二线程块的导致缺页异常的数据。
本申请的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
本申请的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上所述的方法。
本申请的另一方面提供了一种计算机程序产品,计算机程序产品包括计算机可执行指令,指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本申请实施例的描述,本申请的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本申请实施例的处理器的示意图;
图2示出了根据本申请实施例的异常处理方法的流程图;
图3A示出了根据本申请相关示例的异常处理方法的流程示意图;
图3B示出了根据本申请实施例的异常处理方法的流程示意图;
图4A示出了根据本申请相关示例的待迁移页的迁移流程示意图;
图4B示出了根据本申请实施例的待迁移页的迁移流程示意图;
图5示出了根据本申请实施例的确定动作评估结果的示意图;
图6示出了根据本申请的实施例的异常处理装置的框图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本申请的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本申请实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本申请。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
图形处理器广泛应用于服务器和数据中心,承担大规模计算任务(如图形处理、深度学习、图计算等)。但传统离散图形处理器的设备内存容量有限,难以处理大规模应用(如社交网络分析、推荐系统)。为了解决该问题,本申请提出了虚拟内存管理(UnifiedVirtual Memory,简称UVM)机制。UVM通过需求分页(Demand Paging),允许中央处理器和图形处理器共享同一虚拟地址空间,自动迁移数据,减轻了手动管理内存的负担,提升了程序的可移植性和易用性。
下文将通过图1对处理器的介绍来进一步体现虚拟内存管理技术与线程块运行之间的关系。
图1示出了根据本申请实施例的处理器的示意图。
如图1所示,处理器100,可以包括通用图形处理器(General-Purpose Computingon Graphics Processing Units,简称GPGPU),是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务。
如图1所示,处理器100可以包括多个流式多处理器(Streaming Multiprocessor,简称SM,也称计算单元)110和存储单元120。
示例性地,SM为通用图形处理器的基本计算单元,包含指令调度器、寄存器、计算核心等。这些通用计算可以与图形处理没有任何关系。由于通用图形处理器强大的并行处理能力和可编程流水线,令流式多处理器可以处理非图形数据。
如图1所示,在每个流式多处理器110上,可并行运行多个线程块111(ThreadBlock,简称TB)。每个线程块包括多个线程束111-1(Warps)。一个线程束111-1包括多个线程,用流水线示意。
可选地,线程束111-1为SM上运行的最小单位,通常32个线程为1个线程束。每个线程束111-1以单指令多线程(Single Instruction Multiple Threads,简称SIMT)模式运行。
示例性地,线程束111-1中的线程基于任务请求访问虚拟内存地址,转译后备缓冲区(Translation Lookaside Buffer,简称TLB)基于虚拟内存地址从页表中遍历与虚拟内存地址存在映射关系的物理内存地址。以便基于物理内存地址从处理器100的存储单元120存储的物理内存页中调用线程需执行的数据,以运行线程。
若处理器100的存储单元120中未存储有该数据,该数据存储在虚拟内存空间扩展存储空间中时,则确定该线程存在缺页异常。可将存储在扩展存储空间的包括该数据的待迁移页通过高速串行计算机扩展总线标准(Peripheral Component InterconnectExpress,简称PCIe)迁移至处理器100的存储单元120,在迁移过程中,可中断该线程。
扩展存储空间可以包括磁盘但是并不局限于此,还可以包括中央处理器上配置的存储单元。
上文对处理器进行了说明。下文将对缺页异常的异常处理方法进行说明。
图2示出了根据本申请实施例的异常处理方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,在确定处理器运行的第一线程块存在缺页异常的情况下,中断第一线程块的运行。
在操作S220,在处理器上运行第二线程块。
在操作S230,响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移虚拟内存页待迁移页合并,作为批迁移页,从虚拟内存空间扩展存储空间将批迁移页批量迁移至处理器的存储单元中。
第一线程块可以包括多个线程束,第一线程块存在缺页异常表征多个线程束均存在缺页异常,线程束存在缺页异常表征运行线程束所需的数据存储在扩展存储空间中。
可选地,扩展存储空间可以包括服务器中的除处理器上配置的存储单元外的扩展存储空间。与直接从处理器上配置的存储单元读取数据相比,从扩展存储空间读取数据所需时长较长。
可选地,扩展存储空间可以包括磁盘但是并不局限于此,还可以包括中央处理器上配置的存储单元。
线程束运行过程中,基于虚拟内存地址,从页表中查询运行线程束所需的数据的物理内存地址。基于物理存储地址确定存储该数据的存储位置。
第一线程块的缺页异常表征第一线程块的多个线程束均存在缺页异常,线程束存在缺页异常表征运行线程束所需的数据存储在扩展存储空间中。
中断第一线程块的运行,可以指堵塞第一线程块。即暂停在处理器上运行的第一线程块。
在中断第一线程块后,可以从多个备用线程块中确定第二线程块,以在处理器上运行第二线程块,由此降低处理器的闲置时间,提高资源利用率。
可以采用预定时长来对多个待迁移页进行合并,形成批迁移页,以便从扩展存储空间将批迁移页批量迁移至处理器的存储单元中。
多个待迁移页包括以下数据中的至少一项:用于运行第一线程块的导致缺页异常的数据、用于运行第二线程块的导致缺页异常的数据。
因利用第二线程块切换第一线程块,能够降低处理器的闲置时间,且使得在预定时段内收集到的批迁移页可以包括用于运行第一线程块和第二线程块各自所需的数据,由此与虚拟内存的异常处理机制相适配,提高批迁移页中待迁移页数量,进而降低因迁移批迁移页而导致的性能下降问题。
上文对异常处理方法进行了整体说明。下文将通过如图3A和3B提供的示例对本申请提供的异常处理方法的优势进行进一步说明。
图3A示出了根据本申请相关示例的异常处理方法的流程示意图。
如图3A所示,“A Fault、B Fault、C Fault”是页面故障事件的触发信号,对应需要处理的待迁移页包括“Page A、Page B、Page C”。
在处理器运行第一线程块时,收集在预定时长内的第一线程块的多个待迁移页,包括Page A、Page B,将Page A、Page B合并为一批次的批迁移页后,迁移至处理器的存储单元,以进行修复。
因待迁移页Page C的异常确定时刻与Page A、Page B各自的异常确定时刻之间的时长超过预定时长,Page C合并至下一批迁移页。批迁移页的批次之间是串行化执行,运行时严格按照批处理顺序执行迁移,即批次Batch N处理完成后,才会处理Batch N+1。待包括Page A、Page B的批迁移页处理完之后,才能处理包括Page C的批迁移页。
图3B示出了根据本申请实施例的异常处理方法的流程示意图。
如图3B所示,在处理器运行第一线程块TB1时,收集在预定时长内的第一线程块TB1的多个待迁移页,例如Page A、Page B。在确定第一线程块TB1中的所有线程束均存在缺页异常的情况下,中断第一线程块TB1的运行,并利用第二线程块TB2切换第一线程块TB1。能够降低处理器的闲置时间,且使得在预定时长内收集到的批迁移页可以包括导致用于运行第一线程块TB1故障的待迁移页Page A、Page B和导致用于运行第二线程块TB2故障的待迁移页Page C。由此与虚拟内存的异常处理机制相适配,提高批迁移页中待迁移页数量,进而降低因迁移待迁移页而导致的性能下降问题。
与相关示例相比,利用本公开实施例提供的异常处理方法,减少了处理器的闲置时间,提高了处理器资源利用率。此外,因同一时段内,因线程块之间的切换频率增加,进而提升了批迁移页内待迁移页的数据量,进而提升了迁移效率,从而提高异常处理的频率。
上文通过实例进一步说明本申请的优势。下文将对如何确定第一线程块存在缺页异常进行说明。
根据本申请的实施例,针对如图2所示的操作S210之前,异常处理方法还可以包括:在确定归属于第一线程块的多个线程束均存在缺页异常的情况下,确定第一线程块存在缺页异常。
在本公开实施例提供的处理器上运行第一线程块,第一线程块包括M个线程束,每个线程束包括X个线程。X个线程可执行相同指令处理不同的数据。M和X均为大于1的正整数。
在X个线程中的任意一个线程存在缺页异常的情况下,因X个线程均执行相同指令,会因存在缺页异常的线程而均延迟处理。因此,确定该线程束存在缺页异常,中断该线程束的运行。
在归属于第一线程块的M个线程束均存在缺页异常的情况下,可确定第一线程块存在缺页异常,中断第一线程块。在归属于第一线程块的M个线程束中任一线程束运行正常的情况下,则不中断第一线程块。
根据本申请的实施例,本申请实施例提供的异常处理方法与实际SIMT执行模式相适配,能够提高异常处理的精准性和细粒度,提高任务执行效率的同时,提高运行稳定性。
根据本申请的实施例,确定归属于第一线程块的多个线程束是否均存在缺页异常,可以包括:基于目标线程的虚拟内存地址,从页表中查询在处理器上运行的目标线程所需的数据,得到查询结果。在查询结果表示目标线程所需的数据存储在扩展存储空间中的情况下,确定目标线程归属的线程束存在缺页异常,中断执行目标线程归属的线程束。
线程束中的多个线程分别按照相同指令处理不同数据。
每个目标线程独自处理各自的任务,以及调取任务所需的数据。可选地,可以利用虚拟内存地址,从页表中进行查询。页表表征虚拟内存地址与物理内存地址之间的映射关系。在任一线程的查询结果表示数据存储在扩展存储空间中的情况下,确定该线程存在缺页异常。在此情况下,确定目标线程归属的线程束存在缺页异常,中断执行目标线程归属的线程束。
在查询结果表示数据存储在处理器的存储单元中的情况下,则正常运行。
根据本申请的实施例,在处理器的并行处理任务过程中,将多个指令相同待处理数据不同的线程合并为一个线程束进行处理,由此提高并行能力的同时,在任一一个目标线程存在缺页异常的情况下,将该目标线程归属的线程束确定为存在缺页异常,避免同一线程束中的其他线程延迟的问题。
上文对如何确定第一线程块存在缺页异常进行说明,下文将对如何中断第一线程块进行说明。
根据本申请的实施例,针对如图2所示的操作S210,中断第一线程块的运行,可以包括:将第一线程块的上下文保存至全局内存。
第一线程块的上下文表示第一线程块运行状态。
可选地,上下文可以存储到共享内存或者全局内存。全局内存可以指配置在处理器外的可供处理器访存的存储空间,共享内存可以指配置在处理器上的存储空间。共享内存延迟低,但是容量有限;全局内存延迟高,但是容量大。可以根据实际情况灵活设置上下文的存储位置。
可选地,可以通过动态切换上下文来完成第一线程块的中断。例如,当激活状态的第一线程块的所有线程束均因缺页中断时,可以切换到备用线程块,将备用线程块作为第二线程块继续在处理器上运行。
具体地,可以将第一线程块的上下文保存,并利用GPU的调度器来管理并标记状态,例如将其标记为中断状态,完成中断。
可选地,全局内存可以是处理器外的可供处理器访存的存储空间。通过对上下文的切换,完成第一线程块的中断。
根据本申请的实施例,利用对第一线程块的上下文的处理完成第一线程块的中断,简化中断方式,提高处理效率。
上文对第一线程块的中断进行了说明。下文对第二线程块的激活进行说明。
根据本申请的实施例,针对如图2所示的操作S220,在处理器上运行第二线程块,可以包括:将运行第二线程块所需的数据和第二线程块的上下文迁移至处理器的存储单元中。第二线程块的上下文用于表征第二线程块的运行状态。
备用线程块,可以指处于未激活状态的线程块。在将备用线程块确定为第二线程块的情况下,将第二线程块的上下文由全局内存加载至处理器的存储单元中。
可选地,除支持第二线程块运行的上下文外,还包括供第二线程块运行的待处理数据。可将包括待处理数据的待迁移页一并迁移至处理器的存储单元中。
根据本申请的实施例,通过将上下文以及待迁移页迁移至处理器的存储单元中,将出于未激活状态的备用线程块转换为激活状态的第二线程块,以使得第二线程块运行在处理器上,激活方式简单且激活内容全面有效,提高激活效率和线程块的切换稳定性。
上文对如何激活第二线程块进行了说明,下文将对如何确定批迁移页进行说明。
根据本申请的实施例,针对如图2所示的操作S230,响应于当前时刻为目标时刻,将第一线程块和第二线程块各自导致缺页异常的多个待迁移页合并,作为批迁移页,包括:在确定的多个待迁移页的数据量超过预定数据量阈值的情况下,按照异常确定时刻,对多个待迁移页进行排序,得到时间排序结果。基于时间排序结果,将满足预定数据量阈值的多个待迁移页,作为批迁移页。将剩余的待迁移页,作为下一批次的批迁移页。
可以以上一批迁移页的迁移时刻计时,在当前时刻距离迁移时刻之间的时长满足预定时长的情况下,将当前时刻作为目标时刻。可以将该预定时长内确定的多个待迁移页合并,作为批迁移页。还可以作为候选批迁移页。确定候选批迁移页的数据量。在数据量超过预定数据量阈值的情况下,选择其中的一部分作为批迁移页。可以随机选取,但是并不局限于此,还可以按照异常确定时刻,对多个待迁移页进行排序,得到时间排序结果。基于时间排序结果,将异常确定时刻早发生的待迁移页,合并至当前待处理的批迁移页中,以基于早响应的任务请求,早处理且早恢复故障。由此提高任务处理效果。
根据本申请的另一实施例,响应于当前时刻为目标时刻,将存在缺页异常的多个待迁移页合并,作为批迁移页,还可以包括:在确定的多个待迁移页的数据量未超过预定数据量阈值的情况下,将多个待迁移页合并,作为批迁移页。
在将预定时长作为批迁移页的合并限制条件的同时,进一步将数据量作为限制条件,由此突出在批量处理待迁移页的过程中,通过数据量阈值进行限制,以降低资源占用率的同时,提高处理效率。
上文对确定批迁移页的通用方式进行了说明。下文将对如何进行批迁移页的迁移进行说明。
根据本申请的实施例,从扩展存储空间将所述批迁移页批量迁移至所述处理器的存储单元中,可以包括:在确定处理器的存储单元的空闲容量满足批迁移页的情况下,对锁页表中目标页表项进行加锁以阻止对目标页表项的写操作,并从扩展存储空间将批迁移页批量迁移至处理器的存储单元中;更新页表中目标页表项的虚拟内存地址与物理内存地址之间的映射关系。
对页表中目标页表项进行加锁可以指限制对页表中目标页表项进行“写”操作。可以待执行完批迁移页的批量迁移后,更新页表中目标页表项的虚拟内存地址与物理内存地址之间的映射关系。待更新完页表后,对页表中目标页表项进行解锁。完成故障修复。待处理器上SM空闲后,可重新启动与批迁移页对应的线程块。
根据本申请实施例提供的批迁移页的批量迁移操作,能够在批迁移页完成迁移的情况下,同时将页表进行更新,实现联动操作,避免因迁移和更新不统一而导致新的异常出现。
上文对如何进行批量迁移进行了具体说明,下文将对如何提高批量迁移的处理效率进行说明。
根据本申请的优选示例,在执行如图2所示的操作S230的过程中,异常处理方法还可以包括:对存储单元中存储的多个物理内存页进行评估,得到管理页评估结果。在管理页评估结果表征目标物理内存页与目标线程块之间不适配的情况下,将目标物理内存页作为驱逐页,从处理器的存储单元迁移至扩展存储空间。
目标物理内存页分配于目标线程块使用,目标线程块为在处理器上与第一线程块或第二线程块并行运行的线程块。
可选地,因物理内存页均存储至处理器的存储单元中。存储单元的容量固定。在每次迁入批迁移页之前,需要在存储单元中腾出存储空间,例如对已有的物理内存页进行迁移,这形成了串行化。
图4A示出了根据本申请相关示例的待迁移页的迁移流程示意图。
如图4A所示,待迁移页Page A和待迁移页Page B分别导致缺页异常,存储在扩展存储空间中,需要迁移至处理器的存储单元中。物理内存页Page X和物理内存页Page Y存储在处理器的存储单元中,是需要迁移至扩展存储空间中的。因存储单元的容量一定,当满载状态时,需要先将物理内存页Page X迁出,再迁入待迁移页Page A,再迁出物理内存页Page Y,再迁入待迁移页Page B,这一系列操作都是串行执行的。
当满载时,迁入新的待迁移页时,需要先迁出旧的物理内存页,来腾出空间。
利用本申请实施例提供的对使用频次低或者与线程块运行不适配的物理内存页进行预先迁移,能够利用该预迁移机制,提高页面迁移效率。
目标物理内存页与目标线程块不适配可以理解为:目标物理内存页中所包含的数据不再被访问或者目标物理内存页所包含的数据被访问的访问频率低于预定阈值。
图4B示出了根据本申请实施例的待迁移页的迁移流程示意图。
如图4B所示,在处理器中并行运行第一线程块TB1和目标线程块TBT,在第一线程块TB1切换至第二线程块TB2时,在预定时长内,确定待迁移页包括第一线程块TB1的待迁移页Page-TB1和第二线程块TB2的多个待迁移页Page-TB2之前,预先确定与目标线程块TBT不适配的目标物理内存页Page-TBT,预先将目标物理内存页Page-TBT从存储单元中迁移至扩展存储空间。
预先将与目标线程块不适配的目标物理内存页进行识别,并进行迁移,由此动态扩展存储单元的存储空间,避免硬性串行执行迁入迁出操作。
当检测到处理器的存储单元满载时,即使没有页面迁移请求,因预先对目标物理内存页进行迁移,腾出了可使用的存储空间,使得可以立刻进行一个批次的批迁移页的迁移操作,由此减少了页面迁入和迁出的串行度,提升了管理效率。
上文对如何迁移批迁移页进行了说明。下文将对如何从备用线程块中确定第二线程块进行说明。
根据本申请的实施例,在执行如图2所示的操作S220之前,异常处理方法还可以包括:从备用线程块中确定第二线程块。
可选地,从备用线程块中确定第二线程块可以包括:基于备用线程块的待执行任务的优先级,对多个备用线程块进行排序,得到线程块排序结果。基于线程块排序结果,从备用线程块中确定第二线程块。但是并不局限于此。还可以基于线程块排序结果,从备用线程块中确定候选备用线程块。在确定候选备用线程块所需的部分数据已存储在处理器的存储单元中的情况下,将候选备用线程块作为第二线程块。
基于线程块排序结果,从备用线程块中确定第二线程块,可以包括:按照优先级高低对多个备用线程块进行排序,得到线程块排序结果。将优先级最高的备用线程块作为候选备用线程块。将候选备用线程块直接作为第二线程块。
可选地,也可以将候选备用线程块所需的部分数据是否已存储在处理器的存储单元中进行识别,在确定候选备用线程块所需的部分数据已存储在处理器的存储单元中的情况下,将候选备用线程块作为第二线程块。在确定候选备用线程块所需的数据未存储在处理器的存储单元中的情况下,按照线程块排序结果,继续进行筛选,直至得到备用线程块,将其作为第二线程块。
与直接将优先级最高的备用线程块作为第二线程块的方式相比,确定候选备用线程块所需的部分数据已存储在处理器的存储单元中,能够降低用于运行第二线程块的批迁移页的迁移数据量,提高处理速度,避免确定的第二线程块因需要批迁移页而导致再次中断,无法在处理器上运行,进而导致处理器继续空闲的问题。
上文对如何从备用线程块中确定第二线程块进行了说明。下文将对如何确定备用线程块的数量进行说明。
根据本申请的实施例,可以将备用线程块的数量确定为固定值。但是并不局限于此。还可以将备用线程块的数量确定为动态可调整的。
根据本申请的优选实施例,将备用线程块的数量设置为动态调整的具体方式可以包括如下操作:基于历史时段内处理器的运行状态信息和处理器的硬件指标,确定备用线程块的数量。
可以基于历史时段内的处理器的运行状态信息和处理器的硬件指标,对当前时段的配置的备用线程块的数量进行预估。
处理器的运行状态信息可以表征处理器的运行性能,处理器的硬件指标可以表征处理器的可支持资源的最大能力。
基于历史时段内的处理器的运行状态信息和处理器的硬件指标,对当前时段可配置的备用线程块的数量进行预估,能够综合多方面因素共同考虑,保证备用线程可扩展性和动态调整性,通过线程块的动态切换,减少了处理器的闲置时间的同时,提升了批次合并的频率,最终达到提升资源利用率的效果。此外,还能够通过运行状态信息提高负载处理量和处理器运行性能稳定的兼顾能力。
根据本申请的实施例,可以采用函数拟合方式来确定备用线程块的数量。例如,将历史时段内处理器的运行状态信息和处理器的硬件指标作为参数,代入至评估函数中,得到备用线程块的数量。
根据本申请的另一实施例,还可以采用动作评估模型预测的方式。例如,基于运行状态信息和硬件指标,得到状态特征。基于状态特征,对备用线程块的数量进行评估,得到用于调整备用线程块的数量的动作评估结果。基于历史时段内的备用线程块的历史数量和动作评估结果,得到当前时段的备用线程块的数量。
具体地,可以将状态特征输入至动作评估模型中,得到用于调整备用线程块的数量的动作评估结果。例如,历史时段内配置的备用线程块的数量包括Y。基于动作评估结果,可以在Y的基础上增加、减少预定数量,得到当前时段的备用线程块的数量。
根据本申请的另一可选实施例,可以将状态特征输入至动作评估模型中,得到表示备用线程块的数量的线程块数量评估结果。
与直接得到线程块数量评估结果方式相比,基于动作评估结果和历史时段内配置的备用线程块的数量,共同确定当前时段的备用线程块的数量,能够利用动作评估结果对历史时段内配置的备用线程块的数量进行微调,提高扩展灵活性的同时,基于历史时段内配置的备用线程块的数量降低预测误差,进而避免因直接确定而导致的误差大的问题。
根据本申请的实施例,基于运行状态信息和硬件指标,得到状态特征,可以包括:分别对运行状态信息和硬件指标进行特征提取,得到运行状态特征和指标特征。对运行状态特征和指标特征进行特征融合,得到状态特征。
图5示出了根据本申请实施例的确定动作评估结果的示意图。
如图5所示,可以将运行状态信息510和硬件指标520分别输入至特征提取模块M510中,得到运行状态特征530和指标特征540。将运行状态特征530和指标特征540输入至融合模块M520中,以进行特征融合,得到状态特征550。将状态特征550输入至动作评估模型M530,得到动作评估结果560。
可选地,融合模块可以包括拼接或者点乘模块。特征提取模块M510可以包括编码解码器、卷积神经网络、长短期记忆网络。动作评估模型可以包括卷积神经网络、大语言模型、随机森林模型中的至少一项,在此不再赘述。
利用动作评估模型M530对动作评估结果进行预估,提高处理效率。
根据本申请的实施例,运行状态信息510可以包括以下至少一项,例如,页处理性能识别结果、页访问属性识别结果和线程运行性能识别结果。硬件指标可以包括以下至少一项:处理指标和硬件资源指标。
具体地,可以对待迁移的物理内存页的处理性能进行识别,得到页处理性能识别结果。页处理性能识别结果可以包括过早回收率或者过早回收率比率。
对待迁移的物理内存页的处理性能进行识别可以包括:确定单位时间内过早回收比例。或者确定单位时间内过早回收物理内存页比例的变化量。页处理性能识别结果越低表明越需要提高并发度。
对物理内存页的访问属性进行识别,得到页访问属性识别结果。页访问属性识别结果可以包括以下至少一项:物理内存页的访问频率、共享的物理内存页的比例。物理内存页的访问频率可以反映负载压力,越高越需要提高并发度。共享的物理内存页的比例越高表明越需要提高并发度。
例如,对物理内存页的访问属性进行识别可以包括:确定被多个线程块共同访问的物理内存页占总访问物理内存页的比例。或者确定单位时间内物理内存页总数。
对在处理器上运行的线程块的运行性能进行识别,得到线程运行性能识别结果。线程运行性能识别结果可以包括线程块的切换频率。线程运行性能识别结果的频率越高,表示切换的开销越大,越需要降低并发度。
对在处理器上运行的线程块的运行性能进行识别可以包括:单位时间内线程块上下文切换次数。
确定批迁移页的处理指标和硬件资源指标。基于处理指标和硬件资源指标中的至少一项,确定硬件指标。
批迁移页的处理指标可以包括单次批处理迁移的页面总量、批迁移页的合并时长。硬件资源指标可以包括处理器的硬件资源占用时长。
根据本申请的实施例,根据实际运行情况,确定影响并发度的参考因素,进而综合参考该些参考因素进行备用线程块数量的评估,使得评估准确有效。
根据本申请的可选实施例,还可以采用强化学习的方式,对用于基于状态特征,对备用线程块的数量进行评估,得到用于调整备用线程块的数量的动作评估结果的动作评估模型进行优化训练,以提高动作评估模型的针对性和智能性。
继续参考图5,可以基于当前时段的当前性能监测结果570和历史时段的历史性能监测结果580,确定模型评估结果590。基于模型评估结果590,对动作评估模型M530进行优化训练,得到优化训练的动作评估模型。
根据本申请的实施例,基于当前时段的当前性能监测结果和历史时段的历史性能监测结果,确定模型评估结果,可以包括:基于当前时段和历史时段各自的已处理任务量,确定针对任务执行性能指标的第一评估结果。基于当前时段和历史时段各自的待迁移的物理内存页的过早回收率变化率,确定针对不合理管理指标的第二评估结果。基于当前时段的资源占用监测结果,确定针对资源占用指标的第三评估结果。基于第一评估结果、第二评估结果和第三评估结果,确定模型评估结果。
可选地,确定资源占用监测结果可以包括:确定线程块的上下文切换时长。确定线程块的上下文切换频率。确定用于传输上下文的带宽占用率。基于切换时长、切换频率和带宽占用率,确定资源占用监测结果。
可选地,基于第一评估结果、第二评估结果和第三评估结果,确定模型评估结果可以包括:对第一评估结果和第二评估结果分别进行数据转换,确定表征性能增益的第一目标值和表征管理性能损失的第二目标值;基于第三评估结果中的针对时间占用指标的子评估结果和针对带宽资源占用指标的子评估结果,确定表征资源占用的第三目标值;对第一目标值、第二目标值和第三目标值,得到目标值;以及基于目标值和评估阈值,得到模型评估结果。
第一评估结果可以作为衡量处理器计算性能瞬时变化的核心指标,定义为相邻监控周期内平均每周期执行指令数的差值。可以利用当前周期指令吞吐量作为已处理任务量,相对于上一周期指令吞吐量的变化值,作为第一评估结果。
可以对第一评估结果进行数据转换,由此得到第一评估结果反映性能增益的第一目标值。
例如,第一评估结果=当前时段的指令数-历史时段的指令数。。
第二评估结果可以包括过早回收率。
过早回收率Premature Rate是指处理器中物理内存页被提前移除的比例,用于衡量因不合理回收策略导致的性能损失。其定义公式可参见公式(1)。
;公式(1)
对第二评估结果进行数据转换,确定表征管理性能损失的第二目标值,可以包括:基于过早回收率,确定过早回收率比例。过早回收率比例是指单位时间内被提前移除的过早回收率的变化量。可以将过早回收率比例作为第二目标值ΔEvictionRate,计算方式可参见公式(2)。过早回收率比例升高,表示回收决策错误率增加。
;公式(2)
第三评估结果可以表征资源占用监测结果。例如可以包括以下至少一个维度的监测结果,例如针对时间占用指标的子评估结果、频率惩罚因子和针对带宽资源占用指标的子评估结果。
针对时间占用指标的子评估结果可以采用如下公式(3)确定。
;公式(3)
其中,ContextSize表示单线程块的上下文数据量,MemoryBandwidth表示处理器的全局内存带宽,CyclesPerTransfer表示每次数据传输操作消耗的处理器的时钟周期数。
频率惩罚因子可以采用如下公式(4)确定。
;公式(4)
其中,ContextSwitchCount表示监控窗口内线程块上下文切换次数,MonitoringCycles表示固定监控周期。
针对带宽资源占用指标的子评估结果可以采用如下公式(5)确定。
;公式(5)
其中,MemBWUtil表示全局内存带宽占用率。
可以对第三评估结果进行如公式(6)的计算,得到第三目标值。
;公式(6)
其中,表示第三目标值,表示针对时间占用指标的子评估结果,表示频率惩罚因子,表示针对带宽资源占用指标的子评估结果。
对所述第一目标值、所述第二目标值和所述第三目标值,得到目标值,可以参考如下公式(7)计算得到。
;公式(7)
其中,ΔIPC表示第一目标值。表示第二目标值。表示第三目标值。表示目标值。表示权重。
可以将目标值与评估阈值进行比较,在目标值大于评估阈值时,模型评估结果表明当前动作评估模型的评估性能良好,无需进行优化。在目标值小于评估阈值时,模型评估结果表明当前动作评估模型的评估性能较差,可进行优化,以提高动作评估模型的评估性能。
根据本申请实施例提供的模型训练方法,能够通过当前时段和相邻历史时段的监测结果来进行对比,使得模型评估结果结合实际,真实有效。此外,模型评估结果结合了从不同角度考虑的参考评估数据,使得模型评估结果的参考性全面有效,进而使得利用模型评估结果优化训练效率高且训练后的模型精度高。
图6示出了根据本申请的实施例的异常处理装置的框图。
如图6所示,本申请的实施例的异常处理装置600包括中断模块610、激活模块620以及迁移模块630。
中断模块610,用于在确定处理器运行的第一线程块存在缺页异常的情况下,中断第一线程块的运行,其中,第一线程块包括多个线程束,第一线程块存在缺页异常表征多个线程束均存在缺页异常,线程束存在缺页异常表征运行线程束所需的数据存储在扩展存储空间中。在一实施例中,中断模块610可以用于执行前文描述的操作S210,在此不再赘述。
激活模块620,用于在处理器上运行第二线程块,其中,第二线程块从多个备用线程块中确定。在一实施例中,激活模块620可以用于执行前文描述的操作S220,在此不再赘述。
迁移模块630,用于响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从扩展存储空间将批迁移页批量迁移至处理器的存储单元中,其中,多个待迁移页包括以下数据中的至少一项:用于运行第一线程块的导致缺页异常的数据、用于运行第二线程块的导致缺页异常的数据。在一实施例中,迁移模块630可以用于执行前文描述的操作S230,在此不再赘述。
根据本申请的实施例,异常处理装置600还包括:线程块排序模块、候选确定模块以及第二线程块确定模块。
线程块排序模块,用于基于备用线程块待执行任务的优先级,对多个备用线程块进行排序,得到线程块排序结果。
候选确定模块,用于基于线程块排序结果,从备用线程块中确定候选备用线程块。
第二线程块确定模块,用于在确定运行候选备用线程块所需的部分数据已存储在物理内存页中的情况下,将候选备用线程块作为第二线程块,其中,物理内存页存储在处理器的存储单元中。
根据本申请的实施例,激活模块620包括:激活子模块。
激活子模块,用于将运行第二线程块所需的数据和第二线程块的上下文迁移至处理器的存储单元中,其中,第二线程块的上下文用于表征第二线程块的运行状态。
根据本申请的实施例,中断模块610包括:上下文保存子模块。
上下文保存子模块,用于将第一线程块的上下文保存至全局内存,其中,第一线程块的上下文表示第一线程块运行状态。
根据本申请的实施例,迁移模块630包括:时间排序子模块以及第一管理页迁移子模块。
时间排序子模块,用于在确定的多个待迁移页的数据量超过预定数据量阈值的情况下,按照异常确定时刻,对多个待迁移页进行排序,得到时间排序结果。
第一管理页迁移子模块,用于基于时间排序结果,将满足预定数据量阈值的多个待迁移页,作为批迁移页。
根据本申请的实施例,迁移模块630还包括:第二管理页迁移子模块。
第二管理页迁移子模块,用于在确定的多个待迁移页的数据量未超过预定数据量阈值的情况下,将多个待迁移页合并,作为批迁移页。
根据本申请的实施例,异常处理装置600还包括:页评估模块以及预迁移模块。
页评估模块,用于对存储单元中存储的多个待迁移页进行评估,得到页评估结果。
预迁移模块,用于在页评估结果表征目标物理内存页与目标线程块不适配的情况下,将目标物理内存页作为驱逐页,从处理器的存储单元迁移至扩展存储空间,其中,目标物理内存页分配于目标线程块使用,目标线程块为处理器上与第一线程块或第二线程块并行运行的线程块。
根据本申请的实施例,迁移模块630包括:锁子模块以及更新子模块。
锁子模块,用于在确定确定处理器的存储单元存在批迁移页的存储空间的情况下,对页表中目标页表项进行加锁以阻止对目标页表项的写操作,并从扩展存储空间将批迁移页批量迁移至处理器的存储单元中。
更新子模块,用于更新页表中目标页表项的虚拟内存地址与物理内存地址之间的映射关系。
根据本申请的实施例,异常处理装置600还包括:查询模块、束缺页异常确定模块。
查询模块,用于基于目标线程的虚拟内存地址,从页表中查询在处理器上运行的目标线程所需的数据,得到查询结果,其中,页表表征虚拟内存地址与物理内存地址之间的映射关系。
束缺页异常确定模块,用于在查询结果表示目标线程所需的数据存储在扩展存储空间中的情况下,确定目标线程归属的线程束存在缺页异常,中断执行目标线程归属的线程束,其中,线程束中的多个线程分别按照相同指令处理不同数据。
根据本申请的实施例,处理器上配置的备用线程块的数量通过如下备用块确定模块确定。
备用块确定模块,用于基于历史时段内处理器的运行状态信息和处理器的硬件指标,确定备用线程块的数量。
根据本申请的实施例,备用块确定模块包括:状态特征确定子模块、动作评估子模块以及备用块确定子模块。
状态特征确定子模块,用于基于运行状态信息和硬件指标,得到状态特征。
动作评估子模块,用于基于状态特征,对备用线程块的数量进行评估,得到用于调整备用线程块的数量的动作评估结果。
备用块确定子模块,用于基于历史时段内的备用线程块的历史数量和动作评估结果,得到当前时段的备用线程块的数量。
根据本申请的实施例,状态特征确定子模块包括:特征提取单元以及融合单元。
特征提取单元,用于分别对运行状态信息和硬件指标进行特征提取,得到运行状态特征和指标特征。
融合单元,用于对运行状态特征和指标特征进行特征融合,得到状态特征。
根据本申请的实施例,异常处理装置600还包括:第一识别模块、第二识别模块、第三识别模块、第四识别模块、状态确定模块、第五识别模块以及硬件确定模块。
第一识别模块,用于对待迁移的物理内存页的处理性能进行识别,得到页处理性能识别结果。
第二识别模块,用于对物理内存页的访问属性进行识别,得到页访问属性识别结果。
第三识别模块,用于对在处理器上运行的线程块的运行性能进行识别,得到线程运行性能识别结果。
状态确定模块,用于基于页处理性能识别结果、页访问属性识别结果和线程运行性能识别结果,得到运行状态信息。
第五识别模块,用于确定批迁移页的处理指标和硬件资源指标。
硬件确定模块,用于基于处理指标和硬件资源指标,确定硬件指标。
根据本申请的实施例,异常处理装置600包括:模型评估模块以及优化模块。
模型评估模块,用于基于当前时段的当前性能监测结果和历史时段的历史性能监测结果,确定模型评估结果。
优化模块,用于基于模型评估结果,对动作评估模型进行优化训练,得到优化训练的动作评估模型,其中,动作评估模型用于基于状态特征,对备用线程块的数量进行评估,得到用于调整备用线程块的数量的动作评估结果。
根据本申请的实施例,模型评估模块包括:第一评估子模块、第二评估子模块、第三评估子模块以及第四评估子模块。
第一评估子模块,用于基于当前时段和历史时段各自的已处理任务量,确定针对任务执行性能指标的第一评估结果。
第二评估子模块,用于基于当前时段和历史时段各自的批迁移页的过早回收率变化率,确定针对不合理管理指标的第二评估结果。
第三评估子模块,用于基于当前时段的资源占用监测结果,确定针对资源占用指标的第三评估结果。
第四评估子模块,用于基于第一评估结果、第二评估结果和第三评估结果,确定模型评估结果。
根据本申请的实施例,第四评估子模块包括第一转换单元、第二转换单元、融合单元和评估确定单元。
第一转换单元,用于对第一评估结果和第二评估结果分别进行数据转换,确定表征性能增益的第一目标值和表征管理性能损失的第二目标值。
第二转换单元,用于基于第三评估结果中的针对时间占用指标的子评估结果和针对带宽资源占用指标的子评估结果,确定表征资源占用的第三目标值。
融合单元,用于对第一目标值、第二目标值和第三目标值,得到目标值。
评估确定单元,用于基于目标值和评估阈值,得到模型评估结果。
根据本申请的实施例,中断模块610、激活模块620以及迁移模块630中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本申请的实施例,中断模块610、激活模块620以及迁移模块630中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,中断模块610、激活模块620以及迁移模块630中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本申请实施例的方法。
根据本申请的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本申请的实施例,计算机可读存储介质可以包括上文描述的ROM和/或RAM和/或ROM 和RAM 以外的一个或多个存储器。
本申请的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本申请实施例所提供的电子设备的控制方法。
在该计算机程序被处理器执行时执行本申请实施例的系统/装置中限定的上述功能。根据本申请的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
根据本申请的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本申请的各个实施例中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本申请的范围。
Claims (18)
1.一种异常处理方法,其特征在于,所述方法包括:
在确定处理器运行的第一线程块存在缺页异常的情况下,中断所述第一线程块的运行,其中,所述第一线程块包括多个线程束,所述第一线程块存在缺页异常表征多个所述线程束均存在缺页异常,所述线程束存在缺页异常表征运行所述线程束所需的数据存储在扩展存储空间中;
在所述处理器上运行第二线程块,其中,所述第二线程块从多个备用线程块中确定;以及
响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从所述扩展存储空间将所述批迁移页批量迁移至所述处理器的存储单元中,其中,所述待迁移页包括以下数据中的至少一项:用于运行所述第一线程块的导致缺页异常的数据、用于运行所述第二线程块的导致缺页异常的数据;
其中,所述处理器上配置的所述备用线程块的数量通过如下操作确定:
基于历史时段内所述处理器的运行状态信息和所述处理器的硬件指标,得到状态特征;
基于所述状态特征,对所述备用线程块的数量进行评估,得到用于调整所述备用线程块的数量的动作评估结果;以及
基于所述历史时段内的所述备用线程块的历史数量和所述动作评估结果,得到当前时段的所述备用线程块的数量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述备用线程块待执行任务的优先级,对多个所述备用线程块进行排序,得到线程块排序结果;
基于所述线程块排序结果,从所述备用线程块中确定候选备用线程块;以及
在确定运行所述候选备用线程块所需的部分数据已存储在所述处理器的存储单元中的情况下,将所述候选备用线程块作为所述第二线程块。
3.根据权利要求1所述的方法,其特征在于,在所述处理器上运行第二线程块,包括:
将运行所述第二线程块所需的数据和所述第二线程块的上下文迁移至所述处理器的存储单元中,其中,所述第二线程块的上下文用于表征所述第二线程块的运行状态。
4.根据权利要求1所述的方法,其特征在于,中断所述第一线程块的运行,包括:
将所述第一线程块的上下文保存至全局内存,其中,所述第一线程块的上下文表示所述第一线程块的运行状态。
5.根据权利要求1所述的方法,其特征在于,所述响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,包括:
在确定的多个所述待迁移页的数据量超过预定数据量阈值的情况下,按照异常确定时刻,对多个所述待迁移页进行排序,得到时间排序结果;
基于所述时间排序结果,将满足所述预定数据量阈值的多个所述待迁移页,作为所述批迁移页。
6.根据权利要求5所述的方法,其特征在于,所述响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,还包括:
在确定的多个所述待迁移页的数据量未超过所述预定数据量阈值的情况下,将多个所述待迁移页合并,作为所述批迁移页。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
对所述处理器的存储单元中存储的多个物理内存页进行评估,得到页评估结果;以及
在所述页评估结果表征目标物理内存页与目标线程块不适配的情况下,将所述目标物理内存页作为驱逐页,从所述处理器的存储单元迁移至所述扩展存储空间,其中,所述目标物理内存页分配于所述目标线程块使用,所述目标线程块为所述处理器上与所述第一线程块或所述第二线程块并行运行的线程块。
8.根据权利要求1所述的方法,其特征在于,所述从所述扩展存储空间将所述批迁移页批量迁移至所述处理器的存储单元中,包括:
在确定所述处理器的存储单元的空闲容量满足所述批迁移页的情况下,对页表中目标页表项进行加锁以阻止对所述目标页表项的写操作,并从所述扩展存储空间将所述批迁移页批量迁移至所述处理器的存储单元中;
更新所述页表中所述目标页表项的虚拟内存地址与物理内存地址之间的映射关系。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于目标线程的虚拟内存地址,从页表中查询在所述处理器上运行的所述目标线程所需的数据,得到查询结果,其中,所述页表表征虚拟内存地址与物理内存地址之间的映射关系;以及
在所述查询结果表示所述目标线程所需的数据存储在所述扩展存储空间中的情况下,确定所述目标线程归属的线程束存在缺页异常,中断执行所述目标线程归属的线程束,其中,所述线程束中的多个线程分别按照相同指令处理不同数据。
10.根据权利要求1所述的方法,其特征在于,所述基于所述运行状态信息和所述硬件指标,得到状态特征,包括:
分别对所述运行状态信息和所述硬件指标进行特征提取,得到运行状态特征和指标特征;以及
对所述运行状态特征和所述指标特征进行特征融合,得到所述状态特征。
11.根据权利要求1或10所述的方法,其特征在于,所述方法还包括:
对待迁移的物理内存页的处理性能进行识别,得到页处理性能识别结果;
对物理内存页的访问属性进行识别,得到页访问属性识别结果;
对在所述处理器上运行的线程块的运行性能进行识别,得到线程运行性能识别结果;以及
基于所述页处理性能识别结果、所述页访问属性识别结果和所述线程运行性能识别结果,得到所述运行状态信息;
确定所述批迁移页的处理指标和硬件资源指标;以及
基于所述处理指标和所述硬件资源指标,确定所述硬件指标。
12.根据权利要求10所述的方法,其特征在于,所述方法包括:
基于当前时段的当前性能监测结果和历史时段的历史性能监测结果,确定模型评估结果;以及
基于所述模型评估结果,对动作评估模型进行优化训练,得到优化训练的动作评估模型,其中,所述动作评估模型用于基于所述状态特征,对所述备用线程块的数量进行评估,得到用于调整所述备用线程块的数量的动作评估结果。
13.根据权利要求12所述的方法,其特征在于,所述基于当前时段的当前性能监测结果和历史时段的历史性能监测结果,确定模型评估结果,包括:
基于所述当前时段和所述历史时段各自的已处理任务量,确定针对任务执行性能指标的第一评估结果;
基于所述当前时段和所述历史时段各自的批迁移页的过早回收率变化率,确定针对不合理管理指标的第二评估结果;
基于所述当前时段的资源占用监测结果,确定针对资源占用指标的第三评估结果;以及
基于所述第一评估结果、所述第二评估结果和所述第三评估结果,确定所述模型评估结果。
14.根据权利要求13所述的方法,其特征在于,所述基于所述第一评估结果、所述第二评估结果和所述第三评估结果,确定所述模型评估结果,包括:
对所述第一评估结果和所述第二评估结果分别进行数据转换,确定表征性能增益的第一目标值和表征管理性能损失的第二目标值;
基于所述第三评估结果中的针对时间占用指标的子评估结果和针对带宽资源占用指标的子评估结果,确定表征资源占用的第三目标值;
根据所述第一目标值、所述第二目标值和所述第三目标值,得到目标值;以及
基于所述目标值和评估阈值,得到所述模型评估结果。
15.一种异常处理装置,包括:
中断模块,用于在确定处理器运行的第一线程块存在缺页异常的情况下,中断所述第一线程块的运行,其中,所述第一线程块包括多个线程束,所述第一线程块存在缺页异常表征多个所述线程束均存在缺页异常,所述线程束存在缺页异常表征运行所述线程束所需的数据存储在扩展存储空间中;
激活模块,用于在所述处理器上运行第二线程块,其中,所述第二线程块从多个备用线程块中确定;以及
迁移模块,用于响应于当前时刻为目标时刻,将导致缺页异常的多个待迁移页合并,作为批迁移页,从所述扩展存储空间将所述批迁移页批量迁移至所述处理器的存储单元中,其中,所述待迁移页包括以下数据中的至少一项:用于运行所述第一线程块的导致缺页异常的数据、用于运行所述第二线程块的导致缺页异常的数据;
其中,所述处理器上配置的备用线程块的数量通过如下备用块确定模块确定:
备用块确定模块,用于基于历史时段内所述处理器的运行状态信息和所述处理器的硬件指标,确定所述备用线程块的数量;
其中,所述备用块确定模块包括:
状态特征确定子模块,用于基于所述运行状态信息和所述硬件指标,得到状态特征;
动作评估子模块,用于基于所述状态特征,对所述备用线程块的数量进行评估,得到用于调整所述备用线程块的数量的动作评估结果;
备用块确定子模块,用于基于所述历史时段内的所述备用线程块的历史数量和所述动作评估结果,得到当前时段的所述备用线程块的数量。
16.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其特征在于,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至14中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至14中任一项所述的方法。
18.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至14中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511324427.1A CN120803803B (zh) | 2025-09-17 | 2025-09-17 | 异常处理方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511324427.1A CN120803803B (zh) | 2025-09-17 | 2025-09-17 | 异常处理方法、装置、设备、介质及程序产品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN120803803A CN120803803A (zh) | 2025-10-17 |
| CN120803803B true CN120803803B (zh) | 2025-11-28 |
Family
ID=97310441
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202511324427.1A Active CN120803803B (zh) | 2025-09-17 | 2025-09-17 | 异常处理方法、装置、设备、介质及程序产品 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120803803B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112162855A (zh) * | 2020-09-21 | 2021-01-01 | 南开大学 | 基于页锁定内存的gpu页缺失处理方法、系统及介质 |
| CN118132350A (zh) * | 2024-04-29 | 2024-06-04 | 苏州元脑智能科技有限公司 | Cxl内存容错方法、服务器系统、存储介质和电子设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111176831B (zh) * | 2019-12-05 | 2023-05-02 | 西安交通大学 | 基于多线程共享内存通信的动态线程映射优化方法及装置 |
| CN110795213B (zh) * | 2019-12-12 | 2022-06-07 | 东北大学 | 一种虚拟机迁移过程中活跃内存预测迁移方法 |
| CN119415213A (zh) * | 2023-07-27 | 2025-02-11 | 杭州阿里云飞天信息技术有限公司 | 内存预加载处理方法、设备和存储介质 |
| CN117272286A (zh) * | 2023-09-01 | 2023-12-22 | 中国人民解放军国防科技大学 | 基于tee的进程动态完整性度量方法及系统 |
-
2025
- 2025-09-17 CN CN202511324427.1A patent/CN120803803B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112162855A (zh) * | 2020-09-21 | 2021-01-01 | 南开大学 | 基于页锁定内存的gpu页缺失处理方法、系统及介质 |
| CN118132350A (zh) * | 2024-04-29 | 2024-06-04 | 苏州元脑智能科技有限公司 | Cxl内存容错方法、服务器系统、存储介质和电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120803803A (zh) | 2025-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8627143B2 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
| CN104335175B (zh) | 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统 | |
| US8839271B2 (en) | Call stack sampling to obtain information for analyzing idle states in a data processing system | |
| KR101475746B1 (ko) | 멀티-스레드 애플리케이션의 성능을 분석하는 방법 및 시스템 | |
| US9201806B2 (en) | Anticipatorily loading a page of memory | |
| JP6191691B2 (ja) | 異常検出装置、制御方法、及びプログラム | |
| CN104156197A (zh) | 微处理器以及微处理器操作方法 | |
| CN104657286A (zh) | 一种分级存储方法及装置 | |
| US8954969B2 (en) | File system object node management | |
| Yang et al. | Improving Spark performance with MPTE in heterogeneous environments | |
| US20230168925A1 (en) | Computing task scheduling based on an intrusiveness metric | |
| Liu et al. | Optimizing shuffle in wide-area data analytics | |
| CN119225933A (zh) | 一种进程调度方法、装置、设备、介质及计算机程序产品 | |
| US8862786B2 (en) | Program execution with improved power efficiency | |
| CN110096339B (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
| CN120803803B (zh) | 异常处理方法、装置、设备、介质及程序产品 | |
| CN118193540B (zh) | 索引处理方法、装置、电子设备及可读存储介质 | |
| Rao et al. | Online measurement of the capacity of multi-tier websites using hardware performance counters | |
| CN119179446A (zh) | 用于存储数据的方法、计算设备、存储介质和程序产品 | |
| US20090320036A1 (en) | File System Object Node Management | |
| WO2020140623A1 (zh) | 电子装置、元数据处理方法和计算机可读存储介质 | |
| US11934678B2 (en) | Data reduction for storage volumes | |
| CN119917288B (zh) | 内存资源动态分配方法、装置、电子设备及存储介质 | |
| CN119356897B (zh) | 一种risc-v平台动态cpu调度方法及系统 | |
| CN120196527B (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 |