CN106371890A - 一种gpu的模拟方法 - Google Patents

一种gpu的模拟方法 Download PDF

Info

Publication number
CN106371890A
CN106371890A CN201610751451.8A CN201610751451A CN106371890A CN 106371890 A CN106371890 A CN 106371890A CN 201610751451 A CN201610751451 A CN 201610751451A CN 106371890 A CN106371890 A CN 106371890A
Authority
CN
China
Prior art keywords
gpu
host
client
instruction
sequence
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
CN201610751451.8A
Other languages
English (en)
Other versions
CN106371890B (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.)
Shandong Qianyun Qichuang Information Technology Co Ltd
Original Assignee
Shandong Qianyun Qichuang Information 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 Shandong Qianyun Qichuang Information Technology Co Ltd filed Critical Shandong Qianyun Qichuang Information Technology Co Ltd
Priority to CN201610751451.8A priority Critical patent/CN106371890B/zh
Publication of CN106371890A publication Critical patent/CN106371890A/zh
Application granted granted Critical
Publication of CN106371890B publication Critical patent/CN106371890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种GPU的模拟方法,首先基于系统虚拟化和GPU使用原理,在内核态模拟器中截获客户GPU的指令序列,然后根据用户配置,选择如下两种机制的任意一种完成对客户GPU的模拟。机制一,基于二进制翻译技术在低级语义上直接完成指令翻译,并最终在宿主GPU上执行;机制二,利用GPU现有软件栈完成指令转换,并最终在宿主GPU上执行。本发明基于宿主机的物理GPU为虚拟机提供高效模拟的GPU(虚拟GPU和物理GPU的型号版本可以不同),解决了GPU模拟速度慢的问题。本发明主要基于系统虚拟化技术,同时借助现有GPU软件栈提供的便利条件,提高GPU模拟速度,并有效控制该方法实现的难度和复杂度。

Description

