CN105988874A - 资源处理方法及装置 - Google Patents

资源处理方法及装置 Download PDF

Info

Publication number
CN105988874A
CN105988874A CN201510069338.7A CN201510069338A CN105988874A CN 105988874 A CN105988874 A CN 105988874A CN 201510069338 A CN201510069338 A CN 201510069338A CN 105988874 A CN105988874 A CN 105988874A
Authority
CN
China
Prior art keywords
resource
gpu
piece
video memory
code
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
CN201510069338.7A
Other languages
English (en)
Other versions
CN105988874B (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510069338.7A priority Critical patent/CN105988874B/zh
Priority to TW104128813A priority patent/TWI696952B/zh
Priority to US15/017,070 priority patent/US9965826B2/en
Priority to PCT/US2016/017024 priority patent/WO2016130487A1/en
Publication of CN105988874A publication Critical patent/CN105988874A/zh
Application granted granted Critical
Publication of CN105988874B publication Critical patent/CN105988874B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

本申请提供一种资源处理方法及装置。方法包括:接收部署于第一设备上的应用程序中的主机代码发出的资源分配请求;根据资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从第一设备的至少一块GPU可提供的硬件资源中为应用程序中的设备代码分配运行所需的资源;将所分配的资源的信息返回给主机代码。本申请可以有效利用GPU资源,并降低实现代价。

Description

资源处理方法及装置
【技术领域】
本申请涉及软件技术领域,尤其涉及一种资源处理方法及装置。
【背景技术】
随着数据量和计算规模不断增大,越来越多的应用程序选择图形处理器(Graphics Processing Unit,GPU)作为计算资源。在使用GPU的过程中,操作系统负责获取GPU的底层硬件细节,并将GPU的底层硬件细节提供给应用程序,应用程序根据GPU的底层硬件细节,确定并向GPU申请所需的GPU资源。
一些显卡厂商(如NVIDIA、AMD)为了追求高性能,不断推出新架构的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为现有从底层硬件到上层应用程序之间的多层次结构示意图;
图3为本申请提供的从底层硬件到上层应用程序之间的多层次结构示意图;
图4为本申请一实施例提供的资源处理方法的流程示意图;
图5为本申请一实施例提供的虚拟内存与显存资源之间的映射关系示意图;
图6为本申请一实施例提供的资源处理装置的结构示意图;
图7为本申请另一实施例提供的资源处理装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于GPU进行计算的应用程序包括两部分:主机代码(Host Code)和设备代码(Device Code),其中主机代码在CPU上执行,而设备代码也称为核函数(Kernel Function),在GPU上执行。现有基于GPU进行计算的应用程序的大致运行流程如图1所示,包括以下步骤:
(1)在CPU控制下,将需要处理的数据从计算机内存复制到GPU显存中;
(2)CPU将设备代码发送给GPU;
(3)GPU的多处理器对显存中的数据执行设备代码,在计算过程中,GPU多次读写显存数据,并且设备代码的运算结果也会保存在显存中;
(4)在CPU控制下,显存中的运算结果被复制到计算机内存。
发明人经研究发现,现有基于GPU的应用程序是面向单块GPU设计的,上述流程适用于单GPU的场景,若要在单机多卡的硬件结构上运行应用程序,程序设计员需要重新设计应用程序,使应用程序能够根据单机多卡的底层硬件细节(例如显存容量、计算单元数、由几块GPU构成等)使用硬件资源,以适应单机多卡的硬件结构,这种实现方式代价较高。
针对上述问题,本申请提供一种资源管理方法。通过该方法,基于GPU进行计算的应用程序可运行于包括GPU和CPU的设备上,且应用程序不需要考虑底层硬件细节,不需要重新设计应用程序,在有效利用GPU资源的基础上,可降低实现代价。
在介绍本申请方法流程之前,简单描述一下本申请方法的运行环境。
为便于描述,将包括GPU和CPU的设备称为第一设备。第一设备可以是任何设备。从实质上来说,第一设备是一台单机多卡设备,即是一台设备上同时配置有至少一块GPU,并且同时包括CPU。
在计算机领域中,从底层硬件到上层应用程序,中间分为多个层次,如图2所示,一种最为常见的层次结构包括:至少一块GPU、驱动程序、操作系统、库函数和应用程序。
其中,驱动程序是专门与硬件设备通信的模块,一般由硬件生产厂商提供,例如NVIDIA提供NVIDIA GPU驱动,AMD提供AMD GPU驱动。驱动程序将硬件抽象化为文件操作,为操作系统提供支持。操作系统具有一定资源管理能力,并为多个用户、多个进程提供资源分配服务,防止发生竞争。在操作系统之上,是为应用程序提供的库函数,便于用户通过指定接口与底层硬件交互,可防止用户恶意破坏硬件。
在本申请中,为了支持本申请方法的运行,在图2所示层次结构上增加一虚拟中间件,该虚拟中间件的主要目的是将至少一块GPU可提供的硬件资源映射成统一虚拟GPU资源,即映射成一块虚拟GPU的资源进行处理,并维护至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,使得应用程序不用重新设计,即可运行在单机多卡设备上,降低实现成本。
值得说明的是,该虚拟中间件可位于任意两层之间实现。可选的,如图3所示,该虚拟中间件可位于驱动程序和操作系统之间,执行效率高;利用驱动程序直接管理底层硬件,将至少一块GPU映射成一块虚拟GPU。当然,该虚拟中间件也可以位于操作系统和库函数之间、库函数与应用程序之间。
值得说明的是,上述虚拟中间件可以作为后续实施例中的资源处理装置来实现。
图4为本申请一实施例提供的资源处理方法的流程示意图。如图4所示,该方法包括:
401、接收部署于第一设备上的应用程序中的主机代码发出的资源分配请求。
402、根据资源分配请求和所维护的第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从第一设备的至少一块GPU可提供的硬件资源中为应用程序中的设备代码分配运行所需的资源。
403、将所分配的资源的信息返回给主机代码。
本实施例提供一种资源处理方法,可由资源处理装置来执行。资源处理装置位于第一设备上的GPU与应用程序之间,维护着第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,负责按照该映射逻辑统一管理和调度GPU资源,并实现应用程序与底层GPU硬件之间的适配,该资源处理装置具体可作为图3所示层次结构中的虚拟中间件实现。
根据本申请一个实施例,上述方法也可以由操作系统内核层或者驱动层执行,即上述虚拟中间件也可以嵌入操作系统或者驱动层中来实现。
具体的,应用程序中的主机代码运行于第一设备的CPU上,主机代码向资源处理装置发出资源分配请求,或者也可以说是运行主机代码的CPU向资源处理装置发送资源分配请求;资源处理装置接收主机代码发出的资源分配请求,根据该资源分配请求和所维护的第一设备的至少一块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可以在第一设备启动后,主动向资源处理装置进行注册,以便于资源处理装置获取资源详情信息并根据资源详情信息对GPU进行管理。
在一可选实施方式中,考虑到至少一块GPU可提供的硬件资源主要包括显存资源和计算资源。基于此,资源处理装置具体可以根据资源分配请求,读取所维护的第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,根据所读取的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从计算资源中为设备代码分配所需的计算资源,并从显存资源中为设备代码分配所需的显存资源。为便于描述,将分配给设备代码的计算资源简称为第一计算资源,将分配给设备代码的显存资源简称为第一显存资源。
考虑显存资源主要用于供应用程序存取数据,为了便于数据存取,资源处理装置可以根据至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从第一设备的系统内存中,申请与至少一块GPU可提供的显存资源总量相同的虚拟内存,并将虚拟内存与至少一块GPU可提供的显存资源进行映射,形成虚拟内存与至少一块GPU可提供的显存资源之间的映射关系。基于此,资源处理装置根据至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从至少一块GPU可提供的硬件资源中为设备代码分配第一显存资源具体可以是:从虚拟内存中为设备代码分配第一存储资源,并根据上述虚拟内存与至少一块GPU可提供的显存资源之间的映射关系,对所分配的第一存储资源对应的第一显存资源进行标记,以标识将该第一显存资源分配给了应用程序的设备代码。
可选的,虚拟内存与至少一块GPU可提供的显存资源之间的映射关系具体可以是将虚拟内存的地址与显存资源的地址进行映射。
其中,虚拟内存与至少一块GPU可提供的显存资源之间的映射关系可如图5所示。
在一可选实施方式中,资源处理装置可以根据计算资源的使用状况,灵活为应用程序分配计算资源。例如,当计算资源紧张时,资源处理装置可以优先为优先级高、实时性要求高的应用程序分配计算资源,使得这类应用程序优先得到GPU的调度;而延后为IO密集、低效的应用程序分配计算资源。
具体的,资源处理装置可以根据资源分配请求的优先级,确定为应用程序中设备代码分配计算资源的先后顺序;按照该先后顺序和至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从至少一块GPU可提供的计算资源中为应用程序中的设备代码分配第一计算资源。
其中,资源分配请求的优先级可根据具体应用需求和应用场景而定,例如可以由应用程序对IO密集度、实时性等要求来确定资源分配请求的优先级。
在上述实施方式中,资源处理装置从系统内存中申请一虚拟内存,这对应用程序来说相当于看到一块几乎拥有足够存储资源的虚拟GPU,无需关心底层硬件细节(显存容量、由几块GPU构成等),由资源处理装置通过虚拟内存与显存资源之间的映射关系自动实现应用程序与底层GPU硬件资源之间的适配,不需要重新设计应用程序,简化了开发、部署以及后期维护的工作,降低了成本。
进一步,资源处理装置在为应用程序中的设备代码分配运行所需的资源之后,可以将所分配的资源发送给应用程序中的主机代码,以使得主机代码控制设备代码基于所分配的资源成功运行于GPU上。具体的,资源处理装置可以将第一计算资源的标识和第一存储资源的地址信息发送给主机代码,以使主机代码将设备代码发送给第一计算资源以供第一计算资源运行设备代码并将运行过程中产生的数据存储到第一存储资源中;资源处理装置将运行过程中产生的数据存储到被标记的第一显存资源中。
值得说明的是,对应用程序而言,上述第一存储资源实际上是虚拟内存,而第一存储资源的地址信息也是虚拟内存的地址。
在分得第一存储资源之后,应用程序的主机代码可以访问第一存储资源,例如可以请求向第一存储资源写入数据或从第一存储资源中读数据。基于此,资源处理装置还可以接收主机代码发送的读请求,根据该读请求,从第一存储资源中读取数据并将所读取的数据返回给主机代码。或者,资源处理装置还可以接收主机代码发送的写请求,根据该写请求,向第一存储资源中写入数据,并根据对第一显存资源的标记,向第一显存资源中同步所写入的数据。
值得说明的是,上述读请求一般会携带第一存储资源的地址信息,用于指示从哪块存储空间读取数据。上述写请求一般会携带有第一存储资源的地址信息,用于指示往哪块存储空间写入数据;另外,该写请求还会携带可以指示待写入数据的信息,例如该指示信息可以是待写入数据本身,或该指示信息可以是待写入数据的存储路径。
由上述可见,在应用程序使用存储资源的过程中,资源处理装置可能需要在虚拟内存与GPU可提供的显存资源之间进行数据同步。如果要做到单数据的同步,难以实现,代价较高,所以一般采用全同步,即将整块GPU的显存资源中的数据与该GPU对应的虚拟内存中的数据全部进行同步;这种同步方法会有相当大的延迟,不利于发挥GPU的计算能力,并且还会严重降低资源处理装置的工作效率和性能。
针对上述问题,资源处理装置采用分页管理的方式,即在形成虚拟内存与至少一块GPU可提供的显存资源之间的映射关系时,对虚拟内存进行分页处理,获得内存页;对显存资源进行分页处理,获得显存页;将内存页与显存页进行映射,形成内存页与显存页之间的映射关系。基于此,资源处理装置向第一显存资源中同步写入第一存储资源中的数据的过程具体为:
确定所写入的数据所在的内存页,为便于描述,将该内存页称为第一内存页;将所确定的第一内存页中的数据同步到第一内存页对应的显存页中。
资源处理装置通过分页管理方式,使得在数据同步时,只需同步一页内的数据,无需同步所有数据,有利于减少虚拟内存与显存资源之间交互的数据量,有利于降低延迟,利于GPU充分发挥计算优势,并且可以降低资源处理装置的处理负担,提高资源处理装置的性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图6为本申请一实施例提供的资源处理装置的结构示意图。如图6所示,该装置包括:接收模块61、分配模块62和发送模块63。
接收模块61,用于接收部署于第一设备上的应用程序中的主机代码发出的资源分配请求。
分配模块62,用于根据第一接收模块61接收的资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从第一设备的至少一块GPU可提供的硬件资源中为应用程序的设备代码分配运行所需的资源。
发送模块63,用于将分配模块62所分配的资源的信息返回给主机代码。这样主机代码就可以控制设备代码基于所分配的资源成功运行在至少一块GPU上。
在一可选实施方式中,如图7所示,该资源处理装置还包括:信息获取模块64和维护模块69。
信息获取模块64,用于:
向至少一块GPU中每块GPU发送资源详情获取请求,并接收每块GPU根据资源详情获取请求返回的资源详情信息;或者
接收至少一块GPU中每块GPU发送的注册请求,注册请求包括资源详情信息;
其中,资源详情信息用于描述每块GPU可提供的硬件资源。
维护模块69,用于根据信息获取模块64获取的每块GPU的资源详情信息,生成至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑。
在一可选实施方式中,上述至少一块GPU可提供的硬件资源包括显存资源和计算资源。分配模块62具体用于:根据资源分配请求,读取至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑;根据至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从计算资源中为设备代码分配第一计算资源,并从显存资源中为设备代码分配第一显存资源。
在一可选实施方式中,如图7所示,该资源处理装置还包括:申请模块65和映射模块66。
申请模块65,用于根据至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从第一设备的系统内存中,申请与至少一块GPU可提供的显存资源总量相同的虚拟内存。
映射模块66,用于形成申请模块65所申请的虚拟内存与至少一块GPU可提供的显存资源之间的映射关系。
基于上述,分配模块62具体用于:
从计算资源中为设备代码分配第一计算资源,并从虚拟内存中为设备代码分配第一存储资源,根据映射模块36形成的映射关系,对第一存储资源对应的第一显存资源进行标记,以标识将第一显存资源分配给设备代码。
在一可选实施方式中,如图7所示,该资源处理装置还包括:读写处理模块67。
读写处理模块67,用于接收主机代码发送的读请求,根据读请求,从第一存储资源中读取数据并将所读取的数据返回给主机代码;和/或,接收主机代码发送的写请求,根据写请求,向第一存储资源中写入数据,并根据对第一显存资源的标记,向第一显存资源中同步所写入的数据。
在一可选实施方式中,映射模块66具体用于:
对虚拟内存进行分页处理,获得内存页;
对显存资源进行分页处理,获得显存页;
形成内存页和显存页之间的映射关系;
基于上述,读写处理模块67具体用于:
接收主机代码发送的写请求,根据写请求,向第一存储资源中写入数据,并确定所写入的数据所在的第一内存页,将第一内存页中的数据同步到第一内存页对应的显存页中。
在一可选实施方式中,分配模块62具体用于:
根据资源分配请求的优先级,确定为设备代码分配计算资源的先后顺序,按照先后顺序和至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从计算资源中为设备代码分配第一计算资源,并从显存资源中为设备代码分配第一显存资源。
在一可选实施方式中,发送模块63具体用于:
将第一计算资源的标识和第一存储资源的地址信息发送给主机代码,以使主机代码将设备代码发送给第一计算资源以供第一计算资源运行设备代码并将运行过程中产生的数据存储到第一存储资源中,并将运行过程中产生的数据存储到被标记的第一显存资源中。
本实施例提供的资源处理装置,位于GPU与应用程序之间,维护着第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,使得第一设备的至少一块GPU可提供的硬件资源以统一虚拟GPU资源的形式面向应用程序,具体按照该映射逻辑为应用程序中需要运行于GPU上的设备代码分配资源,实现了应用程序与GPU底层硬件细节的隔离,应用程序不需要考虑底层硬件细节,且不需要确定并分配所需的GPU资源,使得设备代码的实现逻辑可以是面向单块GPU设计的,不需要额外实现多块GPU之间的交互等功能,因此不需要重新设计应用程序(主要是不需要重新设计应用程序中的设备代码的实现逻辑)即可有效利用GPU资源,与现有技术相比,实现代价相对较低。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭示的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种资源处理方法,其特征在于,包括:
接收部署于第一设备上的应用程序中的主机代码发出的资源分配请求;
根据所述资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的至少一块GPU可提供的硬件资源中为所述应用程序中的设备代码分配运行所需的资源;
将所分配的资源的信息返回给所述主机代码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的至少一块GPU可提供的硬件资源中为所述应用程序中的设备代码分配运行所需的资源之前,包括:
向所述至少一块GPU中每块GPU发送资源详情获取请求,并接收每块GPU根据所述资源详情获取请求返回的每块GPU的资源详情信息;
根据每块GPU的资源详情信息,生成所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑;或者
接收所述至少一块GPU中每块GPU发送的注册请求,所述注册请求包括资源详情信息;
根据每块GPU的资源详情信息,生成所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑;
其中,所述资源详情信息用于描述每块GPU可提供的硬件资源。
3.根据权利要求1所述的方法,其特征在于,所述至少一块GPU可提供的硬件资源包括显存资源和计算资源;
所述根据所述资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的至少一块GPU可提供的硬件资源中为所述应用程序中的设备代码分配运行所需的资源,包括:
根据所述资源分配请求,读取所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑;
根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述计算资源中为所述设备代码分配第一计算资源,并从所述显存资源中为所述设备代码分配第一显存资源。
4.根据权利要求3所述的方法,其特征在于,所述根据所述资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的至少一块GPU提供的硬件资源中为所述应用程序中的设备代码分配运行所需的资源之前,还包括:
根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的系统内存中,申请与所述至少一块GPU可提供的显存资源总量相同的虚拟内存;
形成所述虚拟内存与所述至少一块GPU可提供的显存资源之间的映射关系;
所述根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述显存资源中为所述设备代码分配第一显存资源,包括:
从所述虚拟内存中为所述设备代码分配第一存储资源;
根据所述映射关系,对所述第一存储资源对应的所述第一显存资源进行标记,以标识将所述第一显存资源分配给所述设备代码。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收所述主机代码发送的读请求,根据所述读请求,从所述第一存储资源中读取数据并将所读取的数据返回给所述主机代码;和/或
接收所述主机代码发送的写请求,根据所述写请求,向所述第一存储资源中写入数据,并根据对所述第一显存资源的标记,向所述第一显存资源中同步所写入的数据。
6.根据权利要求4或5所述的方法,其特征在于,所述形成所述虚拟内存与所述至少一块GPU可提供的显存资源之间的映射关系,还包括:
对所述虚拟内存进行分页处理,获得内存页;
对所述显存资源进行分页处理,获得显存页;
形成所述内存页和显存页之间的映射关系;
所述向所述第一显存资源中同步所写入的数据,包括:
确定所写入的数据所在的第一内存页,将所述第一内存页中的数据同步到所述第一内存页对应的显存页中。
7.根据权利要求3或4或5所述的方法,其特征在于,所述根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述计算资源中为所述设备代码分配第一计算资源,包括:
根据所述资源分配请求的优先级,确定为所述设备代码分配计算资源的先后顺序;
按照所述先后顺序和所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述计算资源中为所述设备代码分配所述第一计算资源。
8.根据权利要求3-5任一项所述的方法,其特征在于,所述将所分配的资源的信息返回给所述主机代码,以使所述主机代码控制所述设备代码成功运行在所述至少一块GPU上,包括:
将所述第一计算资源的标识和所述第一存储资源的地址信息发送给所述主机代码,以使所述主机代码将所述设备代码发送给所述第一计算资源以供所述第一计算资源运行所述设备代码并将运行过程中产生的数据存储到所述第一存储资源中;
将所述运行过程中产生的数据存储到被标记的所述第一显存资源中。
9.一种资源处理装置,其特征在于,包括:
接收模块,用于接收部署于第一设备上的应用程序中的主机代码发出的资源分配请求;
分配模块,用于根据所述资源分配请求和所维护的所述第一设备的至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的至少一块GPU可提供的硬件资源中为所述应用程序中的设备代码分配运行所需的资源;
发送模块,用于将所分配的资源的信息返回给所述主机代码。
10.根据权利要求9所述的装置,其特征在于,还包括:
信息获取模块,用于:
向所述至少一块GPU中每块GPU发送资源详情获取请求,并接收每块GPU根据所述资源详情获取请求返回的资源详情信息;或者
接收所述至少一块GPU中每块GPU发送的注册请求,所述注册请求包括资源详情信息;
其中,所述资源详情信息用于描述每块GPU可提供的硬件资源;
维护模块,用于根据每块GPU的资源详情信息,生成所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑。
11.根据权利要求9所述的装置,其特征在于,所述至少一块GPU可提供的硬件资源包括显存资源和计算资源;
所述分配模块具体用于:根据所述资源分配请求,读取所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑;根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述计算资源中为所述设备代码分配第一计算资源,并从所述显存资源中为所述设备代码分配第一显存资源。
12.根据权利要求11所述的装置,其特征在于,还包括:
申请模块,用于根据所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述第一设备的系统内存中,申请与所述至少一块GPU可提供的显存资源总量相同的虚拟内存;
映射模块,用于形成所述虚拟内存与所述至少一块GPU可提供的显存资源之间的映射关系;
所述分配模块具体用于:
从所述计算资源中为所述设备代码分配第一计算资源,并从所述虚拟内存中为所述设备代码分配第一存储资源,根据所述映射关系,对所述第一存储资源对应的所述第一显存资源进行标记,以标识将所述第一显存资源分配给所述设备代码。
13.根据权利要求12所述的装置,其特征在于,还包括:
读写处理模块,用于接收所述主机代码发送的读请求,根据所述读请求,从所述第一存储资源中读取数据并将所读取的数据返回给所述主机代码;和/或,接收所述主机代码发送的写请求,根据所述写请求,向所述第一存储资源中写入数据,并根据对所述第一显存资源的标记,向所述第一显存资源中同步所写入的数据。
14.根据权利要求12或13所述的装置,其特征在于,所述映射模块具体用于:
对所述虚拟内存进行分页处理,获得内存页;
对所述显存资源进行分页处理,获得显存页;
形成所述内存页和显存页之间的映射关系;
所述读写处理模块具体用于:
接收所述主机代码发送的写请求,根据所述写请求,向所述第一存储资源中写入数据,并确定所写入的数据所在的第一内存页,将所述第一内存页中的数据同步到所述第一内存页对应的显存页中。
15.根据权利要求11或12或13所述的装置,其特征在于,所述分配模块具体用于:
根据所述资源分配请求的优先级,确定为所述设备代码分配计算资源的先后顺序,按照所述先后顺序和所述至少一块GPU可提供的硬件资源到统一虚拟GPU资源的映射逻辑,从所述计算资源中为所述设备代码分配所述第一计算资源,并从所述显存资源中为所述设备代码分配第一显存资源。
16.根据权利要求11-13任一项所述的装置,其特征在于,所述发送模块具体用于:
将所述第一计算资源的标识和所述第一存储资源的地址信息发送给所述主机代码,以使所述主机代码将所述设备代码发送给所述第一计算资源以供所述第一计算资源运行所述设备代码并将运行过程中产生的数据存储到所述第一存储资源中,并将所述运行过程中产生的数据存储到被标记的所述第一显存资源中。
CN201510069338.7A 2015-02-10 2015-02-10 资源处理方法及装置 Active CN105988874B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510069338.7A CN105988874B (zh) 2015-02-10 2015-02-10 资源处理方法及装置
TW104128813A TWI696952B (zh) 2015-02-10 2015-09-01 資源處理方法及裝置
US15/017,070 US9965826B2 (en) 2015-02-10 2016-02-05 Resource management
PCT/US2016/017024 WO2016130487A1 (en) 2015-02-10 2016-02-08 Resource management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510069338.7A CN105988874B (zh) 2015-02-10 2015-02-10 资源处理方法及装置

Publications (2)

Publication Number Publication Date
CN105988874A true CN105988874A (zh) 2016-10-05
CN105988874B CN105988874B (zh) 2020-08-28

Family

ID=56566948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510069338.7A Active CN105988874B (zh) 2015-02-10 2015-02-10 资源处理方法及装置

Country Status (4)

Country Link
US (1) US9965826B2 (zh)
CN (1) CN105988874B (zh)
TW (1) TWI696952B (zh)
WO (1) WO2016130487A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018077292A1 (zh) * 2016-10-28 2018-05-03 北京市商汤科技开发有限公司 数据处理方法和系统、电子设备
CN108089922A (zh) * 2016-11-21 2018-05-29 三星电子株式会社 用于有效资源管理的电子装置及其方法
CN108519859A (zh) * 2018-03-30 2018-09-11 北京联想核芯科技有限公司 数据读取方法、装置、设备及介质
WO2018233299A1 (zh) * 2017-06-22 2018-12-27 平安科技(深圳)有限公司 调度处理器的方法、装置、设备及介质
CN109697121A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于向应用分配处理资源的方法、设备和计算机程序产品
CN110209434A (zh) * 2019-04-23 2019-09-06 努比亚技术有限公司 一种内存管理方法、装置及计算机可读存储介质
CN110275778A (zh) * 2019-06-14 2019-09-24 上海商汤智能科技有限公司 在线程序运行方法、装置、电子设备和计算机存储介质
CN110389825A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、设备和计算机程序产品
CN110706147A (zh) * 2019-09-29 2020-01-17 百度在线网络技术(北京)有限公司 图像处理的环境确定方法、装置、电子设备和存储介质
CN110968577A (zh) * 2018-09-27 2020-04-07 阿里巴巴集团控股有限公司 一种写入、读取资源的方法和系统以及时序存储系统
WO2021051914A1 (zh) * 2019-09-17 2021-03-25 创新先进技术有限公司 基于gpu资源的数据处理方法、电子设备及系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310985B2 (en) * 2017-06-26 2019-06-04 Ati Technologies Ulc Systems and methods for accessing and managing a computing system memory
KR102032521B1 (ko) * 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
CN111966500B (zh) * 2020-09-07 2023-08-11 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
US20110202706A1 (en) * 2010-02-18 2011-08-18 Moon Bo-Seok Method and driver for processing data in a virtualized environment
WO2012083012A1 (en) * 2010-12-15 2012-06-21 Advanced Micro Devices, Inc. Device discovery and topology reporting in a combined cpu/gpu architecture system
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法
CN103034524A (zh) * 2011-10-10 2013-04-10 辉达公司 半虚拟化的虚拟gpu

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7768522B2 (en) * 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
US6947051B2 (en) 2003-02-18 2005-09-20 Microsoft Corporation Video memory management
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US8667500B1 (en) 2006-10-17 2014-03-04 Vmware, Inc. Use of dynamic entitlement and adaptive threshold for cluster process balancing
US8010954B2 (en) 2007-02-14 2011-08-30 The Mathworks, Inc. Parallel programming interface to dynamically allocate program portions
JP4576449B2 (ja) 2008-08-29 2010-11-10 富士通株式会社 スイッチ装置およびコピー制御方法
US8352952B2 (en) 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
US8838913B1 (en) 2009-09-15 2014-09-16 Symantec Corporation System and method for locating a memory page in a guest virtual machine
US8176220B2 (en) 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8719839B2 (en) 2009-10-30 2014-05-06 Intel Corporation Two way communication support for heterogenous processors of a computer platform
US9081621B2 (en) 2009-11-25 2015-07-14 Microsoft Technology Licensing, Llc Efficient input/output-aware multi-processor virtual machine scheduling
US9024959B2 (en) 2009-12-21 2015-05-05 Intel Corporation Demand-paged textures
US8595721B2 (en) 2009-12-22 2013-11-26 International Business Machines Corporation Preserving a dedicated temporary allocation virtualization function in a power management environment
JP5484117B2 (ja) 2010-02-17 2014-05-07 株式会社日立製作所 ハイパーバイザ及びサーバ装置
US8555267B2 (en) 2010-03-03 2013-10-08 Red Hat, Inc. Performing register allocation of program variables based on priority spills and assignments
US8826270B1 (en) 2010-03-16 2014-09-02 Amazon Technologies, Inc. Regulating memory bandwidth via CPU scheduling
JP5308383B2 (ja) 2010-03-18 2013-10-09 パナソニック株式会社 仮想マルチプロセッサシステム
US8707300B2 (en) 2010-07-26 2014-04-22 Microsoft Corporation Workload interference estimation and performance optimization
US9733963B2 (en) 2010-09-17 2017-08-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Optimizing virtual graphics processing unit utilization
CN102567115B (zh) 2010-12-23 2016-04-06 伊姆西公司 云系统中用于信息技术资源分配和利用跟踪的装置和方法
US8683120B2 (en) 2011-03-28 2014-03-25 Hitachi, Ltd. Method and apparatus to allocate area to virtual volume
US8935484B2 (en) 2011-03-31 2015-01-13 Hewlett-Packard Development Company, L.P. Write-absorbing buffer for non-volatile memory
US9164923B2 (en) 2011-07-01 2015-10-20 Intel Corporation Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
US9727385B2 (en) * 2011-07-18 2017-08-08 Apple Inc. Graphical processing unit (GPU) implementing a plurality of virtual GPUs
JP5733136B2 (ja) 2011-09-26 2015-06-10 富士通株式会社 情報処理装置の制御方法、制御プログラム及び情報処理装置
US8819230B2 (en) 2011-11-05 2014-08-26 Zadara Storage, Ltd. Virtual private storage array service for cloud servers
KR101850318B1 (ko) 2011-12-09 2018-04-20 삼성전자주식회사 가상 메모리 관리 장치 및 방법
US9081504B2 (en) 2011-12-29 2015-07-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Write bandwidth management for flash devices
US9081618B2 (en) 2012-03-19 2015-07-14 Ati Technologies Ulc Method and apparatus for the scheduling of computing tasks
US8990807B2 (en) 2012-08-09 2015-03-24 VCE Company LLC Virtual instance reconfiguration
US9164809B2 (en) 2012-09-04 2015-10-20 Red Hat Israel, Ltd. Virtual processor provisioning in virtualized computer systems
US9251108B2 (en) 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
CN108854055B (zh) * 2012-11-28 2021-08-20 辉达公司 用于远程显示器的基于云的虚拟化图形处理系统和介质
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9015523B2 (en) 2012-12-20 2015-04-21 Intel Corporation Memory allocation for virtual machines using memory map
US9142004B2 (en) * 2012-12-20 2015-09-22 Vmware, Inc. Dynamic allocation of physical graphics processing units to virtual machines
US9298490B2 (en) 2012-12-20 2016-03-29 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
US9158569B2 (en) 2013-02-11 2015-10-13 Nvidia Corporation Virtual interrupt delivery from a graphics processing unit (GPU) of a computing system without hardware support therefor
US9112685B2 (en) 2013-05-10 2015-08-18 Blackberry Limited Mechanisms for direct inter-device signaling
US9141431B1 (en) 2014-10-07 2015-09-22 AO Kaspersky Lab System and method for prioritizing on access scan and on demand scan tasks
US9491112B1 (en) * 2014-12-10 2016-11-08 Amazon Technologies, Inc. Allocating processor resources based on a task identifier

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
US20060146057A1 (en) * 2004-12-30 2006-07-06 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US20110202706A1 (en) * 2010-02-18 2011-08-18 Moon Bo-Seok Method and driver for processing data in a virtualized environment
WO2012083012A1 (en) * 2010-12-15 2012-06-21 Advanced Micro Devices, Inc. Device discovery and topology reporting in a combined cpu/gpu architecture system
CN103034524A (zh) * 2011-10-10 2013-04-10 辉达公司 半虚拟化的虚拟gpu
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018077292A1 (zh) * 2016-10-28 2018-05-03 北京市商汤科技开发有限公司 数据处理方法和系统、电子设备
CN108089922A (zh) * 2016-11-21 2018-05-29 三星电子株式会社 用于有效资源管理的电子装置及其方法
CN108089922B (zh) * 2016-11-21 2022-01-25 三星电子株式会社 用于有效资源管理的电子装置及其方法
WO2018233299A1 (zh) * 2017-06-22 2018-12-27 平安科技(深圳)有限公司 调度处理器的方法、装置、设备及介质
CN109697121A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于向应用分配处理资源的方法、设备和计算机程序产品
CN108519859B (zh) * 2018-03-30 2021-04-20 深圳忆联信息系统有限公司 数据读取方法、装置、设备及介质
CN108519859A (zh) * 2018-03-30 2018-09-11 北京联想核芯科技有限公司 数据读取方法、装置、设备及介质
CN110389825B (zh) * 2018-04-20 2023-08-04 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、设备和计算机程序产品
US11663050B2 (en) 2018-04-20 2023-05-30 EMC IP Holding Company LLC Method, device and computer program product for managing dedicated processing resources
CN110389825A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、设备和计算机程序产品
CN110968577A (zh) * 2018-09-27 2020-04-07 阿里巴巴集团控股有限公司 一种写入、读取资源的方法和系统以及时序存储系统
CN110968577B (zh) * 2018-09-27 2023-04-07 阿里巴巴集团控股有限公司 一种写入、读取资源的方法和系统以及时序存储系统
CN110209434B (zh) * 2019-04-23 2022-04-22 努比亚技术有限公司 一种内存管理方法、装置及计算机可读存储介质
CN110209434A (zh) * 2019-04-23 2019-09-06 努比亚技术有限公司 一种内存管理方法、装置及计算机可读存储介质
CN110275778B (zh) * 2019-06-14 2021-07-27 上海商汤智能科技有限公司 在线程序运行方法、装置、电子设备和计算机存储介质
CN110275778A (zh) * 2019-06-14 2019-09-24 上海商汤智能科技有限公司 在线程序运行方法、装置、电子设备和计算机存储介质
WO2021051914A1 (zh) * 2019-09-17 2021-03-25 创新先进技术有限公司 基于gpu资源的数据处理方法、电子设备及系统
CN110706147A (zh) * 2019-09-29 2020-01-17 百度在线网络技术(北京)有限公司 图像处理的环境确定方法、装置、电子设备和存储介质
CN110706147B (zh) * 2019-09-29 2023-08-11 阿波罗智联(北京)科技有限公司 图像处理的环境确定方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN105988874B (zh) 2020-08-28
WO2016130487A1 (en) 2016-08-18
US9965826B2 (en) 2018-05-08
TW201636838A (zh) 2016-10-16
US20160232640A1 (en) 2016-08-11
TWI696952B (zh) 2020-06-21

Similar Documents

Publication Publication Date Title
CN105988874A (zh) 资源处理方法及装置
US10154089B2 (en) Distributed system and data operation method thereof
US10726462B2 (en) Customizing component configurations for utility computing
CN101681297B (zh) 存储器分配的设置
CN101561769B (zh) 一种基于多核平台虚拟机的进程迁移跟踪方法
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
CN102308274B (zh) 一种访问关机硬盘的方法、网卡和硬盘卡
CN102449599A (zh) 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法
CN102681937B (zh) 一种缓存一致性协议正确性验证方法
CN102929707A (zh) 并行任务动态分配方法
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
EP2375324A2 (en) Virtualization apparatus for providing a transactional input/output interface
CN103793332B (zh) 基于内存的数据存储方法、装置、处理器和电子设备
CN106663051A (zh) 虚拟化计算中的存储器管理
US7353338B2 (en) Credit mechanism for multiple banks of shared cache
CN101448027B (zh) 一种流水线Web服务器的系统及其工作方法
CN113157290B (zh) 一种多系统安装方法、计算设备及存储介质
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
CN103369038A (zh) 平台即服务PaaS管理平台及方法
CN101458655B (zh) 内存管理方法、系统及内存控制装置
CN105677481B (zh) 一种数据处理方法、系统及电子设备
CN109639460A (zh) Nfv资源管理的方法和装置
CN105634635A (zh) 一种共享rtc的方法、装置和系统
CN103870247A (zh) 用于保存和恢复线程组操作状态的技术
CN109271109B (zh) 一种数据存储方法及hba卡

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1229906

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230605

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right