CN117078495A - 图形处理器的内存分配方法、装置、设备及存储介质 - Google Patents
图形处理器的内存分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117078495A CN117078495A CN202311044931.7A CN202311044931A CN117078495A CN 117078495 A CN117078495 A CN 117078495A CN 202311044931 A CN202311044931 A CN 202311044931A CN 117078495 A CN117078495 A CN 117078495A
- Authority
- CN
- China
- Prior art keywords
- target
- memory
- queue
- responded
- target process
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 379
- 230000015654 memory Effects 0.000 title claims abstract description 230
- 230000008569 process Effects 0.000 claims abstract description 330
- 230000004044 response Effects 0.000 claims abstract description 138
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000000875 corresponding effect Effects 0.000 description 63
- 230000003068 static effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及进程管理技术领域,公开了图形处理器的内存分配方法、装置、设备及存储介质,本发明接收目标进程对应的目标数据,并将目标数据存储在第一内存中;基于目标进程,确定目标进程的响应优先级;根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中;当目标待响应队列中响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中。从而在进程启动时先将进程的数据放入中央处理器的内存中,在进程得到调度时再对图形处理器的内存进行分配,将数据放入图像处理器的内存中,从而避免未被调度的进程一直占据图形处理器的内存资源,避免出现进程向图形处理器申请内存失败的情况。
Description
技术领域
本发明涉及进程管理技术领域,具体涉及图形处理器的内存分配方法、装置、设备及存储介质。
背景技术
图形处理器(Graphics Processing Unit,GPU)的内存分配是指在使用图形处理器时,对图形处理器的内存进行合理分配,以使图形处理器达到最佳性能和效率。在产生新的进程时,进程会向图形处理器申请内存,以写入进程相关数据或者申请数据处理的需求内存。图形处理器的进程会设置静态优先级,在运行时采用抢占式调度,高优先级的进程会抢占低优先级的进程的运行权,在进程数量较多时,一些低优先级的进程就得不到调度,始终占据图形处理器的内存资源,导致新的进程在向图形处理器申请内存时失败而使整个进程退出。
发明内容
有鉴于此,本发明提供了一种图形处理器的内存分配方法、装置、计算机设备及存储介质,以解决进程数量较多时图形处理器的内存不足而导致进程的内存分配失败、整个进程退出的问题。
第一方面,本发明提供了一种图形处理器的内存分配方法,该方法包括:
接收目标进程对应的目标数据,并将目标数据存储在第一内存中;第一内存为中央处理器的存储空间;
基于目标进程的需求算力和时间信息,确定目标进程的响应优先级;时间信息用于限制响应目标进程的最迟时间;
根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中;
当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中;第二内存为图形处理器的存储空间。
如此,可以在进程启动时先将进程的数据放入中央处理器的内存中,在进程得到调度时再对图形处理器的内存进行分配,将进程的数据放入图像处理器的内存中,从而避免未被调度的进程一直占据图形处理器的内存资源,保证图像处理器的内存分配,避免出现进程向图形处理器申请内存失败的情况。
在一种可选的实施方式中,基于目标进程的需求算力和时间信息,确定目标进程的响应优先级,包括:
基于目标进程的需求算力,确定目标进程对应的处理时间;
基于目标进程的发起时间和最大容忍时间,确定目标进程对应的最迟处理时间;最大容忍时间为预先设定的目标进程等待响应的最大时间;
基于处理时间和最迟处理时间确定目标进程的响应优先级。
如此,可以根据进程的处理时间和最迟处理时间确定其响应优先级,同时考虑到处理进程的时间和最迟对进程进行处理的时间,在优先响应处理时间短的进程的同时避免进程超出最迟处理时间。
在一种可选的实施方式中,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中,包括:
根据目标进程的响应优先级,从待响应队列集合中确定出目标待响应队列;待响应队列集合包括多个对应不同响应优先级的待响应队列;
根据目标待响应队列中各个进程的响应优先级排序,确定目标进程在目标待响应队列中的排列位置;
将目标进程放入排列位置中。
如此,可以根据目标进程的响应优先级,将目标进程放入对应的目标待响应队列中对应的排列位置中,按照目标待响应队列中的响应优先级排序等待对目标进程的响应和处理。
在一种可选的实施方式中,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中,还包括:
当目标待响应队列中进程数量已满时,将响应优先级低于目标待响应队列的待响应队列,作为目标待响应队列。
如此,可以在优先级较高的待响应队列中进程数量已满的情况下,调配使用优先级低的待响应队列,保证所有进程都能够在待响应队列中排队等待响应。
在一种可选的实施方式中,该方法,还包括:
每隔预设时间,更新目标进程的响应优先级;
基于更新后的目标进程的响应优先级,调整目标进程对应的目标待响应队列,以及目标进程在目标待响应队列中的位置。
如此,可以动态调整进程的响应优先级。
在一种可选的实施方式中,将目标数据从第一内存中拷贝到第二内存中,包括:
基于目标数据的数据量,确定目标进程对应的目标存储区域;目标存储区域为第二内存的一部分;
将目标数据从第一内存中拷贝到目标存储区域中。
在一种可选的实施方式中,基于目标数据的数据量,确定目标进程对应的目标存储区域,包括:
当目标数据的数据量小于等于预设数据量时,将第一存储区域确定为目标存储区域;在第一存储区域中,目标进程的存储空间基于目标数据的数据量进行分配;
当目标数据的数量大于预设数据量时,将第二存储区域确定为目标存储区域;第一存储区域和第二存储区域构成第二内存;在第二存储区域中,目标进程的存储空间基于目标数据的数据量和预设分配单元的数据量进行分配。
如此,可以根据进程的数据量确定进程的数据存放在图形处理器的哪部分内存中,从而确定对进程的数据分配内存的方式。
第二方面,本发明提供了一种图形处理器的内存分配装置,该装置包括:
目标数据接收模块,用于接收目标进程对应的目标数据,并将目标数据存储在第一内存中;第一内存为中央处理器的存储空间;
响应优先级确定模块,用于基于目标进程的需求算力和时间信息,确定目标进程的响应优先级;时间信息用于限制响应目标进程的最迟时间;
目标待响应队列确定模块,用于根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中;
目标数据拷贝模块,用于当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中;第二内存为图形处理器的存储空间。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的图形处理器的内存分配方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的图形处理器的内存分配方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的图形处理器的内存分配方法的系统架构图;
图2是根据本发明实施例的图形处理器的内存分配方法的流程示意图;
图3是根据本发明实施例的另一图形处理器的内存分配方法的流程示意图;
图4是根据本发明实施例的又一图形处理器的内存分配方法的流程示意图;
图5是根据本发明实施例的再一图形处理器的内存分配方法的流程示意图;
图6是根据本发明实施例的图形处理器的内存分配装置的结构框图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,图形处理器的内存分配可以分为静态分配和动态分配两种方式。其中,静态分配是指在进程运行之前就确定每个变量所需要的内存大小,并且在进程运行期间不会改变。静态分配通常用于一些固定大小的数据结构,如图像、矩阵等。静态分配具有效率高的优点,但由于需要按照最大需求分配内存,会分配多余的内存,也就存在浪费内存资源的缺点。动态分配是指在进程运行期间根据需要动态分配内存,通常用于一些大小不确定的数据结构,如动态数组、链表等。动态分配具有节省内存的优点,但同时也具有效率低的缺点;一个典型的支持MMU(Memory Management Unit,内存管理单元)的图形处理器内存需要执行4个步骤:分配用户使用的图形处理器的物理内存,分配页表内存,填写页表以进行图形处理器内部虚拟内存的映射,映射图形处理器内存到主机,按照上述步骤,在进程运行期间进行内存的分配和释放,会占用较多计算时间。
同时,相关技术中,在多线程或者进程较多时,经常出现申请内存分配失败导致整个进程退出的情况。由于相关技术中在产生新的进程时,进程会直接向图形处理器申请内存,以写入进程相关数据或者申请数据处理的需求内存,并且图形处理器的进程会设置静态优先级,在运行时采用抢占式调度,高优先级的进程会抢占低优先级的进程的运行权,在进程数量较多时,一些低优先级的进程就得不到调度,始终占据图形处理器的内存资源,导致新的进程在向图形处理器申请内存时失败而使整个进程退出。
为了解决上述问题,本发明实施例提供了一种图形处理器的内存分配方法,该方法接收目标进程对应的目标数据,并将目标数据存储在第一内存中;第一内存为中央处理器的存储空间;基于目标进程的需求算力和时间信息,确定目标进程的响应优先级;根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中;当待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中;第二内存为图形处理器的存储空间。如此,可以在进程启动时先将进程的数据放入中央处理器的内存中,在进程得到调度时再对图形处理器的内存进行分配,将进程的数据放入图像处理器的内存中,从而避免未被调度的进程一直占据图形处理器的内存资源,保证图像处理器的内存分配,避免出现进程向图形处理器申请内存失败的情况。
本发明实施例提供的图形处理器的内存分配方法,可以应用于如图1所示的系统架构中。具体的,图1示出了根据本发明实施例的图形处理器的内存分配方法的系统架构图,如图1所示,与相关技术的系统架构相比,本发明实施例的系统架构在应用层和驱动层之间增加了针对图形处理器的内存管理模块和进程管理模块;内存管理模块用于管理图形处理器的内存和中央处理器的内存,进程管理模块用于管理调度进程,实现图形处理器内存资源的调度。图形处理器的GPU Bar地址空间对中央处理器和图形处理器均可见,作为计算单元执行进程时主要的访存资源;GPU reserved Bar地址空间为图形处理器的预留空间,主要用来保存图形处理器的内存管理单元页表,固件以及内部逻辑使用内存等;Register Bar地址空间是图形处理器的寄存器空间,用于主机配置图形处理器。
在一种可选的实施方式中,系统加载驱动,为图形处理器的上述bar分配主机地址空间,在图形处理器内部为上述bar分配图形处理器侧的地址空间,其中,将图形处理器侧的GPU Bar地址空间的起始地址记为GPU base,将中央处理器侧GPU Bar地址空间的起始地址设置记为CPU base;同时,系统调用驱动将GPU Bar地址空间分配给内存管理模块,使内存管理模块能够使用GPU Bar地址空间,驱动同时为GPU Bar地址空间在GPU reserved Bar地址空间内分配页表内存,并将页表相关的数据写入页表内存,以建立起图形处理器内部的虚拟内存映射关系,也就是在图形处理器的内存和GPU Bar地址空间之间建立映射关系;将GPU Bar地址空间映射到内存管理模块,使内存管理模块能够根据GPU Bar地址空间调用并分配图形处理器的内存。
根据本发明实施例,提供了一种图形处理器的内存分配方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种图形处理器的内存分配方法,可用于上述的系统架构,图2是根据本发明实施例的图形处理器的内存分配方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,接收目标进程对应的目标数据,并将目标数据存储在第一内存中。
本发明实施例中,第一内存为中央处理器的存储空间,作为图形处理器的内存的临时缓存区。与相关技术中再进程启动时直接向图形处理器申请分配内存,并将进程的数据写入图形处理器的内存不同,本发明实施例中,当目标进程启动时,会先将目标进程的目标数据存储在第一内存中,避免进程的数据存储在图形处理器的内存中却一直没有得到响应并执行而导致的图形处理器的内存资源一直被占用,影响其他进程向图形处理器申请内存。
在一种可选的实施方式中,内存管理模块申请主机内存资源的部分存储空间,也就是中央处理器的内存资源的部分存储空间作为第一内存。第一内存的初始大小可以是中央处理器的内存空间的1/2。
在一种可选的实施方式中,第一内存的大小可以是动态调整的,根据启动的进程数量来动态调整第一内存的大小。
在一种可选的实施方式中,可以按照第一内存的资源使用率来动态调整第一内存的大小,保证第一内存中始终有预设大小的存储空间未使用,以预留给未启动的进程。可选的,也可以设置第一内存的最大容量,以保证其他功能需求对中央处理器的内存的使用。
步骤S202,基于目标进程的需求算力和时间信息,确定目标进程的响应优先级。
本发明实施例中,需求算力是处理该目标进程所需要的计算能力,需求算力越小,处理目标进程所需的时间就越短;时间信息则是与目标进程相关的时间信息,用于限制响应目标进程的最迟时间。综合目标进程的需求算力和时间信息,确定目标进程的响应优先级。
步骤S203,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中。
本发明实施例中,根据目标进程的响应优先级,可以确定出该响应优先级对应的待响应队列,该待响应队列也就是目标进程对应的目标待响应队列,将目标进程放入目标待响应队列中,以在目标待响应队列中排队等待响应。
步骤S204,当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中。
本发明实施例中,第二内存为图形处理器的存储空间。在目标进程在目标待响应队列中排队等待响应的过程中,目标进程的目标数据一直存放在第一内存中,直到目标待响应队列中响应优先级最高的目标进程时,目标进程开始响应,此时图形处理器为目标进程分配内存,将目标数据从第一内存中拷贝到第二内存中,开始对目标进程进行处理。
在一种可选的实施方式中,在从中央处理器向图形处理器中拷贝数据,或者从图形处理器向中央处理器中拷贝数据时,均可以采用DMA(Direct Memory Access,直接存储器访问)方式,以节省时间片。当使用中央处理器侧DMA时,需要使用中央处理器侧的物理地址,由于GPU BAR地址空间经过内存映射,通过虚拟地址空间的地址virt_base和当前用户态的虚拟地址offset,就可以计算出当前用户态地址CPU_vir_addr对应的中央处理器侧的物理地址,具体的,中央处理器侧的物理地址CPU_phy_addr=CPU_base+(CPU_vir_addr-virt_base),基于该地址进行直接存储器访问操作;当使用图形处理器侧DMA时,需要使用图形处理器侧的物理地址空间,该地址可以通过中央处理器侧物理地址CPU_phy_addr和图形处理器侧GPU Bar地址空间起始地址GPU_base、中央处理器侧GPU Bar地址空间起始地址CPU_base计算,具体的,该图形处理器侧的物理地址空间GPU_phy_addr=CPU_phy_addr+(max(CPU_base,GPU_base)-min(CPU_base,GPU_base)),基于该地址进行图形处理器侧的直接存储器访问操作。
本发明实施例提供的图像处理器的内存分配方法,通过在进程启动时先将进程的数据放入中央处理器的内存中,在进程得到调度时再对图形处理器的内存进行分配,将进程的数据放入图像处理器的内存中,从而避免未被调度的进程一直占据图形处理器的内存资源,保证图像处理器的内存分配,避免出现进程向图形处理器申请内存失败的情况。
在本实施例中提供了一种图形处理器的内存分配方法,可用于上述的系统架构,图3是根据本发明实施例的另一图形处理器的内存分配方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,接收目标进程对应的目标数据,并将目标数据存储在第一内存中。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,基于目标进程的需求算力和时间信息,确定目标进程的响应优先级。
具体的,步骤S302,包括:
步骤S3021,基于目标进程的需求算力,确定目标进程对应的处理时间。
本发明实施例中,将图形处理器的计算单元根据算力划分为多个计算子单元,每个计算子单元的算力均相同。计算子单元的数量可以根据图形处理器的实际算力和应用场景进行设置,其大小与图像处理器的算力正相关,与任务计算量负相关。
本发明实施例中,将目标进程的需求算力与计算子单元的算力相除,得到目标进程对应的处理时间。
步骤S3022,基于目标进程的发起时间和最大容忍时间,确定目标进程对应的最迟处理时间。
本发明实施例中,目标进程的发起时间是目标进程启动的时间,最大容忍时间是目标进程在启动后能够接收的最大的未响应时间,时预先设定的目标进程等待响应的最大时间。将发起时间与最大容忍时间相加,就能够目标进程对应的最迟处理时间,目标进程需要在最迟处理时间之前进行响应并处理。当超出最迟处理时间,目标进程仍未响应时,将返回目标进程的未响应信息。
步骤S3023,基于处理时间和最迟处理时间确定目标进程的响应优先级。
本发明实施例中,可以根据如下公式(1),确定目标进程的响应优先级,响应优先级的数值越小,其优先级越高:
其中,P为响应优先级,te为最迟处理时间,T为当前时间,t为处理时间,weight为权重。
在一种可选的实施方式中,权重weight可以根据目标进程的预估处理时间来配置,预估处理时间越小,则权重weight的值越大。举例而言,在预估处理时间小于30ms时,设置权重weight的值为3;在预估处理时间小于100ms时,设置权重weight的值为2;在预估处理时间weight小于1000ms时,设置权重的值为1。
由上述公式(1)可知,最迟处理时间越大,响应优先级的数值越大,其优先级越低;预估处理时间越短,权重越大,响应优先级的数值也就越小,其优先级越高。
步骤S303,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中。详细请参见图2所示实施例的步骤S203,在此不再赘述。
步骤S304,当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中。详细请参见图2所示实施例的步骤S204,在此不再赘述。
本发明实施例提供的图形处理器的内存分配方法,通过进程的处理时间和最迟处理时间确定其响应优先级,同时考虑到处理进程的时间和最迟对进程进行处理的时间,在优先响应处理时间短的进程的同时避免进程超出最迟处理时间。
在本实施例中提供了一种图形处理器的内存分配方法,可用于上述的系统架构,图4是根据本发明实施例的又一图形处理器的内存分配方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,接收目标进程对应的目标数据,并将目标数据存储在第一内存中。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,基于目标进程的需求算力和时间信息,确定目标进程的响应优先级。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S403,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中。
具体的,步骤S403,包括:
步骤S4031,根据目标进程的响应优先级,从待响应队列集合中确定出目标待响应队列。
本发明实施例中,待响应队列集合包括多个对应不同响应优先级的待响应队列。待响应队列集合中待响应队列的数量与图形处理器的计算单元划分成的计算子单元的数量一致,一个计算子单元对应于一个待响应队列。
在一种可选的实施方式中,每个待响应队列对应的响应优先级可以均不相同。不同的目标进程的响应优先级,对应于不同的目标待响应队列。
在一种可选的实施方式中,可以将待响应队列划分为高优先级队列和低优先级队列,高优先级队列对应于相同的响应优先级,低优先级队列对应于相同的响应优先级。此时,高优先级队列和低优先级队列对应的响应优先级可以是一个区间,若目标响应优先级在高优先级队列对应的响应优先级区间,则将高优先级队列中的待响应队列作为目标待响应队列,若目标响应优先级在低优先级队列对应的响应优先级区间,则将低优先级队列中的待响应队列作为目标待响应队列。在从高优先级队列或者低优先级队列中确定目标待响应队列时,优先将队列中进程数量最少的待响应队列作为目标待响应队列。
步骤S4032,根据目标待响应队列中各个进程的响应优先级排序,确定目标进程在目标待响应队列中的排列位置。
本发明实施例中,根据目标待响应队列中各个进程的响应优先级排序,响应优先级高,即响应优先级的数值小的进程,排在目标待响应队列中的前面,由此确定目标进程在目标待响应队列中的排列位置。
在一种可选的实施方式中,当目标待响应队列中存在响应优先级相同,即响应优先级的数值相同的进程时,可以按照进程的启动时间对响应优先级相同的进程进行排序,将启动时间更早的进程排列在前面,以优先响应先启动的进程。
在一种可选的实施方式中,当目标待响应队列中存在响应优先级相同,即响应优先级的数值相同的进程时,可以按照进程的最迟处理时间来对响应优先级相同的进程进行排序,将最迟处理时间更早的进程排列在前面,以优先响应即将到期的进程。
步骤S4033,将目标进程放入排列位置中。
本发明实施例中,将目标进程放入目标待响应队列中对应的排列位置中,以在目标待响应队列中排队等待响应。
在一种可选的实施方式中,步骤S403,还可以包括:当目标待响应队列中进程数量已满时,将响应优先级低于目标待响应队列的待响应队列,作为目标待响应队列,从而在优先级较高的待响应队列中进程数量已满的情况下,调配使用优先级低的待响应队列,保证所有进程都能够在待响应队列中排队等待响应。
在一种可选的实施方式中,步骤S403,还可以包括:当响应优先级高于目标待响应队列的待响应队列中进程数量未满时,可以将目标待响应队列中响应优先级高的进程移入该待响应队列中,以提高图形处理器的使用率。
在一种可选的实施方式中,各个待响应队列的队列长度,也就是能够放置的进程数量可以与其对应的响应优先级正相关。
在一种可选的实施方式中,该方法,还可以包括动态调整响应优先级的步骤:每隔预设时间,更新目标进程的响应优先级;基于更新后的目标进程的响应优先级,调整目标进程对应的目标待响应队列,以及目标进程在目标待响应队列中的位置。由此,可以随着进程的等待时间的增加而提升进程的响应优先级,在保证高优先级的进程的响应的基础上,避免低优先级的进程一直处于等待响应状态。
以下以将计算单元划分为8个计算子单元为例,对上述步骤作进一步说明:
计算单元划分为8个计算子单元,那么待响应队列的数量也就为8个。如下表1所示,将待响应队列按照0到7进行编号,设置0-5号待响应队列为高优先级队列,其对应的响应优先级为小于等于2,设置6号和7号待响应队列为低优先级队列,其对应的响应优先级为大于2。同时设置0号待响应队列的队列长度为6,即其对应的响应优先级数值的3倍,1-5号待响应队列的队列长度为2,即与其对应的响应优先级数值一直,7号和7号待响应队列的队列长度为N,N为图形处理器支持的最大任务数量。各个待响应队列分别按照表1中的运行时间,定时更新其中进程的响应优先级,并调整其中进程的排序。
表1
队列序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
优先级 | 2 | 2 | 2 | 2 | 2 | 2 | >2 | >2 |
运行时间 | <3*101 | <1*102 | <1*103 | <1*104 | <1*105 | <1*106 | ||
队列长度 | 6 | 2 | 2 | 2 | 2 | 2 | N | N |
步骤S404,当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中。详细请参见图2所示实施例的步骤S204,在此不再赘述。
本发明实施例提供的图形处理器的内存分配方法,根据目标进程的响应优先级,将目标进程放入对应的目标待响应队列中对应的排列位置中,按照目标待响应队列中的响应优先级排序等待对目标进程的响应和处理。
在本实施例中提供了一种图形处理器的内存分配方法,可用于上述的系统架构,图5是根据本发明实施例的图形处理器的再一内存分配方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,接收目标进程对应的目标数据,并将目标数据存储在第一内存中。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S502,基于目标进程的需求算力和时间信息,确定目标进程的响应优先级。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S503,根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中。详细请参见图2所示实施例的步骤S203,在此不再赘述。
步骤S504,当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中。
具体的,步骤S504,包括:
步骤S5041,基于目标数据的数据量,确定目标进程对应的目标存储区域。
本发明实施例中,目标存储区域为第二内存的一部分,具体的,第二内存分为第一存储区域和第二存储区域,目标存储区域则为第一存储区域和第二存储区域中的其中一个。
本发明实施例中,在第一存储区域中,目标进程的存储空间基于目标数据的数据量进行分配;在第二存储区域中,目标进程的存储空间基于目标数据的数据量和预设分配单元的数据量进行分配。那么,上述步骤S5041可以分为如下两种情况:
第一种情况,当目标数据的数据量小于等于预设数据量时,将第一存储区域确定为目标存储区域。具体的,当目标数据的数据量小于等于预设数据量时,直接按照目标数据的数据量分配相应大小的存储空间。
第二种情况,当目标数据的数量大于预设数据量时,将第二存储区域确定为目标存储区域。具体的,当目标数据的数据量小于等于预设数据量时,按照目标数据的数据量与预设分配单元的数据量的比例分配存储空间。将目标数据的数据量与预设分配单元的数据量相除,并将不足1的部分向上取整,得到目标数据对应的所需的预设分配单元的数量,然后按照该数量为目标数据分配相应的存储空间。
由此,通过上述方法,根据进程的数据量确定进程的数据存放在图形处理器的哪部分内存中,从而确定对进程的数据分配内存的方式。
步骤S5042,将目标数据从第一内存中拷贝到目标存储区域中。
本发明实施例中,在确定目标数据对应的目标存储区域后,也就是确定目标数据对应的内存分配方式后,按照对应的内存分配方式,将目标数据从第一内存中拷贝到目标存储区域中,以完成对目标进程的响应和处理。
在本实施例中还提供了一种图形处理器的内存分配装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种图形处理器的内存分配装置,如图6所示,该装置包括:
目标数据接收模块601,用于接收目标进程对应的目标数据,并将目标数据存储在第一内存中;第一内存为中央处理器的存储空间;
响应优先级确定模块602,用于基于目标进程的需求算力和时间信息,确定目标进程的响应优先级;时间信息用于限制响应目标进程的最迟时间;
目标待响应队列确定模块603,用于根据目标进程的响应优先级,确定目标进程对应的目标待响应队列,并将目标进程放入目标待响应队列中;
目标数据拷贝模块604,用于当目标待响应队列中,响应优先级最高的进程为目标进程时,将目标数据从第一内存中拷贝到第二内存中;第二内存为图形处理器的存储空间。
在一种可选的实施方式中,响应优先级确定模块602,包括:
处理时间确定单元,用于基于目标进程的需求算力,确定目标进程对应的处理时间;
最迟处理时间确定单元,用于基于目标进程的发起时间和最大容忍时间,确定目标进程对应的最迟处理时间;最大容忍时间为预先设定的目标进程等待响应的最大时间;
响应优先级确定单元,用于基于处理时间和最迟处理时间确定目标进程的响应优先级。
在一种可选的实施方式中,目标待响应队列确定模块603,包括:
目标待响应队列确定单元,用于根据目标进程的响应优先级,从待响应队列集合中确定出目标待响应队列;待响应队列集合包括多个对应不同响应优先级的待响应队列;
排列位置确定单元,用于根据目标待响应队列中各个进程的响应优先级排序,确定目标进程在目标待响应队列中的排列位置;
目标进程放置单元,用于将目标进程放入排列位置中。
在一种可选的实施方式中,目标待响应队列确定模块603,还包括:
目标待响应队列确定单元,还用于当目标待响应队列中进程数量已满时,将响应优先级低于目标待响应队列的待响应队列,作为目标待响应队列。
在一种可选的实施方式中,该装置,还包括:
响应优先级更新模块,用于每隔预设时间,更新目标进程的响应优先级;
目标待响应队列调整模块,用于基于更新后的目标进程的响应优先级,调整目标进程对应的目标待响应队列,以及目标进程在目标待响应队列中的位置。
在一种可选的实施方式中,目标数据拷贝模块604,包括:
目标存储区域确定单元,用于基于目标数据的数据量,确定目标进程对应的目标存储区域;目标存储区域为第二内存的一部分;
目标数据拷贝单元,用于将目标数据从第一内存中拷贝到目标存储区域中。
在一种可选的实施方式中,目标存储区域确定单元,还用于:
当目标数据的数据量小于等于预设数据量时,将第一存储区域确定为目标存储区域;在第一存储区域中,目标进程的存储空间基于目标数据的数据量进行分配;
当目标数据的数量大于预设数据量时,将第二存储区域确定为目标存储区域;第一存储区域和第二存储区域构成第二内存;在第二存储区域中,目标进程的存储空间基于目标数据的数据量和预设分配单元的数据量进行分配。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的图形处理器的内存分配装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的图形处理器的内存分配装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时及其可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种图形处理器的内存分配方法,其特征在于,所述方法包括:
接收目标进程对应的目标数据,并将所述目标数据存储在第一内存中;所述第一内存为中央处理器的存储空间;
基于所述目标进程的需求算力和时间信息,确定所述目标进程的响应优先级;所述时间信息用于响应所述目标进程的最迟时间;
根据所述目标进程的响应优先级,确定所述目标进程对应的目标待响应队列,并将所述目标进程放入目标待响应队列中;
当所述目标待响应队列中,所述响应优先级最高的进程为所述目标进程时,将所述目标数据从所述第一内存中拷贝到第二内存中;所述第二内存为图形处理器的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标进程的需求算力和时间信息,确定所述目标进程的响应优先级,包括:
基于所述目标进程的需求算力,确定所述目标进程对应的处理时间;
基于所述目标进程的发起时间和最大容忍时间,确定所述目标进程对应的最迟处理时间;所述最大容忍时间为预先设定的所述目标进程等待响应的最大时间;
基于所述处理时间和最迟处理时间确定所述目标进程的响应优先级。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标进程的响应优先级,确定所述目标进程对应的目标待响应队列,并将所述目标进程放入目标待响应队列中,包括:
根据所述目标进程的响应优先级,从待响应队列集合中确定出所述目标待响应队列;所述待响应队列集合包括多个对应不同所述响应优先级的待响应队列;
根据所述目标待响应队列中各个进程的响应优先级排序,确定所述目标进程在所述目标待响应队列中的排列位置;
将所述目标进程放入所述排列位置中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标进程的响应优先级,确定所述目标进程对应的目标待响应队列,并将所述目标进程放入目标待响应队列中,还包括:
当所述目标待响应队列中进程数量已满时,将所述响应优先级低于所述目标待响应队列的待响应队列,作为所述目标响应队列。
5.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
每隔预设时间,更新所述目标进程的响应优先级;
基于更新后的所述目标进程的响应优先级,调整所述目标进程对应的所述目标待响应队列,以及所述目标进程在所述目标待响应队列中的位置。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标数据从所述第一内存中拷贝到第二内存中,包括:
基于所述目标数据的数据量,确定所述目标进程对应的目标存储区域;所述目标存储区域为所述第二内存的一部分;
将所述目标数据从所述第一内存中拷贝到所述目标存储区域中。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标数据,确定所述目标进程对应的目标存储区域,包括:
当所述目标数据的数据量小于等于预设数据量时,将第一存储区域确定为所述目标存储区域;在所述第一存储区域中,所述目标进程的存储空间基于所述目标数据的数据量进行分配;
当所述目标数据的数量大于所述预设数据量时,将第二存储区域确定为所述目标存储区域;所述第一存储区域和所述第二存储区域构成所述第二内存;在所述第二存储区域中,所述目标进程的存储空间基于所述目标数据的数据量和预设分配单元的数据量进行分配。
8.一种图形处理器的内存分配装置,其特征在于,所述装置包括:
目标数据接收模块,用于接收目标进程对应的目标数据,并将所述目标数据存储在第一内存中;所述第一内存为中央处理器的存储空间;
响应优先级确定模块,用于基于所述目标进程的需求算力和时间信息,确定所述目标进程的响应优先级;所述时间信息用于限制响应所述目标进程的最迟时间;
目标待响应队列确定模块,用于根据所述目标进程的响应优先级,确定所述目标进程对应的目标待响应队列,并将所述目标进程放入目标待响应队列中;
目标数据拷贝模块,用于当所述目标待响应队列中,所述响应优先级最高的进程为所述目标进程时,将所述目标数据从所述第一内存中拷贝到第二内存中;所述第二内存为图形处理器的存储空间。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的图形处理器的内存分配方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的图形处理器的内存分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311044931.7A CN117078495A (zh) | 2023-08-18 | 2023-08-18 | 图形处理器的内存分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311044931.7A CN117078495A (zh) | 2023-08-18 | 2023-08-18 | 图形处理器的内存分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117078495A true CN117078495A (zh) | 2023-11-17 |
Family
ID=88717875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311044931.7A Pending CN117078495A (zh) | 2023-08-18 | 2023-08-18 | 图形处理器的内存分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117078495A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117593172A (zh) * | 2024-01-16 | 2024-02-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
-
2023
- 2023-08-18 CN CN202311044931.7A patent/CN117078495A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117593172A (zh) * | 2024-01-16 | 2024-02-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
CN117593172B (zh) * | 2024-01-16 | 2024-04-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B9 (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN108984264B (zh) | 虚拟gpu的实现方法、装置及系统 | |
CN107835989B (zh) | 共享存储控制器及使用共享存储控制器的方法 | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
US20050097384A1 (en) | Data processing system with fabric for sharing an I/O device between logical partitions | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
WO2008083030A2 (en) | Efficient resource arbitration | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN107851065B (zh) | 预先缓存分配器 | |
CN117078495A (zh) | 图形处理器的内存分配方法、装置、设备及存储介质 | |
WO2016202153A1 (zh) | 一种gpu资源的分配方法及系统 | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
US11704058B2 (en) | Systems and methods for resource-based scheduling of commands | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US11093291B2 (en) | Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost | |
EP3166019A1 (en) | Memory devices and methods | |
CN107179998A (zh) | 一种配置外设内存缓冲区的方法及装置 | |
CN116501506A (zh) | 一种资源轮询仲裁方法、装置、介质及计算设备 | |
CN113590289B (zh) | 作业调度方法、系统、装置、计算机设备和存储介质 | |
US9483502B2 (en) | Computational processing device including request holding units each provided for each type of commands, information processing device including request holding units each provided for each type of commands, and method of controlling information processing device | |
CN118409871B (zh) | 一种数据处理方法、产品、服务器及介质 | |
JP6364827B2 (ja) | 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム | |
CN111831397B (zh) | 处理io请求的方法、装置、设备及存储介质 | |
US6959361B2 (en) | Distributed caching mechanism for pending memory operations within a memory controller | |
CN114090228A (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 |