一种GPU的模拟方法
技术领域
本发明涉及一种GPU的模拟方法。
背景技术
处理器(即CPU)模拟通常很慢。虚拟化技术用于加速处理器模拟的速度,例如Intel的SoftSDV和Simics可以基于兼容的处理器平台运行。使用虚拟化技术,新一代处理器的大部分指令可以直接在老一代的处理器上运行,这比纯软件仿真技术(例如Qemu的二进制翻译和Bochs的解释型翻译)快的多。CPU处理器领域的通常情况是,新一代处理器的大部分指令与老一代处理器一致,即保持向后兼容。但是GPU领域的情况不同。
对GPU的操作主要包括两种:
1)访问GPU寄存器。GPU通常包括大量的寄存器,这些寄存器用于控制GPU的各种运行模式和状态,包括显示、渲染和电源管理等方面。GPU寄存器通常经由MMIO方式映射到系统的内存地址空间。
2)提交GPU指令。指令通常先要分类存放在多个环形缓冲或批量缓冲中,然后由GPU内部的各渲染引擎并发执行。执行指令是GPU工作的主要方式。
GPU模拟相对CPU模拟更复杂并且速度更慢:
第一,GPU在硬件设计时,很少考虑对虚拟化的支持。与之相对的,现在几乎所有的CPU,都具备比较完善硬件辅助虚拟化的特性。因此,从硬件特性支持的角度,模拟GPU的难度更大。
第二,GPU的指令设计,并不像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的模拟方法,包括如下步骤:
步骤101:在虚拟机中,应用程序向客户GPU驱动发出高级命令;
步骤102:客户GPU驱动,把应用程序提交的高级命令转化为对应客户GPU可识别的一组低级指令序列,然后写入客户GPU指令缓冲;
步骤103:客户GPU驱动在提交若干相关联的高级命令后,触发一次提交操作,该提交操作触发虚拟机退出VM-Exit,然后控制权转移到内核态模拟器,由内核态模拟器根据配置策略决定GPU模拟不同的机制。
所述不同的机制包括:
第一类机制:基于二进制翻译技术在低级语义上直接完成指令翻译,并最终在宿主GPU上执行;
第二类机制:利用GPU现有软件栈完成指令转换和执行。
GPU现有软件栈包括应用程序使用GPU硬件需要使用的所有层次的软件。
所述第一类机制和第二类机制,根据现实情况的差别,可以只采用其中一种,也可以同时结合使用。
所述客户GPU指令缓冲,由内核态模拟器分配内存空间并直接映射到虚拟机中,所以客户GPU驱动向客户GPU指令缓冲写入指令的动作,不触发虚拟机退出VM-Exit。
所述步骤103的提交操作实际是通过设置客户GPU的寄存器状态来实现的,根据系统虚拟化的基本机制,提交操作将会触发虚拟机退出(VM-Exit),控制权转移到内核态模拟器,然后由内核态模拟器决定GPU模拟的两种机制。
如果步骤103选择第一类机制,则执行201和202的步骤:
步骤201:内核态模拟器,基于二进制翻译,把客户GPU指令缓冲中的当前指令序列,翻译为宿主GPU对应可识别的指令序列,存放到影子命令缓冲;
步骤202:内核态模拟器从影子指令缓冲中取出翻译完成的GPU指令序列,批量提交给宿主GPU;宿主GPU作为实际存在的物理GPU,完成最终的GPU模拟工作。
所述步骤201二进制翻译后的指令序列,执行效果上与翻译前指令序列一致。
如果步骤103选择第二类机制,则执行步骤301至步骤305,还包括步骤401的优化旁路:
步骤301:内核态模拟器扫描客户GPU指令缓冲中的当前指令序列,对照内置的转换缓存,检查当前指令序列是否已经存在对应的缓存项;如果存在,直接转步骤401;如果不存在,内核态模拟器在转换缓存中注册一项记录,标记为待转换,退出内核态,把控制权返回到用户态模拟器,然后转步骤302;
步骤302:用户态模拟器从转换缓存取出待转换的客户GPU指令序列,查询内置的映射表,把低级指令序列翻译为高级的命令形式;
步骤303:用户态模拟器调用宿主GPU驱动,向宿主GPU驱动发出高级命令;
步骤304:宿主GPU驱动处理高级命令,产生宿主GPU对应的指令序列,宿主GPU对应的指令序列经由宿主机内核向宿主GPU提交时,被内核态模拟器截获,用于更新转换缓存中待转化的记录;
步骤305:宿主GPU指令序列被宿主机内核提交给宿主GPU执行;
步骤401:内核态模拟器发现,转换缓存中存在当前的客户GPU指令序列与宿主GPU指令序列的映射项,则内核态模拟器直接利用该映射项完成转换,然后把转换结果提交给宿主GPU执行。
所述步骤302映射表输入的是客户GPU的指令序列,输出的是翻译后的高级命令。高级命令属于较高级的抽象层次,翻译后的高级命令与底层GPU的新老版本无关,因此用户态模拟器可以直接在303步骤中处理高级命令。
所述步骤302映射表需要预先建立,建立的过程如下:应用程序向GPU驱动发出的一条高级命令,会被GPU驱动转换为一组低级的指令序列,暂存在批量缓冲中,然后才被提交给GPU运行。如图3所示,通过监控批量缓冲,可以建立任何一款GPU指令序列与高级命令对应关系的映射表。这里针对宿主GPU,建立映射表,该映射表被用户态模拟器在启动时加载使用。
步骤304建立了从客户GPU指令序列向宿主GPU指令序列的转换项,为401加速转换提供支持。
步骤304的截获过程对宿主GPU驱动是透明的。
本发明的有益效果:
1本发明在模拟速度上具有明显优势;
2本发明可以基于一种型号的GPU,模拟其它各种型号的GPU;
3本发明可以借助GPU现有的软件栈,实现难度和复杂性较低;
附图说明
图1 GPU模拟结构和数据流程,基于宿主GPU模拟客户GPU;
图2 GPU软件栈;
图3 GPU低级指令序列到高级命令的映射表;
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
虽然各厂商以及各代GPU执行的指令集可能不同,但是这些指令的设计目的是类似的,例如可能都是为了支持OpenGL或DirectX这些高级的编程接口。本发明不受显卡的厂商类型以及高级编程接口类型的限制,但是为了进一步清晰表述,以下以OpenGL和IntelGPU显卡为例,说明本发明的实施过程。如图1所示:
步骤101:虚拟机中运行的基于OpenGL的应用程序,向客户GPU驱动发出高级命令。在本步骤中,应用程序和客户GPU驱动都是未改动的原始程序,它们的运行过程与物理环境下完全相同。
步骤102:客户GPU驱动把高级命令对应转化为对应的指令序列,这个指令序列属于客户GPU的指令集。然后,该指令序列在逻辑上应当被本驱动发送给虚拟机配置的客户GPU,但是由于虚拟化的原因,该指令序列实际被写入到内核态模拟器提供的客户GPU指令缓冲。客户GPU指令缓冲被直接映射给虚拟机,因此这一步骤不会触发VM-Exit,因而对虚拟机的运行性能几乎没有负面影响。
步骤103:客户GPU驱动在发出一组高级命令后,会通知GPU执行一次提交,内核态模拟器截获该提交命令,批量处理当前客户GPU指令缓冲中的所有指令。对于Intel的GPU,提交是通过设置GPU的TAIL寄存器来实现的。因此内核态模拟器截获该提交命令的方法是,在虚拟机的内存页表中移除TAIL寄存器对应空间的映射,这样当驱动对GPU执行寄存器操作时,将触发虚拟机VM-Exit,控制权转移到内核态模拟器,进而截获此次提交。对于103的后续步骤,根据配置策略,内核态模拟器可以在以下两条路径中选择一条进行后续处理,也可以组合使用,即根据策略,不同的指令序列进入不同的后续流程。第一条路径是基于二进制翻译的方法,即包括201和202;另外一条路径是借助映射表和GPU软件栈的方法,即包括301至305,以及优化的401。
如果选择第一类机制-低级语义上的二进制翻译,在103后执行包括201和202的步骤。
步骤201:内核态模拟器基于二进制翻译技术,把客户GPU指令缓冲区中的当前指令序列,翻译为宿主GPU对应可识别的指令序列,存放到影子命令缓冲。二进制翻译基于指令块的翻译方法,可以采用指令重新排序、消除冗余指令的优化方法,提高翻译效率。
步骤202:内核态模拟器把影子指令缓冲中当前的GPU指令,批量提交给宿主GPU。然后,内核态模拟器作为物理GPU的用户,执行向GPU提交指令,完成模拟工作。
如果选择第二类机制-利用现有的GPU软件栈及优化路径,在103后执行301至305,还包括401的优化旁路。
步骤301:内核态模拟器被,根据客户GPU指令缓冲区中的当前指令序列,检查转换缓冲,判定该指令序列是否已经存在对应的映射表项。如果存在,直接转401;如果不存在,内核模拟器在转换缓冲注册一项纪录,标记为待转换,退出内核态,把控制权返回到用户态模拟器,然后转302。
步骤302:用户态模拟器从转换映射表取出待转换的客户GPU指令序列,把这组低级指令序列还原为高级的命令形式。还原过程基于一个预先建立的映射表,表的输入是客户GPU的指令序列,输出是还原后的高级命令。为加快对映射表的查询速度,应当先仅对指令序列中的引导指令,与表中的数据项进行预匹配。如果匹配成功,再进一步比较余下的序列,这样可以提高命令模式匹配的速度。
步骤303:用户态模拟器调用宿主GPU驱动,向它发出高级命令。
步骤304:宿主GPU驱动对用户态模拟器发出的高级命令进行处理,产生对应于宿主GPU的指令序列,该指令序列经由宿主机内核向GPU提交时,被内核态模拟器截获,用于更新转换缓冲中待转化的记录,建立从客户GPU指令序列向宿主GPU指令序列的转换项。该截获过程对宿主GPU驱动是透明的。
步骤305:宿主GPU指令序列被宿主机内核提交给宿主GPU执行。
步骤401:转换缓存中目前存在当前的客户GPU指令序列与宿主GPU指令序列的映射项,则内核态模拟器直接使用该映射完成转换,把转换结果提交给宿主GPU执行。
另外,步骤302所述映射表的建立原理如图2所示,应用程序向GPU驱动发出的一条高级命令,会被GPU驱动转换为一组低级的指令序列,暂存在批量缓冲中,然后才被提交给GPU运行。因此通过监控批量缓冲中的指令序列与高级命令的对应关系,可以建立映射表,如图3所示。以OpenGL为例,目前大概有50个左右的OpenGL高级命令(API形式),所以我们跟踪高级命令到低级指令序列映射的工作量是可控的。需要注意:对于一个高级命令,当调用参数不同时可能在GPU的软件栈中执行不同的路径,所以可能产生多个指令序列模式。因此,映射表中可能存在多对一映射的情况。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.一种GPU的模拟方法,其特征是,包括如下步骤:
步骤101:在虚拟机中,应用程序向客户GPU驱动发出高级命令;
步骤102:客户GPU驱动,把应用程序提交的高级命令转化为对应客户GPU可识别的一组低级指令序列,然后写入客户GPU指令缓冲;
步骤103:客户GPU驱动在提交若干相关联的高级命令后,触发一次提交操作,该提交操作触发虚拟机退出VM-Exit,控制权转移到内核态模拟器,由内核态模拟器根据配置策略决定GPU模拟不同的机制。
2.如权利要求1所述的一种GPU的模拟方法,其特征是,所述不同的机制包括:
第一类机制:基于二进制翻译技术在低级语义上直接完成指令翻译,并最终在宿主GPU上执行;
第二类机制:利用GPU现有软件栈完成指令转换和执行。
3.如权利要求2所述的一种GPU的模拟方法,其特征是,
第一类机制和第二类机制,根据现实情况的差别,可以只采用其中一种,也可以同时结合使用。
4.如权利要求1所述的一种GPU的模拟方法,其特征是,
所述客户GPU指令缓冲,由内核态模拟器分配内存空间并直接映射到虚拟机中,所以客户GPU驱动向客户GPU指令缓冲写入指令的动作,不触发虚拟机退出VM-Exit。
5.如权利要求1所述的一种GPU的模拟方法,其特征是,
所述步骤103的提交操作实际是通过设置客户GPU的寄存器状态来实现的,根据系统虚拟化的基本机制,提交操作将会触发虚拟机退出VM-Exit,控制权转移到内核态模拟器,然后由内核态模拟器决定GPU模拟的两种机制。
6.如权利要求2所述的一种GPU的模拟方法,其特征是,
如果步骤103选择第一类机制,则执行201和202的步骤:
步骤201:内核态模拟器,基于二进制翻译,把客户GPU指令缓冲中的当前指令序列,翻译为宿主GPU对应可识别的指令序列,存放到影子命令缓冲;
步骤202:内核态模拟器从影子指令缓冲中取出翻译完成的GPU指令序列,批量提交给宿主GPU;宿主GPU作为实际存在的物理GPU,完成最终的GPU模拟工作。
7.如权利要求6所述的一种GPU的模拟方法,其特征是,
所述步骤201二进制翻译后的指令序列,执行效果上与翻译前指令序列一致。
8.如权利要求2所述的一种GPU的模拟方法,其特征是,
如果步骤103选择第二类机制,则执行步骤301至步骤305,还包括步骤401的优化旁路:
步骤301:内核态模拟器扫描客户GPU指令缓冲中的当前指令序列,对照内置的转换缓存,检查当前指令序列是否已经存在对应的缓存项;如果存在,直接转步骤401;如果不存在,内核态模拟器在转换缓存中注册一项记录,标记为待转换,退出内核态,把控制权返回到用户态模拟器,然后转步骤302;
步骤302:用户态模拟器从转换缓存取出待转换的客户GPU指令序列,查询内置的映射表,把低级指令序列翻译为高级的命令形式;
步骤303:用户态模拟器调用宿主GPU驱动,向宿主GPU驱动发出高级命令;
步骤304:宿主GPU驱动处理高级命令,产生宿主GPU对应的指令序列,宿主GPU对应的指令序列经由宿主机内核向宿主GPU提交时,被内核态模拟器截获,用于更新转换缓存中待转化的记录;
步骤305:宿主GPU指令序列被宿主机内核提交给宿主GPU执行;
步骤401:内核态模拟器发现,转换缓存中存在当前的客户GPU指令序列与宿主GPU指令序列的映射项,则内核态模拟器直接利用该映射项完成转换,然后把转换结果提交给宿主GPU执行。
9.如权利要求8所述的一种GPU的模拟方法,其特征是,
所述步骤302映射表输入的是客户GPU的指令序列,输出的是翻译后的高级命令。
10.如权利要求8所述的一种GPU的模拟方法,其特征是,
步骤304建立了从客户GPU指令序列向宿主GPU指令序列的转换项,为401加速转换提供支持;步骤304的截获过程对宿主GPU驱动是透明的。
CN201610751451.8A 2016-08-29 2016-08-29 一种gpu的模拟方法 Active CN106371890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610751451.8A CN106371890B (zh) 2016-08-29 2016-08-29 一种gpu的模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610751451.8A CN106371890B (zh) 2016-08-29 2016-08-29 一种gpu的模拟方法

