CN113808001A - 一种单系统同时支持多gpu工作的方法及系统 - Google Patents

一种单系统同时支持多gpu工作的方法及系统 Download PDF

Info

Publication number
CN113808001A
CN113808001A CN202111373159.4A CN202111373159A CN113808001A CN 113808001 A CN113808001 A CN 113808001A CN 202111373159 A CN202111373159 A CN 202111373159A CN 113808001 A CN113808001 A CN 113808001A
Authority
CN
China
Prior art keywords
gpu
task
context
manager
idle
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
Application number
CN202111373159.4A
Other languages
English (en)
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.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive Technology 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 Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN202111373159.4A priority Critical patent/CN113808001A/zh
Publication of CN113808001A publication Critical patent/CN113808001A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory 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)
  • Hardware Redundancy (AREA)

Abstract

一种单系统同时支持多GPU工作的方法,包括以下步骤:GPU管理器接收图形和计算任务,并查找相关上下文;将任务与查找到的所述上下文进行关联,将任务发送到空闲GPU;GPU通过中断通知GPU管理器返回任务结果。本发明的单系统同时支持多GPU工作的方法及系统,能够在单个操作系统里同时使用多块GPU,提高GPU的利用效率,提高系统算力。

Description

一种单系统同时支持多GPU工作的方法及系统
技术领域
本发明涉及图形学及并行计算技术领域,特别是涉及车载芯片上的单系统同时支持多GPU工作的方法及系统。
背景技术
随着汽车电子的发展,在多媒体,连接,导航,仪表等需求的推动下,产生了越来越复杂的系统芯片(SOC),系统芯片集成了多个不同的GPU以支持更多的图形和计算需求。但是当前的车载系统中,单个操作系统内通常只能使用一个的GPU,大大降低了系统的算力,怎样同时在一个操作系统里使用多个GPU成为了亟待解决的问题。
在一个操作系统中同时使用芯片上的多个GPU资源,提高系统算力。
近些年来,在车载芯片中集成多个GPU成为了一种趋势,怎样同时使用多个GPU仍在探索。
在车载芯片中,多数采用硬隔离的方式,芯片中的GPU被分配到不同的操作系统使用。在只运行一个操作系统的时候,只有一个GPU在使用中,其他GPU不能得到充分的利用。在电脑领域,系统中也可以集成多块GPU,但是需要在使用时,指定一块GPU,不能同时使用。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种单系统同时支持多GPU工作的方法及系统,在单个操作系统里同时使用多块GPU,提高GPU的利用效率,提高系统算力。
为实现上述目的,本发明提供的一种单系统同时支持多GPU工作的方法,包括以下步骤:
GPU管理器接收图形和计算任务,并查找相关上下文;
将任务与查找到的所述上下文进行关联,将任务发送到空闲GPU;
GPU通过中断通知GPU管理器返回任务结果。
进一步地,所述上下文,包括,存储系统为任务分配的内存、GPU的状态设置。
进一步地,所述GPU管理器接收图形和计算任务,并查找相关上下文的步骤,还包括,
GPU管理器根据接收的任务信息查找是否存在相关上下文;
若不存在,为所述任务创建上下文,并分配相关资源;
若存在,则使用已有的上下文。
进一步地,所述将任务与查找到的所述上下文进行关联,将任务发送到空闲GPU的步骤,包括,
将任务与所述上下文关联;
查找是否存在空闲的GPU,若不存在将任务放入等待队列,等待GPU空闲;
若存在空闲的GPU,则根据上下文设置GPU的运行环境,并发送任务到GPU。
进一步地,还包括,
GPU管理器处理新的任务或进入空闲状态。
更进一步地,所述GPU通过中断通知GPU管理器返回任务结果的步骤,还包括,
GPU管理器为所述任务查找上下文信息,找到相应的应用程序并返回任务结果;
GPU管理器检查等待队列中是否存在等待任务;
若存在,则根据等待任务的上下文信息设置GPU状态,并将所述任务发送到GPU执行;
若不存在,则GPU空闲,GPU管理器恢复到处理下一个任务的状态。
为实现上述目的,本发明还提供一种车载芯片,包括如上文所述的单系统同时支持多GPU工作的系统。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的单系统同时支持多GPU工作的方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的单系统同时支持多GPU工作的方法的步骤。
本发明的单系统同时支持多GPU工作的方法及系统,具有以下有益效果:
在单个操作系统里同时使用多块GPU,提高GPU的利用效率,提高系统算力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的单系统同时支持多GPU工作的方法流程图;
图2为根据本发明的单系统同时支持多GPU工作的系统结构框图;
图3为根据本发明的实施例一任务处理流程示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的单系统同时支持多GPU工作的方法流程图,下面将参考图1,对本发明的单系统同时支持多GPU工作的方法进行详细描述。
首先,在步骤101,GPU Manager接收新的图形和计算任务,并查找相关上下文。
本发明实施例中,上下文中存储有,系统为该任务分配的内存等资源、GPU的状态设置等;GPU Manager中需要维护APP进程与上下文之间的关系列表,以及GPU状态列表。
优选地,接收新任务,GPU Manager根据APP进程等信息在上述上下文之间的关系列表中查找是否已经存在相关上下文。如果没有,就为该任务创建上下文,分配内存等相关资源,并将上下文与APP进程的对应关系加入上述上下文关系列表;如果存在则使用已有的上下文。
在步骤102,将任务与所述上下文关联,然后在GPU状态列表中查找是否存在空闲的GPU,如果没有就把任务放入等待队列,等待GPU空闲。如果存在空闲的GPU则根据上下文设置GPU的运行环境,发送任务到GPU,并更新GPU状态列表,记录该GPU正在执行任务的上下文。此后,GPU Manager可以继续处理新的任务,或者进入空闲状态。
在步骤103,GPU任务完成后通过中断通知GPU Manager。
优选地,步骤103中GPU任务完成后通过中断通知GPU Manager 的步骤,可具体执行为:GPU Manager在GPU状态列表中找到所执行任务上下文,更新任务上下文中的GPU状态信息。然后在上述上下文与APP进程关系表中找到相应的APP并返回任务结果。最后,GPUManager检查等待队列中是否存在等待任务。如果存在,则根据等待任务的上下文信息,为GPU设置状态,将该任务发送到GPU执行,并更新GPU状态列表。如果没有则GPU空闲,GPUManager恢复到可以处理下一个任务的状态。
实施例2
图2为根据本发明的单系统同时支持多GPU工作的系统结构框图,如图2所示,本发明的单系统同时支持多GPU工作的系统,包括,GPU管理器,多个GPU和共享内存,其中,
所述GPU管理器接收来自外部应用程序的图形和计算任务,并查找相关上下文将任务发送到空闲GPU。
所述GPU完成任务后通过中断通知GPU管理器返回任务结果。
所述共享内存用于存储多个GPU的数据。
图3为根据本发明的实施例一任务处理流程示意图,如图3所示,当有新的图形和计算任务到达GPU Manager时,GPU Manager根据APP进程等信息查找是否已经存在相关上下文。如果没有,就为该任务创建上下文,并分配相关资源;如果存在则使用已有的上下文。将任务与上述上下文关联。然后查找是否存在空闲的GPU,如果没有就把任务放入等待队列,等待GPU空闲。如果存在空闲的GPU则根据上下文设置GPU的运行环境,并发送任务到GPU。此后,GPU Manager可以继续处理新的任务,或者进入空闲状态。GPU任务完成后通过中断通知GPU Manager GPU Manager为该任务查找上下文信息,找到相应的APP并返回任务结果。而后,GPU Manager检查等待队列中是否存在等待任务。如果存在,则根据等待任务的上下文信息,为GPU设置状态,并将该任务发送到GPU执行。如果没有则GPU空闲,GPU Manager恢复到可以处理下一个任务的状态。
本申请针对将来越来越多的车载多GPU芯片,提供一种可以充分利用多GPU资源,提高系统算力的方案,在系统中实现软件模块GPU Manager统一管理系统中的多个GPU。对于上层APP而言,物理GPU是透明的,APP只和系统中唯一的GPU Manager交互。APP把图形和计算需求都发送给GPU Manager,再由GPU Manager分配给各个GPU,GPU完成工作后通过中断通知GPU Manager,再由GPU Manager转发给相应的APP。GPU之间通过共享内存传递数据,减少多GPU共同完成任务时的数据拷贝。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的单系统同时支持多GPU工作的方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的单系统同时支持多GPU工作的方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种单系统同时支持多GPU工作的方法,其特征在于,包括以下步骤:
GPU管理器接收图形和计算任务,并查找相关上下文;
将任务与查找到的所述上下文进行关联,将任务发送到空闲GPU;
GPU通过中断通知GPU管理器返回任务结果。
2.根据权利要求1所述的单系统同时支持多GPU工作的方法,其特征在于,所述上下文,包括,存储系统为任务分配的内存、GPU的状态设置。
3.根据权利要求1所述的单系统同时支持多GPU工作的方法,其特征在于,所述GPU管理器接收图形和计算任务,并查找相关上下文的步骤,还包括,
GPU管理器根据接收的任务信息查找是否存在相关上下文;
若不存在,为所述任务创建上下文,并分配相关资源;
若存在,则使用已有的上下文。
4.根据权利要求1所述的单系统同时支持多GPU工作的方法,其特征在于,所述将任务与查找到的所述上下文进行关联,将任务发送到空闲GPU的步骤,包括,
将任务与所述上下文关联;
查找是否存在空闲的GPU,若不存在将任务放入等待队列,等待GPU空闲;
若存在空闲的GPU,则根据上下文设置GPU的运行环境,并发送任务到GPU。
5.根据权利要求3所述的单系统同时支持多GPU工作的方法,其特征在于,还包括,
GPU管理器处理新的任务或进入空闲状态。
6.根据权利要求1所述的单系统同时支持多GPU工作的方法,其特征在于,所述GPU通过中断通知GPU管理器返回任务结果的步骤,还包括,
GPU管理器为所述任务查找上下文信息,找到相应的应用程序并返回任务结果;
GPU管理器检查等待队列中是否存在等待任务;
若存在,则根据等待任务的上下文信息设置GPU状态,并将所述任务发送到GPU执行;
若不存在,则GPU空闲,GPU管理器恢复到处理下一个任务的状态。
7.一种单系统同时支持多GPU工作的系统,其特征在于,包括GPU管理器,多个GPU和共享内存,其中,
所述GPU管理器接收图形和计算任务并查找相关上下文将任务发送到空闲GPU;
所述GPU完成任务后通过中断通知GPU管理器返回任务结果;
所述共享内存用于存储多个GPU的数据。
8.一种车载芯片,其特征在于,包括如权利要求7所述的单系统同时支持多GPU工作的系统。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至6任一项所述的单系统同时支持多GPU工作的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至6任一项所述的单系统同时支持多GPU工作的方法的步骤。
CN202111373159.4A 2021-11-19 2021-11-19 一种单系统同时支持多gpu工作的方法及系统 Pending CN113808001A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111373159.4A CN113808001A (zh) 2021-11-19 2021-11-19 一种单系统同时支持多gpu工作的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111373159.4A CN113808001A (zh) 2021-11-19 2021-11-19 一种单系统同时支持多gpu工作的方法及系统

