[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN101419558A - Cuda图形子系统虚拟化方法 - Google Patents

Cuda图形子系统虚拟化方法 Download PDF

Info

Publication number
CN101419558A
CN101419558A CNA2008101435880A CN200810143588A CN101419558A CN 101419558 A CN101419558 A CN 101419558A CN A2008101435880 A CNA2008101435880 A CN A2008101435880A CN 200810143588 A CN200810143588 A CN 200810143588A CN 101419558 A CN101419558 A CN 101419558A
Authority
CN
China
Prior art keywords
resource
module
virtual
virtual machine
general
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
CNA2008101435880A
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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CNA2008101435880A priority Critical patent/CN101419558A/zh
Publication of CN101419558A publication Critical patent/CN101419558A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明针对现有虚拟机技术对通用计算支持的不足,提出了一种针对通用计算程序的虚拟接口和功能框架-vCUDA,可在虚拟机条件下对CUDA相关应用进行物理加速。vCUDA在应用层拦截通用计算程序对通用计算资源的调用,在逻辑上重构虚拟计算资源,解离了通用计算资源的强耦合特征,将通用计算资源表达为新的逻辑中间层,并进一步在虚拟机平台上进行隔离、划分、整合、利用,实现了多用户并发、故障恢复、动态迁移、负载平衡等高级应用。本发明无需对程序源码做任何修改,对程序员保持透明。

Description

CUDA图形子系统虚拟化方法
技术领域
本发明属于计算机体系结构和虚拟接口领域,具体涉及在虚拟机条件下对CUDA相关应用进行物理加速的方法。
背景技术
虚拟机技术发展过程中遇到的一个重大挑战是I/O虚拟化。由于I/O设备的多样性与复杂性、封闭性,难以在虚拟机(VMM)条件下充分有效的使用这些硬件资源,从而造成虚拟机条件下的功能缺失或性能下降。以显卡(主要是GPU,图形处理单元)为例,它的主要功能分为图形(2D与3D)计算与显示和通用计算(非图形应用,以大量并行为特征)两块。除少数2D显示标准外,显卡硬件电气接口没有统一的设计规范和国际标准,不但各大主要生厂商之间接口互不兼容,即使在同一厂商的不同世代、不同批次产品之间,物理特性也不完全相同。另外,出于商业考虑,各个厂商不对外公布设计细节,不提供驱动源码,使得在操作系统层自主开发适应不同硬件的驱动协议栈也不现实。目前主流的虚拟机管理器(VMM),商业级的如vmware,开源的如XEN,都只在较小的范围内解决了2D图形显示的问题,对GPU的另外两大功能——3D加速和通用计算基本不涉及。
针对在底层虚拟化显卡(GPU)遇到的问题,最近学术界提出了在更高的软件栈层次上实现虚拟化的思路。以显卡的3D加速为例,通过截获OPENGL调用,相关的命令参数通过网络或其它通道从虚拟机传导至虚拟机管理器,在VMM进行计算和显示,从而实现了硬件资源的跨域使用。将虚拟化的层次从硬件接口上升到软件接口,从驱动层上升到应用层,有力的解决了前两者的异质化问题。
但是,对GPU的虚拟化目前仍存在几个突出的问题:一是3D应用的实时性、交互性很强,域间通信量峰值极大,造成用户指令无法及时响应,或者图像质量下降;二是数据通路狭窄,目前GPU虚拟化技术广泛使用的是斯坦福大学铬(Chromium)项目的数据分发和传输机制,而这套机制最初是为在远程条件下实现并行渲染设计的,并没有针对虚拟机作任何优化;三是OPENGL的虚拟化对解决通用计算问题来说并不充分,因为目前已存在专门用于GPU通用计算的API架构CUDA(统一计算设备架构)。这意味着通用计算已脱离OPENGL等图形API(应用程序编程接口),成为连接程序员和显示硬件的新桥梁,对它的虚拟化成为VMM技术中一个独立的新课题。四是目前热门的虚拟机技术如实时迁移(live-migration)、挂起与恢复(suspend/resume)等并不支持涉及到通用计算的应用,它们将在迁移或恢复后失去继续执行的能力。
发明内容
本发明针对现有的虚拟机技术对通用计算支持的不足,提出了一种基于动态库拦截的通用计算虚拟化方案—vCUDA。vCUDA在应用层拦截通用计算程序对通用计算资源的调用,在逻辑上重构虚拟计算资源,解离了通用计算资源的强耦合特征,将通用计算资源表达为新的逻辑中间层,并进一步在虚拟机平台上进行隔离、划分、整合、利用,实现了故障恢复、实时迁移等功能。
本发明采用动态库拦截方法,对程序员完全透明,不增加程序员编程负担,不提高程序复杂度。程序员在编写通用计算程序时无需考虑虚拟化因素,即可实现所有功能。另外,采用动态库拦截方法,无需修改源码,对二进制程序完全兼容,对老旧软件、不开源软件均适用。
vCUDA采用客户服务器模式,包括四个主要的用户层组件:位于虚拟机管理器的vCUDA管理中心程序和远程调用服务器,以及位于每台虚拟机的vCUDA封装库和远程调用客户端。其中远程调用客户端和远程调用服务器负责底层通信,提供最基本的沟通机制,属于执行机构。vCUDA管理程序和vCUDA封装库是本方案的管理机构,它们存贮和管理API内部一致性数据,选择远程过程调用通信策略,为虚拟化提供更高层语义的支持,是实现动态迁移、负载平衡等高级功能的核心。
1.远程调用客户端:负责虚拟机端数据的编解码和传递。它接收应用程序发送来的API指令和数据,经虚拟资源模块审计后将操作数和参数按预定义格式封装、缓冲、排队,发往虚拟机管理器中的远程调用服务器;接收远程调用服务器传送的数据,解码并由虚拟资源模块处理后向应用程序返回。
2.远程调用服务器:为远程调用客户端提供服务线程,确保远程调用服务线程的持续性,处理并发请求和异步调用。它接收远程调用客户端发送来的数据,解码后经资源配置模块审计为其分配服务线程,驱动硬件完成相应计算任务,计算结果由审记模块检查后,编码并发回远程调用客户端。
3.vCUDA管理中心程序:vCUDA管理中心程序是支配实际硬件和做出决策的机构。它通过所在OS或VMM内的原生驱动利用实际硬件,切实执行虚拟机提交的任务。包含三个模块:
策略模块为其它模块提供实施策略,该策略由维护人员静态配置,或由系统在运行中动态生成。在动态模式中,该模块接收审计模块和控制流日志模块的报告作为输入。
资源配置模块统一管理本地硬件资源,按照虚拟机的要求和当前分配策略向其提供虚拟通用计算资源,定时接收虚拟资源模块的报告,跟踪资源使用状况,及时收回空闲资源,平衡系统中的计算负载。统一管理本地软件资源,为不同要求的用户提供适当数量的服务线程。
审计模块分析发生在虚拟机管理器端的调用命令及其参数,为策略中心模块提供统计数据,同时负责审计虚拟接口的参数,正确地翻译异地指针或句柄,保证在虚拟机管理器和虚拟机两端数据空间的一致性。其重要职责之一是翻译对特殊变量地址的引用。CUDA架构为设备变量(device variable)、纹理变量(texture variable)和共享变量(share variable)设计了一套特殊的影子变量(shadow variable)管理方法。当程序员在程序中定义以上三种变量时,NVCC编译器自动生成相应的注册函数,为影子变量在主机上开辟空间,并与变量名挂钩。注册后所有对该变量的引用都是使用影子变量的本地地址,由动态库在运行时转化成对应的设备地址。由于影子变量在主机和设备内存之间表现出来的强耦合特征,不可能仅通过传递参数进行虚拟化,而必须依赖审计模块和控制流日志模块适当的转化本地与远程地址空间来实现。
图2说明了本方案虚拟化影子变量的过程,首先,当VM内的应用程序调用__cudaRegisterVar或__cudaRegisterTexture、__cudaRegisterShared时,影子变量在客户端的三个要素(地址、空间、变量名)被送往虚拟机管理器,由审计模块在虚拟机管理器上开辟新的空间,并将此空间的地址指针(服务器端地址)与客户端地址做为二元组存于“影子变量地址表”中;当该客户端地址在客户端做为参数被某个API(如cudaMemcpyToSymbol)使用时,相应的参数被传递给服务器端,审计模块检查API类型和参数,发现涉及对影子变量的引用,主动查询“影子变量地址表”中的二元表,将其翻译为本地指针,交由远程过程调用服务线程执行。通过这个程序,远程指针转化为本地指针,同时保证了变量索引的正确性。
4.vCUDA封装库:vCUDA封装库是官方提供的标准CUDA库的替代版本,提供了与标准库相同的入口点,它包含三个模块:
虚拟资源模块是虚拟通用计算资源在每个虚拟机中的逻辑镜象,向应用层提供完整的底层硬件视图。它依据资源配置模块分配的资源初始化,并定期向其报告本地的使用状况。它维护一个硬件资源数据结构,包括显存大小、片上寄存器数量、流处理器数量、支持的CUDA版本等等,当应用程序查询GPU的计算能力和资源限制时,虚拟资源模块将直接返回由资源配置模块分配的资源报告。虚拟资源模块与审计模块合作维护一个变量名表,表中服务器端的变量地址将与本地的地址引用保持一致。
传输策略模块决定发送远程过程调用的时机和形式,它按照定制策略累积、过滤、合并上层调用,减少远程过程调用的频率,实现懒惰传输,使虚拟化开销和带宽消耗达到最小。所谓累积,就是将远程过程调用传输的时间点推迟到最后一刻,当API的执行不会对当前执行和程序内部状态产生影响时,推迟它的执行,直到不能推迟为止。过滤是省略掉一部份在虚拟机条件下无实际作用的API,如同步API。合并是将多个API合并成一个或一组API,形成通用的功能模块一次性传输,如用来启动设备kernel的三个固定API:cudaConfigureCall、cudaSetArgument和cudaLaunch。
控制流日志模块跟踪本地调用情况,记录调用名和相关参数,存贮API控制流,提供对虚拟机高级应用的支持。该模块按调用顺序以队列方式存贮操作码和操作参数。当发生硬件故障时,与程序有关的设备状态仍保存在持久化介质如硬盘中,经虚拟资源模块重新申请资源后,控制流日志模块将存贮的设备状态在新的虚拟资源上部署,从而在程序不察觉的情况下实现故障恢复;实时迁移过程中,控制流日志模块将设备状态转移到新主机的虚拟资源上,应用程序可在异地继续执行。该模块占用空间较大,用户可选择将其关闭。
本通用计算虚拟化方案—vCUDA的功能有:
1.基本功能:API虚拟化
与OPENGL等图形API类似,nvidia公司推出的CUDA体系在应用中依赖于一个动态库文件(linux下为libcudart.so,windows下为cudart.dll),应用程序所有对CUDA API的调用都对应该动态库的一个入口。本方案自主开发了一个vCUDA.so(windows下为vCUDA.dll)库作为官方标准库的替代品,当应用程序调用CUDA相关指令时,将执行vCUDA库中的内容,也就是本方案设计的接口。这些接口中包含一个远程过程调用过程的客户端存根(client stub),相应的指令和参数被封装、缓冲、排队、记录,最后按顺序发送到位于VMM的服务器存根(server stub),由vCUDA管理中心负责解码、分析、排序、优化API指令流,将API指令交由真正的驱动和硬件执行,最后通过远程过程调用返回执行结果。
本方案的核心是对63个CUDA API的封装(含6个未公开的内部API)。针对不同函数的功能和实现特点,我们将它们分为四类,分别采用不同的封装和虚拟化策略。
远程执行型:虚拟机客户端将原始的函数名和参数传递给VMM,由VMM的vCUDA管理中心实际执行并将结果返回虚拟机,再作为应用程序的函数返回值。尽管实际在远程执行,这个过程对于应用程序来说是透明的,如同调用了一个本地函数。大部份CUDA API的虚拟化属于这个类型。
本地替代型:某些API具有软硬件之间的强耦合特性,无法在外围模拟这种耦合特征,只能选择用相应的本地函数替代。如mallocHost对设备内存空间和主机内存空间进行了不透明的控制,本方案最终选择用普通的malloc替代之。这种本地化减少了远程过程调用和虚拟机切换的开销,但使服务器端丧失了利用CUDA先进特征的机会。
远程替代型:CUDA API中很多都有对应的异步版本,如memcopy及其变种。在某些情况下,这种异步特征是没有必要的,虚拟GPU将根据需要将它们转换成同步版本。
直接忽略型:有些同步原语在虚拟机条件下是不必要的,因为虚拟机引起的开销已掩盖了这部份差异,因此vCUDA直接忽略这一部份同步API。
2.功能扩展:GPU池
随着CUDA架构的API被虚拟化,GPU软硬件之间的强耦合特征同样被弱化,GPU强大的计算能力和计算资源可以在更高的逻辑层次上进行隔离、划分、组合、调度。vCUDA方案借鉴了内存池、CPU池等相关技术,将某个计算机系统内所有具备CUDA能力的GPU视为统一的GPU池,由vCUDA管理中心统一管理,实现以下功能:
多用户并发:通过在远程过程调用数据结构头部加入虚拟机和进程信息来标识不同的用户,原则上为每一用户分配独立的服务线程和硬件实体。当资源紧张时,也可以安排不同的用户服务线程工作在同一GPU上,由vCUDA管理中心协调处理冲突。
按需分配:按照客户机的实际需要向其分配GPU资源。当客户需求增长时追加资源,实现增量分配。
动态调度:在分配后仍可收回GPU资源,避免浪费。当客户所占资源空闲时间超过一定阈值时,由虚拟资源模块向资源配置模块报告,资源配置模块标记该资源为空闲,可挪作它用,但不改变虚拟资源模块的内部状态。当该客户重新发布计算任务时,虚拟资源模块发现资源不足,再重新请求GPU资源。
负载平衡:当局部计算压力过大而它处尚有余裕时,转移计算负载。由资源配置模块结合虚拟资源模块的报告计算虚拟资源使用率,区分忙节点和空闲结点,按照统一策略实现资源交换。
故障恢复:当发生硬件故障时,控制流日志模块将与程序有关的设备状态保存在硬盘,经虚拟资源模块申请新资源后,这部分状态在新的虚拟资源上重新部署。
系统快照:目前虚拟机普遍具有暂停、恢复功能,即在任意时点挂起虚拟机,将当前系统所有状态保存为系统快照,存于内存或硬盘,以后随时可以从这个状态恢复执行。但过去系统快照不包括GPU部份,使得相关程序无法在恢复后继续执行,而本方案采用在控制流日志模块记录API数据流的办法来保存系统状态,实现了完整的系统快照功能。
实时迁移:虚拟机的一个实用功能是实时迁移,即在保持系统运转的前提下将系统迁移到另一个物理设备。与系统快照类似,过去由于缺乏保存GPU状态的有效方法,这种迁移不能成功应用于CUDA相关程序。而本方案可以将保存在GPU上的状态与主机状态一同迁移,使CUDA相关进程在迁移后仍能正确执行。
附图说明
图1:vCUDA系统总体框架。
图2:GPU虚拟池。
图3:影子变量虚拟化
具体实施过程
1.程序框架
采用客户服务器模式,服务器的结构为:
初始化;
while(当有用户请求服务时){
      if(是特殊服务请求){
         转入特殊服务例程;
      }
      确认用户身份;
      建立新远程过程调用服务线程;
        if(是新客户)建立新CUDA服务线程;
        else与某个已存在的CUDA服务线程挂钩;
        while(用户没有结束){
              接收用户指令和参数;
              解码;
              if(用户请求资源){
                 进入资源配置模块例程;
              }
              if(需要审计){
                 进入审计模块例程;
              }
              将参数传递给该用户对应的CUDA服务线程;
              等待CUDA服务线程驱动硬件完成任务;
              接收返回值;
              if(需要审计){
                 进入审计模块例程;
              }
              编码;
              向用户端返回;
      }
}
用户端程序实现于linux下的libcuda.so中(或windows下的cudart.dll中),作为标准库文件的替代,它为每一个标准API提供了入口,并内嵌了远程过程调用客户服务例程。
客户端的结构为:
某一个API入口{
       if(查询本地资源或需要审计){
          进入虚拟资源模块;
       }
       if(已开启懒惰传递){
          进入传输策略模块;
       }
       编码;
       if(已开启控制流日志){
          进入控制流日志模块例程;
       }
          发送远程过程调用请求;
          等待(同步或异步);
          收到远程过程调用回复;
          解码;
          向应用程序返回;
}
2.懒惰传输
静态法:为每一个API设定lazy指示符,将所有API分为两类:可推迟执行的lazy类API,以及必须立即传递并执行的immediate类API。传输策略模块按队列方式存贮每一个lazy类API,直到遇到第一个immediate类API为止。然后再将该API队列一次性发送给远程过程调用端。
动态法:由传输策略模块在运行时决定当前API是否立即被传输。
3.多机并发
远程过程调用客户端在对当前API进行编码时,首先对虚拟机ID(XEN下为domID,vmware下为CID)和进程号进行哈希,得到远程过程调用客户标识符,该标识符被嵌入到每个远程过程调用(或远程过程调用组)的头部。远程过程调用服务器根据收到数据后根据该头部认证用户身份,分配或启动对应的服务线程。必要时不同用户的服务线程可共享同一物理GPU的资源。

Claims (4)

1.一种工作在虚拟机平台的针对通用计算程序的虚拟接口和功能框架。
虚拟机管理器内运行vCUDA管理中心程序,内含策略模块、资源配置模块、审计模块和远程调用服务器模块,每个虚拟机安装vCUDA封装库,内含虚拟资源模块、传输策略模块、控制流日志模块和远程调用客户端模块。当虚拟机内应用程序执行通用计算任务时,相应的指令被虚拟资源模块截获,经控制流日志模块分析和记录后,按当前传输策略交由远程调用客户端模块发往位于虚拟机管理中心的远程调用服务器模块,经审计后由资源配置模块分配服务线程处理并返回。
远程调用服务器模块及远程调用客户端模块负责虚拟机管理器和各个虚拟机之间的底层通信,将双方的请求或应答传递给其它功能模块。
策略模块为其它模块提供实施策略,该策略由维护人员静态配置,或由系统在运行中动态生成。在动态模式中,该模块接收审计模块和控制流日志模块的报告作为输入。
资源配置模块统一管理本地硬件资源,按照虚拟机的要求、分配策略向其提供虚拟通用计算资源,定时接收虚拟资源模块的报告,跟踪资源使用状况,及时收回空闲资源,平衡系统中的计算负载。统一管理本地软件资源,为不同要求的用户提供适当数量的服务线程。
审计模块分析发生在虚拟机管理器端的调用命令及其参数,为策略中心模块提供统计数据,同时负责审计虚拟接口的参数,正确地翻译异地指针或句柄,保证在虚拟机管理器和虚拟机两端数据空间的一致性。
虚拟资源模块是虚拟通用计算资源在每个虚拟机中的逻辑镜象,向应用层提供完整的底层硬件视图。它依据资源配置模块分配的资源初始化,并定期向其报告本地的使用状况。虚拟资源模块与审计模块合作维护一个变量名表,使远程变量地址将与本地引用保持一致。
传输策略模块决定发送远程过程调用的时机和频率,它按照定制策略累积、合并、过滤上层调用,使虚拟化开销和带宽消耗达到最小。
控制流日志模块跟踪本地调用情况,记录调用名和相关参数,提供对虚拟机高级应用的支持。
2.如权利要求1所述的通用计算虚拟接口,其特征在于解离了通用计算资源的强耦合特征,将通用计算资源组织、表达为新的逻辑中间层,便于在虚拟机平台上进行隔离、划分、整合。
3.如权利要求1或2所述的通用计算虚拟接口,其特征在于:
(1)资源配置模块将某个计算机系统内所有通用计算资源视为统一的资源池,硬件底层的异构特征被掩盖,通过虚拟资源模块向用户提供无差别、统一特征的抽象资源。
(2)资源配置模块可为同一硬件向多个用户提供抽象,实现硬件的多路复用。
(3)资源配置模块可为多个硬件提供单一设备抽象,实现硬件的逻辑整合。
(4)资源配置模块按照客户机的实际需要向其分配GPU资源,当客户需求增长时追加资源,实现增量分配。
(5)当客户所占资源空闲时间超过一定阈值时,由虚拟资源模块向资源配置模块报告,资源配置模块收回该资源,实现动态调度。
(6)当硬件出现故障时,由策略模块实施故障恢复策略,将控制流日志模块中的记录在符合虚拟资源模块所定义的镜像上恢复,实现故障自动实时恢复。
(7)当某个虚拟机系统整体崩溃时,其在虚拟通用计算资源内部的状态被自动注销,不会向外传播,实现了故障隔离。
(8)在任意时点挂起虚拟机,控制流日志模块和虚拟资源模块的内容将被保存在内存或硬盘,以后随时可以从这个状态恢复执行,实现了针对通用计算应用程序的系统快照功能。
(9)在保持计算机系统运转的前提下,控制流日志模块和虚拟资源模块的内容可随其它计算机系统资料被复制到另一台虚拟机,实现了针对通用计算应用程序的实时迁移功能。
4.如权利要求1、2和3所述的通用计算虚拟接口,其特征在于:
(1)采用动态库拦截方法,对程序员完全透明,不增加程序员编程负担,不提高程序复杂度。程序员在编写通用计算程序时无需考虑虚拟化因素,即可实现权利3所述所有的功能。
(2)采用动态库拦截方法,无需修改源码,对二进制程序完全兼容,对老旧软件、不开源软件均适用。
CNA2008101435880A 2008-11-13 2008-11-13 Cuda图形子系统虚拟化方法 Pending CN101419558A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101435880A CN101419558A (zh) 2008-11-13 2008-11-13 Cuda图形子系统虚拟化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101435880A CN101419558A (zh) 2008-11-13 2008-11-13 Cuda图形子系统虚拟化方法

Publications (1)

Publication Number Publication Date
CN101419558A true CN101419558A (zh) 2009-04-29

Family

ID=40630353

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101435880A Pending CN101419558A (zh) 2008-11-13 2008-11-13 Cuda图形子系统虚拟化方法

Country Status (1)

Country Link
CN (1) CN101419558A (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917460A (zh) * 2010-07-22 2010-12-15 河南远为网络信息技术有限公司 基于虚拟机技术的远程维护系统
CN101916207A (zh) * 2010-08-28 2010-12-15 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置
CN102890643A (zh) * 2012-07-26 2013-01-23 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
CN102999390A (zh) * 2012-11-14 2013-03-27 北京搜狐新媒体信息技术有限公司 一种云计算环境下的后端资源控制方法和装置
CN103116520A (zh) * 2012-11-02 2013-05-22 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
WO2013082749A1 (zh) * 2011-12-06 2013-06-13 华为技术有限公司 一种硬件资源保护方法和系统以及虚拟机管理器
CN103209209A (zh) * 2013-02-21 2013-07-17 山东乾云启创信息科技有限公司 基于Windows系统和网络传输的应用虚拟化实现方法及系统
CN103631634A (zh) * 2012-08-24 2014-03-12 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN103635882A (zh) * 2011-06-29 2014-03-12 微软公司 控制网络利用
CN103761139A (zh) * 2014-01-25 2014-04-30 湖南大学 一种基于动态库拦截的通用计算虚拟化实现方法
CN104750560A (zh) * 2015-03-06 2015-07-01 联想(北京)有限公司 一种信息处理方法及电子设备
CN104899097A (zh) * 2015-04-17 2015-09-09 杭州华三通信技术有限公司 线程分配数量计算方法以及装置
CN106775940A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种图形处理系统及虚拟化方法
CN107239410A (zh) * 2017-05-31 2017-10-10 上海交通大学 基于动态插桩的大块内存分配系统及方法
CN107436797A (zh) * 2017-08-14 2017-12-05 深信服科技股份有限公司 一种基于虚拟化环境的指令数据处理方法及装置
CN107563080A (zh) * 2017-09-11 2018-01-09 湖南大学 基于gpu的两相介质随机模型并行生成方法、电子设备
CN107729095A (zh) * 2017-09-13 2018-02-23 深信服科技股份有限公司 图像处理方法、虚拟化平台及计算机可读存储介质
US9965823B2 (en) 2015-02-25 2018-05-08 Microsoft Technology Licensing, Llc Migration of graphics processing unit (GPU) states
CN108124018A (zh) * 2012-06-26 2018-06-05 丛林网络公司 分布式处理网络设备任务的方法与虚拟机管理器
CN110162397A (zh) * 2018-05-28 2019-08-23 腾讯科技(深圳)有限公司 资源分配方法、装置及系统
CN111078412A (zh) * 2019-12-12 2020-04-28 中山大学 一种通过api截获对gpu进行资源管理的方法
CN111399973A (zh) * 2019-01-03 2020-07-10 阿里巴巴集团控股有限公司 Fpga远程挂载结构、网络管控方法、装置及电子设备
CN111736943A (zh) * 2019-03-25 2020-10-02 阿里巴巴集团控股有限公司 虚拟机的迁移方法和系统
WO2021073214A1 (zh) * 2019-10-14 2021-04-22 支付宝(杭州)信息技术有限公司 用于运行应用程序的方法、装置及gpu节点

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917460B (zh) * 2010-07-22 2012-12-05 河南远为网络信息技术有限公司 基于虚拟机技术的远程维护系统
CN101917460A (zh) * 2010-07-22 2010-12-15 河南远为网络信息技术有限公司 基于虚拟机技术的远程维护系统
CN101916207A (zh) * 2010-08-28 2010-12-15 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
CN101916207B (zh) * 2010-08-28 2013-10-09 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置
CN102541618B (zh) * 2010-12-29 2015-05-27 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置
CN103635882A (zh) * 2011-06-29 2014-03-12 微软公司 控制网络利用
US10013281B2 (en) 2011-06-29 2018-07-03 Microsoft Technology Licensing, Llc Controlling network utilization
WO2013082749A1 (zh) * 2011-12-06 2013-06-13 华为技术有限公司 一种硬件资源保护方法和系统以及虚拟机管理器
CN108124018A (zh) * 2012-06-26 2018-06-05 丛林网络公司 分布式处理网络设备任务的方法与虚拟机管理器
CN108124018B (zh) * 2012-06-26 2020-07-28 丛林网络公司 分布式处理网络设备任务的方法与虚拟机管理器
CN102890643B (zh) * 2012-07-26 2015-01-21 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
CN102890643A (zh) * 2012-07-26 2013-01-23 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
WO2014015725A1 (zh) * 2012-07-26 2014-01-30 上海交通大学 基于应用效果即时反馈的显卡虚拟化下资源调度系统、方法
CN103631634B (zh) * 2012-08-24 2017-07-25 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN103631634A (zh) * 2012-08-24 2014-03-12 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
CN103116520B (zh) * 2012-11-02 2016-07-06 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
CN103116520A (zh) * 2012-11-02 2013-05-22 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
CN102999390B (zh) * 2012-11-14 2016-08-03 北京搜狐新媒体信息技术有限公司 一种云计算环境下的后端资源控制方法和装置
CN102999390A (zh) * 2012-11-14 2013-03-27 北京搜狐新媒体信息技术有限公司 一种云计算环境下的后端资源控制方法和装置
CN103209209B (zh) * 2013-02-21 2016-03-30 济南乾云信息科技有限公司 基于Windows系统和网络传输的应用虚拟化实现方法及系统
CN103209209A (zh) * 2013-02-21 2013-07-17 山东乾云启创信息科技有限公司 基于Windows系统和网络传输的应用虚拟化实现方法及系统
CN103761139B (zh) * 2014-01-25 2017-02-08 湖南大学 一种基于动态库拦截的通用计算虚拟化实现方法
CN103761139A (zh) * 2014-01-25 2014-04-30 湖南大学 一种基于动态库拦截的通用计算虚拟化实现方法
US9965823B2 (en) 2015-02-25 2018-05-08 Microsoft Technology Licensing, Llc Migration of graphics processing unit (GPU) states
CN104750560A (zh) * 2015-03-06 2015-07-01 联想(北京)有限公司 一种信息处理方法及电子设备
CN104750560B (zh) * 2015-03-06 2018-12-14 联想(北京)有限公司 一种信息处理方法及电子设备
CN104899097A (zh) * 2015-04-17 2015-09-09 杭州华三通信技术有限公司 线程分配数量计算方法以及装置
CN106775940A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种图形处理系统及虚拟化方法
CN107239410A (zh) * 2017-05-31 2017-10-10 上海交通大学 基于动态插桩的大块内存分配系统及方法
CN107239410B (zh) * 2017-05-31 2020-06-09 上海交通大学 基于动态插桩的大块内存分配系统及方法
CN107436797A (zh) * 2017-08-14 2017-12-05 深信服科技股份有限公司 一种基于虚拟化环境的指令数据处理方法及装置
CN107563080A (zh) * 2017-09-11 2018-01-09 湖南大学 基于gpu的两相介质随机模型并行生成方法、电子设备
CN107563080B (zh) * 2017-09-11 2020-06-23 湖南大学 基于gpu的两相介质随机模型并行生成方法、电子设备
CN107729095A (zh) * 2017-09-13 2018-02-23 深信服科技股份有限公司 图像处理方法、虚拟化平台及计算机可读存储介质
CN107729095B (zh) * 2017-09-13 2020-12-04 深信服科技股份有限公司 图像处理方法、虚拟化平台及计算机可读存储介质
CN110162397B (zh) * 2018-05-28 2022-08-23 腾讯科技(深圳)有限公司 资源分配方法、装置及系统
CN110162397A (zh) * 2018-05-28 2019-08-23 腾讯科技(深圳)有限公司 资源分配方法、装置及系统
CN111399973A (zh) * 2019-01-03 2020-07-10 阿里巴巴集团控股有限公司 Fpga远程挂载结构、网络管控方法、装置及电子设备
CN111399973B (zh) * 2019-01-03 2023-07-28 阿里巴巴集团控股有限公司 Fpga远程挂载结构、网络管控方法、装置及电子设备
CN111736943A (zh) * 2019-03-25 2020-10-02 阿里巴巴集团控股有限公司 虚拟机的迁移方法和系统
EP3951590A4 (en) * 2019-03-25 2022-12-21 Alibaba Group Holding Limited VIRTUAL MACHINE MIGRATION METHOD AND SYSTEM
WO2021073214A1 (zh) * 2019-10-14 2021-04-22 支付宝(杭州)信息技术有限公司 用于运行应用程序的方法、装置及gpu节点
CN111078412A (zh) * 2019-12-12 2020-04-28 中山大学 一种通过api截获对gpu进行资源管理的方法
CN111078412B (zh) * 2019-12-12 2023-03-14 中山大学 一种通过api截获对gpu进行资源管理的方法

Similar Documents

Publication Publication Date Title
CN101419558A (zh) Cuda图形子系统虚拟化方法
CN103761139B (zh) 一种基于动态库拦截的通用计算虚拟化实现方法
CN101430674B (zh) 一种分布式虚拟机监控器内连通信方法
US7779424B2 (en) System and method for attributing to a corresponding virtual machine CPU usage of an isolated driver domain in which a shared resource's device driver resides
CN111488196B (zh) 渲染方法及装置、存储介质、处理器
US20160378519A1 (en) Method and system for anticipating demand for a computational resource by containers running above guest operating systems within a distributed, virtualized computer system
CN102591715B (zh) 一种使用多队列技术的虚拟机网络性能优化的实现方法
JP6943954B2 (ja) コンテナに基づくgpu仮想化方法及びシステム
CN102262557A (zh) 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN101765225A (zh) 一种虚拟化的集群管理方法和集群节点
JP2017216000A (ja) 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
CN102707986A (zh) 子分区与父分区之间的共享存储器
CN112286645A (zh) 一种gpu资源池调度系统及方法
US20080028399A1 (en) System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on observed communication through a virtualized interface
CN102073535B (zh) 基于硬件计数器虚拟化的多虚拟机性能分析方法
CN100399273C (zh) 一种虚拟机系统及其硬件配置方法
CN113900773A (zh) 一种基于国产平台虚拟机和容器的超融合调度方法
CN106339257A (zh) 使客户机操作系统轻量化的方法及系统和虚拟化操作系统
Chang et al. On construction and performance evaluation of a virtual desktop infrastructure with GPU accelerated
US11184244B2 (en) Method and system that determines application topology using network metrics
CN108304248A (zh) 一种多系统虚拟化的移动设备
CN115904617A (zh) 一种基于sr-iov技术的gpu虚拟化实现方法
Kumar et al. A load balancing based cloud computing techniques and challenges
CN113986466A (zh) 一种面向云计算的gpu虚拟化系统和方法
CN115964128A (zh) 一种异构gpu资源管理和调度方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090429