Publications (2)

Publication Number Publication Date
CN106371890A true CN106371890A (zh) 2017-02-01
CN106371890B CN106371890B (zh) 2019-05-28

Family

ID=57903647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610751451.8A Active CN106371890B (zh) 2016-08-29 2016-08-29 一种gpu的模拟方法

Country Status (1)

Country Link
CN (1) CN106371890B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537719A (zh) * 2018-03-26 2018-09-14 上海交通大学 一种提高通用图形处理器性能的系统及方法
CN109101283A (zh) * 2018-07-17 2018-12-28 北京元心科技有限公司 Gpu设备的控制方法、装置及电子设备
CN109753134A (zh) * 2018-12-24 2019-05-14 四川大学 一种基于全局解耦的gpu内部能耗控制系统及方法
CN111176924A (zh) * 2019-12-21 2020-05-19 苏州浪潮智能科技有限公司 一种gpu掉卡模拟方法、系统、终端及存储介质
US11797323B2 (en) 2020-09-15 2023-10-24 The Boeing Company Virtual machine for virtualizing graphics functions
CN116991600A (zh) * 2023-06-15 2023-11-03 上海一谈网络科技有限公司 图形调用指令的处理方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246452A (zh) * 2007-02-12 2008-08-20 国际商业机器公司 执行快速的mmu模拟的方法和装置、以及全系统模拟器
CN101751345A (zh) * 2008-12-10 2010-06-23 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
CN101924784A (zh) * 2009-06-09 2010-12-22 奇群科技股份有限公司 一种运用并行辅助处理器的虚拟世界模拟系统及模拟方法
CN102135866A (zh) * 2010-10-29 2011-07-27 华南理工大学 一种基于Xen安全计算机显示优化的方法
CN102662726A (zh) * 2012-04-01 2012-09-12 龙芯中科技术有限公司 虚拟机的模拟方法和计算机设备
CN103714288A (zh) * 2013-12-26 2014-04-09 华中科技大学 一种数据流跟踪方法
CN103793260A (zh) * 2013-10-09 2014-05-14 中国电子设备系统工程公司研究所 一种平台虚拟化系统
CN103955357A (zh) * 2014-04-29 2014-07-30 北京控制工程研究所 一种动态二进制翻译指令集模拟器计时方法
CN104239121A (zh) * 2014-08-28 2014-12-24 北京云巢动脉科技有限公司 显卡重定向系统和利用该系统实现图形显示的方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246452A (zh) * 2007-02-12 2008-08-20 国际商业机器公司 执行快速的mmu模拟的方法和装置、以及全系统模拟器
CN101751345A (zh) * 2008-12-10 2010-06-23 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
CN101924784A (zh) * 2009-06-09 2010-12-22 奇群科技股份有限公司 一种运用并行辅助处理器的虚拟世界模拟系统及模拟方法
CN102135866A (zh) * 2010-10-29 2011-07-27 华南理工大学 一种基于Xen安全计算机显示优化的方法
CN102662726A (zh) * 2012-04-01 2012-09-12 龙芯中科技术有限公司 虚拟机的模拟方法和计算机设备
CN103793260A (zh) * 2013-10-09 2014-05-14 中国电子设备系统工程公司研究所 一种平台虚拟化系统
CN103714288A (zh) * 2013-12-26 2014-04-09 华中科技大学 一种数据流跟踪方法
CN103955357A (zh) * 2014-04-29 2014-07-30 北京控制工程研究所 一种动态二进制翻译指令集模拟器计时方法
CN104239121A (zh) * 2014-08-28 2014-12-24 北京云巢动脉科技有限公司 显卡重定向系统和利用该系统实现图形显示的方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537719A (zh) * 2018-03-26 2018-09-14 上海交通大学 一种提高通用图形处理器性能的系统及方法
CN108537719B (zh) * 2018-03-26 2021-10-19 上海交通大学 一种提高通用图形处理器性能的系统及方法
CN109101283A (zh) * 2018-07-17 2018-12-28 北京元心科技有限公司 Gpu设备的控制方法、装置及电子设备
CN109753134A (zh) * 2018-12-24 2019-05-14 四川大学 一种基于全局解耦的gpu内部能耗控制系统及方法
CN109753134B (zh) * 2018-12-24 2022-04-15 四川大学 一种基于全局解耦的gpu内部能耗控制系统及方法
CN111176924A (zh) * 2019-12-21 2020-05-19 苏州浪潮智能科技有限公司 一种gpu掉卡模拟方法、系统、终端及存储介质
CN111176924B (zh) * 2019-12-21 2022-07-22 苏州浪潮智能科技有限公司 一种gpu掉卡模拟方法、系统、终端及存储介质
US11797323B2 (en) 2020-09-15 2023-10-24 The Boeing Company Virtual machine for virtualizing graphics functions
CN116991600A (zh) * 2023-06-15 2023-11-03 上海一谈网络科技有限公司 图形调用指令的处理方法、装置、设备及存储介质
CN116991600B (zh) * 2023-06-15 2024-05-10 上海一谈网络科技有限公司 图形调用指令的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106371890B (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN106371890A (zh) 一种gpu的模拟方法
CN101398768B (zh) 一种分布式虚拟机监视器系统的构建方法
US7272831B2 (en) Method and apparatus for constructing host processor soft devices independent of the host processor operating system
CN100504789C (zh) 控制虚拟机的方法
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US6470424B1 (en) Pin management of accelerator for interpretive environments
EP2840497B1 (en) Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system
CN102135866B (zh) 一种基于Xen安全计算机显示优化的方法
CN101243396B (zh) 用于在虚拟化环境中支持通用串行总线装置的方法和设备
CN101477496A (zh) 基于分布式内存虚拟化的numa结构的实现方法
US20080040093A1 (en) Register mapping in emulation of a target system on a host system
US5630074A (en) Inter-program communication and scheduling method for personal computers
CN104025185A (zh) 用于使用gpu控制器来预加载缓存的机制
US20120005676A1 (en) Computing Machine and Method of Updating Virtual Machine
CN102591715A (zh) 一种使用多队列技术的虚拟机网络性能优化的实现方法
US6141732A (en) Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks
CN112817690B (zh) 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统
US11928489B2 (en) Extension application mechanisms through intra-process operation systems
CN103473426A (zh) 基于嵌入式系统框架的星载相控阵信号处理架构设计方法
US11249786B2 (en) Virtualizing hardware components that implement AI applications
CN117389694A (zh) 基于virtio-blk技术提升虚拟存储IO性能的方法
US10891125B2 (en) Videogame patch data compilation system
CN105487915B (zh) 一种基于延迟发送机制的gpu虚拟化性能提升的方法
GB2379293A (en) Processing default data when an error is detected in the received data type
JP2023521557A (ja) ハイパーバイザのホットリスタート

Legal Events

Date Code Title Description
C06 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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A GPU simulation method

Effective date of registration: 20210129

Granted publication date: 20190528

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980000858

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220517

Granted publication date: 20190528

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980000858

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A GPU simulation method

Effective date of registration: 20230131

Granted publication date: 20190528

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2023980031824

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231222

Granted publication date: 20190528

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2023980031824

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A GPU simulation method

Effective date of registration: 20231225

Granted publication date: 20190528

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2023980074231

PE01 Entry into force of the registration of the contract for pledge of patent right