Publications (1)

Publication Number Publication Date
CN113808001A true CN113808001A (zh) 2021-12-17

Family

ID=78938431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111373159.4A Pending CN113808001A (zh) 2021-11-19 2021-11-19 一种单系统同时支持多gpu工作的方法及系统

Country Status (1)

Country Link
CN (1) CN113808001A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170180272A1 (en) * 2012-10-03 2017-06-22 Tracey Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
CN107168782A (zh) * 2017-04-24 2017-09-15 复旦大学 一种基于Spark与GPU的并行计算系统
CN110888737A (zh) * 2019-11-18 2020-03-17 中国航空工业集团公司西安航空计算技术研究所 一种支持多GPU的Ringbuffer实现系统及方法
CN111737019A (zh) * 2020-08-31 2020-10-02 西安芯瞳半导体技术有限公司 一种显存资源的调度方法、装置及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170180272A1 (en) * 2012-10-03 2017-06-22 Tracey Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
CN107168782A (zh) * 2017-04-24 2017-09-15 复旦大学 一种基于Spark与GPU的并行计算系统
CN110888737A (zh) * 2019-11-18 2020-03-17 中国航空工业集团公司西安航空计算技术研究所 一种支持多GPU的Ringbuffer实现系统及方法
CN111737019A (zh) * 2020-08-31 2020-10-02 西安芯瞳半导体技术有限公司 一种显存资源的调度方法、装置及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄坤: "基于GPU并行计算的石油数据管理系统研究", 《电子技术与软件工程》 *

