[发明专利]一种GPU的模拟方法有效
申请号: | 201610751451.8 | 申请日: | 2016-08-29 |
公开(公告)号: | CN106371890B | 公开(公告)日: | 2019-05-28 |
发明(设计)人: | 石磊;张辉;程栋;牛文强 | 申请(专利权)人: | 山东乾云启创信息科技股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 黄海丽 |
地址: | 250101 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种GPU的模拟方法,首先基于系统虚拟化和GPU使用原理,在内核态模拟器中截获客户GPU的指令序列,然后根据用户配置,选择如下两种机制的任意一种完成对客户GPU的模拟。机制一,基于二进制翻译技术在低级语义上直接完成指令翻译,并最终在宿主GPU上执行;机制二,利用GPU现有软件栈完成指令转换,并最终在宿主GPU上执行。本发明基于宿主机的物理GPU为虚拟机提供高效模拟的GPU(虚拟GPU和物理GPU的型号版本可以不同),解决了GPU模拟速度慢的问题。本发明主要基于系统虚拟化技术,同时借助现有GPU软件栈提供的便利条件,提高GPU模拟速度,并有效控制该方法实现的难度和复杂度。 | ||
搜索关键词: | 一种 gpu 模拟 方法 | ||
【主权项】:
1.一种GPU的模拟方法,其特征是,包括如下步骤:步骤101:在虚拟机中,应用程序向客户GPU驱动发出高级命令;步骤102:客户GPU驱动,把应用程序提交的高级命令转化为对应客户GPU可识别的一组低级指令序列,然后写入客户GPU指令缓冲;步骤103:客户GPU驱动在提交若干相关联的高级命令后,触发一次提交操作,该提交操作触发虚拟机退出VM‑Exit,控制权转移到内核态模拟器,由内核态模拟器根据配置策略决定GPU模拟不同的机制;所述不同的机制包括:第一类机制:基于二进制翻译技术在低级语义上直接完成指令翻译,并最终在宿主GPU上执行;第二类机制:利用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执行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东乾云启创信息科技股份有限公司,未经山东乾云启创信息科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610751451.8/,转载请声明来源钻瓜专利网。