Similar Documents

Publication Publication Date Title
EP3514689B1 (en) Memory management method and apparatus
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
US8190864B1 (en) APIC implementation for a highly-threaded x86 processor
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
JP4612710B2 (ja) トランザクション並行制御方法、データベース管理システム、およびプログラム
US20060206894A1 (en) Method of scheduling jobs using database management system for real-time processing
US20130262776A1 (en) Managing Coherent Memory Between an Accelerated Processing Device and a Central Processing Unit
EP2284703B1 (en) Scheduling of tasks in a parallel computer system according to defined policies
US20040215860A1 (en) Virtualization of a global interrupt queue
US8051422B2 (en) Resource assignment method for query partioning based on processing cost of each partition
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US20070038818A1 (en) Routing interrupts in a multi-node system
CN1530842A (zh) 用于多处理器系统中的片上数据传输的方法和系统
CN104239134A (zh) 一种众核系统的任务管理方法和装置
CN112256414A (zh) 一种连接多种计算存储引擎的方法及系统
CN116136783A (zh) 多加速器框架中的高效加速器卸载
CN112114983B (zh) 一种基于共享内存的通信方法、装置和设备
US20150186189A1 (en) Managing array computations during programmatic run-time in a distributed computing environment
CN113051279A (zh) 数据消息的存储方法、存储装置、电子设备及存储介质
CN1851652A (zh) 嵌入式sram操作系统进程优先级轮转调度的实现方法
CN113808001A (zh) 一种单系统同时支持多gpu工作的方法及系统
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
EP4318211A1 (en) Method for inspecting code under weak memory order architecture, and corresponding device
CN113268356B (zh) 基于LINUX系统的多GPU板卡bounding的系统、方法及介质
US9329893B2 (en) Method for resuming an APD wavefront in which a subset of elements have faulted

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