CN117648210A - 一种远程访问图形处理器的方法和装置 - Google Patents
一种远程访问图形处理器的方法和装置 Download PDFInfo
- Publication number
- CN117648210A CN117648210A CN202311674664.1A CN202311674664A CN117648210A CN 117648210 A CN117648210 A CN 117648210A CN 202311674664 A CN202311674664 A CN 202311674664A CN 117648210 A CN117648210 A CN 117648210A
- Authority
- CN
- China
- Prior art keywords
- processor
- target
- node
- transmission path
- virtual
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000005540 biological transmission Effects 0.000 claims abstract description 204
- 238000012545 processing Methods 0.000 claims abstract description 117
- 230000008569 process Effects 0.000 claims description 20
- 230000006870 function Effects 0.000 description 32
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种远程访问图形处理器的方法和装置,应用于部署第一处理器和至少一个虚拟机的第一节点,该方法包括:虚拟机生成包含应用请求的目标信息,目标信息满足虚拟图形处理器驱动模块和第一处理器之间传输的预设传输信息规则;第一处理器基于目标信息,确定对应的目标服务模块以及传输路径,目标服务模块处于第二节点,目标服务模块与目标图形处理器对应相连,传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;第一处理器接收第二处理器通过传输路径反馈的处理结果。
Description
技术领域
本申请涉及信息处理领域,更具体的说,是涉及一种远程访问图形处理器的方法和装置。
背景技术
GPU(Graphics Processing Unit,图形处理器)作为当前最重要的异构处理器之一,广泛应用于AI(Artificial Intelligence,人工智能)、图像渲染、HPC(HighPerformance Computing,高性能计算机群)等领域。而GPU远程虚拟化技术更进一步地扩展了GPU的应用范围,使得没有安装GPU的机器上的应用也能够利用GPU的计算能力。这项技术通过在操作系统之上虚拟化GPU设备,通过网络将计算请求传输到远程物理GPU上,完成计算后再将结果返回。在这个过程中,数据需要多次复制,并经过多层网络协议栈,最终通过网络传输到远程GPU所在的机器。
对于云计算场景,数据通常还需要通过Virtual Machine Manager(VMM)层进行处理和转发,该软件层VMM的处理和转发需要进行I/O(input/output)操作。这些繁琐且低效的I/O(input/output)操作增加了GPU远程访问的通信延迟,导致更多的GPU时钟周期被浪费在I/O操作上,从而降低了GPU任务的整体计算吞吐量。
发明内容
有鉴于此,本申请提供了一种远程访问图形处理器的方法和装置,如下:
一种远程访问图形处理器的方法,应用于第一节点,所述第一节点部署第一处理器和至少一个虚拟机,所述方法包括:
虚拟机生成包含应用请求的目标信息,所述目标信息满足所述虚拟图形处理器驱动模块和所述第一处理器之间传输的预设传输信息规则;
第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径,所述目标服务模块处于第二节点,所述目标服务模块与目标图形处理器对应相连,所述传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;
所述第一处理器基于所述传输路径,将所述目标信息中的应用请求发送至第二节点的目标服务模块;
所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果。
可选的,上述的远程访问图形处理器的方法,所述虚拟机生成包含应用请求的目标信息,包括:
虚拟机中虚拟图形处理器驱动模块基于拦截接口,拦截所述虚拟机中应用输出的应用请求,所述虚拟图形处理器驱动模块中包含至少两个拦截接口;
所述虚拟图形处理器驱动模块依据预设传输信息规则对于所述应用请求处理,得到目标信息。
可选的,上述的远程访问图形处理器的方法,所述第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径,包括:
所述第一处理器解析所述目标信息,确定所述目标信息中应用请求对应的虚拟图形处理器驱动模块;
所述第一处理器基于预设对应关系,确定所述虚拟图形处理器驱动模块对应的目标服务模块以及传输路径,所述传输路径中通过第一处理器的第一传输模块与第二处理器的第二传输模块连接,所述第一传输模块和第二传输模块是同类型的传输模块。
可选的,上述的远程访问图形处理器的方法,所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果之后,还包括:
所述第一处理器解析所述处理结果,确定所述处理结果对应第二节点中目标服务模块;
所述第一处理器依据预设对应关系,在第一节点中的至少两个虚拟图形处理器驱动模块中,确定所述第二节点中目标服务模块对应的目标虚拟图形处理器驱动模块;
所述第一处理器将所述处理结果反馈给所述目标虚拟图形处理器驱动模块所属的目标虚拟机。
可选的,上述的远程访问图形处理器的方法,所述虚拟机生成包含应用请求的目标信息之后,包括:
所述第一处理器确定目标信息的功能类型;
基于所述目标信息的功能类型是第一类型,所述第一处理器获得所述目标信息中携带的传输路径信息,所述传输路径信息至少包括虚拟机中虚拟图形处理器驱动模块标识、第二节点标识、目标图形处理器标识;所述第一处理器基于所述传输路径信息建立所述虚拟图形处理器驱动模块与所述目标图形处理器之间的传输路径,所述传输路径包括虚拟机中虚拟图形处理器驱动模块、第一处理器、第二节点中第二处理器、第二节点中目标服务模块、第二节点中目标图形处理器;
基于所述目标信息的功能类型是第二类型,触发执行所述第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径。
可选的,上述的远程访问图形处理器的方法,还包括:
基于所述目标信息的功能类型是第三类型,所述第一处理器获得所述目标信息中待注销传输路径信息,所述待注销传输路径信息包括所述待注销传输路径对应的虚拟图形处理器驱动模块标识;基于所述待注销传输路径信息生成注销消息,将所述注销消息基于所述待注销传输路径发送给目标服务模块,以使得所述目标服务模块释放对应目标图形处理器资源。
一种远程访问图形处理器的方法,应用于第二节点,所述第二节点部署图形处理器集合和第二处理器,所述方法包括:
第二处理器接收第一节点中第一处理器传输的应用请求;
第二处理器将所述应用请求发送给目标服务模块,所述目标服务模块与目标图形处理器对应相连;
目标服务模块基于所述应用请求调用目标图形处理器,以使得所述目标图形处理器响应所述应用请求,得到处理结果;
所述目标图形处理器将所述处理结果反馈给第二处理器;
所述第二处理器将所述处理结果发送给所述第一节点中第一处理器。
可选的,上述的远程访问图形处理器的方法,所述目标图形处理器将所述处理结果反馈给第二处理器,包括:
基于图形处理器集合与第二处理器的直通链路,所述目标图形处理器将所述处理结果发送给第二处理器。
一种访问远程处理器的装置,应用于第一节点,所述装置包括:
至少一个虚拟机,所述虚拟机,用于生成包含应用请求的目标信息,所述目标信息满足所述虚拟图形处理器驱动模块和所述第一处理器之间传输的预设传输信息规则;
第一处理器,用于基于所述目标信息,确定对应的目标服务模块以及传输路径,所述目标服务模块处于第二节点,所述目标服务模块与目标图形处理器对应相连,所述传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;所述第一处理器基于所述传输路径,将所述目标信息中的应用请求发送至第二节点的目标服务模块;所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果。
一种访问远程处理器的装置,应用于第二节点,所述装置包括:图形处理器集合、服务模块集合和第二处理器
第二处理器,用于接收第一节点中第一处理器传输的应用请求;
第二处理器将所述应用请求发送给目标服务模块,所述目标服务模块与目标图形处理器对应相连;
目标服务模块,用于基于所述应用请求调用目标图形处理器;
目标图形处理器用于响应所述应用请求,得到处理结果,将所述处理结果反馈给第二处理器;
所述第二处理器将所述处理结果发送给所述第一节点中第一处理器。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的一种远程访问图形处理器的方法实施例1的流程图;
图2是本申请提供的一种远程访问图形处理器的方法实施例1中远程访问图形处理器系统的结构示意图;
图3是本申请提供的一种远程访问图形处理器的方法实施例2的流程图;
图4是本申请提供的一种远程访问图形处理器的方法实施例2中虚拟机功能结构示意图;
图5是本申请提供的一种远程访问图形处理器的方法实施例3的流程图;
图6是本申请提供的一种远程访问图形处理器的方法实施例3中对应关系表结构图;
图7是本申请提供的一种远程访问图形处理器的方法实施例3中第一处理器的结构示意图;
图8是本申请提供的一种远程访问图形处理器的方法实施例4的流程图;
图9是本申请提供的一种远程访问图形处理器的方法实施例5的流程图;
图10是本申请提供的一种远程访问图形处理器的方法实施例7的流程图;
图11是本申请提供的一种远程访问图形处理器的方法应用系统的示意图;
图12是本申请提供的一种远程访问图形处理器的装置实施例1的结构示意图;
图13是本申请提供的一种远程访问图形处理器的装置实施例2的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示的,为本申请提供的一种远程访问图形处理器的方法实施例1的流程图,该方法应用于一电子设备,该电子设备作为第一节点,其上部署第一处理器和至少一个虚拟机,该方法包括以下步骤:
步骤S101:虚拟机生成包含应用请求的目标信息,目标信息满足虚拟图形处理器驱动模块和第一处理器之间传输的预设传输信息规则;
其中,该第一节点上部署有一个或者多个虚拟机,每个虚拟机上运行有CUDA(Compute Unified Device Architecture,一种并行计算平台和编程模型)应用。
具体实施中,该虚拟机上运行有CUDA应用,该CUDA应用会经由CUDA Runtime(运行时刻)API(Application Program Interface,应用程序接口)和Driver(驱动)API逐层访问到虚拟图形处理器驱动模块。
其中,该第一处理器是DPU(Data Processing Unit,数据处理器),其是设置于该第一节点的处理器芯片,相应的,第二处理器是设置于第二节点的DPU处理器芯片,两个DPU的设置,将复杂的网络协议栈处理过程下沉至硬件层面。
其中,该第一节点上未部署图形处理器,该第一节点上的虚拟机(VM,VirtualMachine)通过远程访问第二节点上的图形处理器,使得该图形处理器进行数据处理。
其中,该预设传输信息规则是保证该虚拟图形处理器驱动模块和第一处理器之间实现透传的规则。
其中,该虚拟机上的应用生成应用请求,该虚拟机根据该应用请求生成目标信息。
具体实施中,该应用请求可以是IO(input output,输入输出)请求,该请求可以用于请求图形处理器进行数据处理。
其中,该预设信息传输规则是一套通信原语,该原语的具体实现是通过SR-IOV(single root input/output virtualization,单根I/O虚拟化)技术实现虚拟机到DPU设备直通。
其中,该目标信息与该应用请求的格式不同,将该应用请求转换为原语的目标信息,以实现虚拟机将该应用请求通过目标信息传输给第一处理器。
具体的,该原语包括标识字段和请求(request)字段,该标识字段用于标识出生成该应用请求的虚拟图形处理器驱动模块,该请求字段包括应用请求等。
需要说明的是,后续实施例中,针对该虚拟机生成目标信息的过程进行了详细说明,本实施例中不做详述。
步骤S102:第一处理器基于目标信息,确定对应的目标服务模块以及传输路径,目标服务模块处于第二节点,目标服务模块与目标图形处理器对应相连,传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;
其中,该目标信息中携带有生成该目标信息的虚拟图形处理器的标识。
其中,第一处理器中预设有映射表,该映射表是记录各个虚拟图形处理器、远程图形处理器的对应关系,而且该第二节点中图形处理器与服务模块一一对应设置。
其中,第一处理器得到目标信息后,对于该目标信息进行分析得到产生该目标信息中应用请求的虚拟图形处理器驱动模块,在该映射表中查询该虚拟图形处理器驱动模块对应的远程图形处理器,该远程图形处理器与服务模块一一对应,确定传输路径,该传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径,而且,该目标服务模块与唯一的图形处理器相连,该传输路径是将虚拟图形处理器与目标图形处理器相连的路径。
其中,第二节点中的第二处理器与第一节点中的第一处理器通过接口(port)相连,实现了两个节点中的第一处理器和第二处理器之间直通,保证了两个节点之间能够直接传输数据,无需经过VMM层进组处理转发。
其中,该第二节点中设置有Host OS(Host Operating system,主人操作系统),对应于虚拟机上的系统,服务模块是该Host OS的中的功能模块,其与第二节点中每个图形处理器一一对应设置。
其中,第二节点中服务模块和图形处理器一一对应设置,第一处理器基于该目标信息以及预设映射表,确定对应的处于第二节点中的目标图形处理器,由于第二节点中是通过第二处理器连接的多个服务模块实现分别连接图形处理器,因此,确定该目标信息对应的目标服务模块,以使得第一处理器通过该第二处理器以及目标服务模块将目标信息中应用请求发送给第二节点.
需要说明的是,后续实施例中,针对该第一处理器基于目标信息确定对应的目标服务模块以及传输路径的过程进行了详细说明,本实施例中不做详述。
步骤S103:第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;
其中,在确定了传输路径和目标服务模块后,该第一处理器将该目标信息中的应用请求发送给第二节点的第二处理器,该第二节点的第二处理器在接收到该应用请求后,发送给相应的目标服务模块。
具体实施中,该第一处理器将该目标信息中的请求字段发送给第二节点。
其中,该目标服务模块接收到该应用请求后,调用对应的GPU,以使得该GPU进行运算,得到处理结果,该GPU得到处理结果后,发送给第二处理器,该第二处理器将处理结果通过接口反馈给第一处理器。
其中,该第二节点处的处理过程,后续实施例中有详细说明,本实施例中不做详述。
步骤S104:第一处理器接收第二处理器通过传输路径反馈的处理结果。
其中,该第二处理器接收到GPU的处理结果后,通过与第一处理器连接的接口,向第一处理器反馈该处理结果。
相应的,该第一处理器接收该处理结果。
如图2所示的是远程访问图形处理器系统的结构示意图,该系统包括第一节点201和第二节点202,该第一节点作为应用节点,其上设置有虚拟机和第一处理器DPU,第二节点作为资源节点,其上设置有多个GPU和第二处理器DPU,每个GPU对应设置一个服务模块,该GPU作为第一节点的远程访问资源。第一处理器和第二处理器分别设置有接口,二者之间通过接口传输数据信息等。其中,该第一节点上每个虚拟机包括应用、运行时刻接口、驱动接口以及虚拟GPU设备驱动,该第一处理器对于每个虚拟机设置有一个虚拟功能(virtualfunction),用于接收虚拟机发送的目标信息,该第一处理器根据该目标信息确定对应的目标服务模块和传输路径,将目标信息中的应用请求提取出来。该第一处理器通过接口将该应用请求发送给第二处理器,该第二处理器将该应用请求发送给目标服务模块,该目标服务模块根据该应用请求调用其对应的图形处理器GPU,该图形处理器响应该应用请求得到处理结果,将该处理结果反馈给第二处理器,该第二处理器将处理结果通过接口发送给第一处理器。
综上,本实施例提供的一种远程访问图形处理器的方法,该方法应用于部署有虚拟机和第一处理器的第一节点,该方法包括:虚拟机生成包含应用请求的目标信息,该目标信息满足虚拟图形处理器驱动模块和第一处理器之间的预设传输规则,该虚拟机将该目标信息传输给第一处理器,该第一处理器基于该目标信息确定传输路径和第二节点中的目标服务模块,并基于该传输路径将该目标信息中的应用请求通过第二节点的第二处理器传输给目标服务模块,接收第二处理器通过传输路径反馈的处理结果,实现了通过硬件DPU加速协议处理,将复杂的网络协议栈处理过程下沉至硬件层面,从而显著缩短了数据在这些层面的处理延迟,相比于VM内部的软件协议栈,DPU的性能更强大,因此能够提供更低的延迟。
如图3所示的,为本申请提供的一种远程访问图形处理器的方法实施例2的流程图,该方法包括以下步骤:
步骤S301:虚拟机中虚拟图形处理器驱动模块基于拦截接口,拦截虚拟机中应用输出的应用请求,虚拟图形处理器驱动模块中包含至少两个拦截接口;
其中,其中,虚拟机在创建和初始化过程中,虚拟图形处理器驱动模块将根据硬件资源配置创建若干虚拟图形处理器文件(虚拟GPU设备文件),这些文件遵循NVIDIA GPUDriver标准,将对CUDA Driver API提供几类拦截接口,以实现拦截该虚拟机中应用输出的应用请求。
其中,该虚拟图形处理器驱动模块中包含多个拦截接口,每个拦截接口对应拦截一种应用请求。
如下表1所示的是虚拟图形处理器驱动模块中各类接口的功能列表。
表1
其中,该表1所示的是5种接口类别,但是接口类别不限制于此,具体实施中,还可以设置其他的接口类型和接口函数。
步骤S302:虚拟图形处理器驱动模块依据预设传输信息规则对于应用请求处理,得到目标信息;
其中,该虚拟图形处理器驱动模块拦截得到该应用请求后,对于该应用请求进行封装处理,得到满足预设传输信息规则的目标信息。
其中,该虚拟图形处理器驱动模块对于该应用请求进行封装处理时,将该虚拟图形处理器驱动模块的标识添加,以使得第一处理器能够基于该标识确定目标信息是由第一节点中的哪个虚拟图形处理器驱动模块发送。
如图4所示的是虚拟机功能结构示意图,包括应用、运行时刻接口、驱动接口以及虚拟GPU驱动模块,该虚拟GPU驱动模块内设置有多个拦截接口函数,每个拦截接口函数对应一个虚拟GPU设备文件,以及一个VF(visual foxpro,数据库软件)driver(驱动程序),通过该VF drvier将拦截接口函数拦截得到的应用请求进行封装得到目标信息,并发送给DPU。
需要说明的是,本实施例中,采用内核态的虚拟GPU设备驱动进行拦截。这使得用户可以更灵活地安装和使用不同版本的CUDA,而不受限于特定版本,提高了本方法的应用范围。
步骤S303:第一处理器基于目标信息,确定对应的目标服务模块以及传输路径,目标服务模块处于第二节点,目标服务模块与目标图形处理器对应相连,传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;
步骤S304:第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;
步骤S305:第一处理器接收第二处理器通过传输路径反馈的处理结果。
其中,步骤S303-305与实施例1中的相应步骤一致,本实施例中不做赘述。
综上,本实施例提供的一种远程访问图形处理器的方法,包括:虚拟机中虚拟图形处理器驱动模块中包括多个拦截接口,每个拦截接口对应一种应用请求,,该虚拟图形处理器驱动模块基于拦截接口,拦截虚拟机中应用输出的应用请求,拟图形处理器驱动模块依据预设传输信息规则对于应用请求处理,得到目标信息,实现了将虚拟机中应用生成的应用请求拦截并处理为能够发送给第一处理器的目标信息。
如图5所示的,为本申请提供的一种远程访问图形处理器的方法实施例3的流程图,该方法包括以下步骤:
步骤S501:虚拟机中虚拟图形处理器驱动模块基于拦截接口,拦截虚拟机中应用输出的应用请求,虚拟图形处理器驱动模块中包含至少两个拦截接口;
步骤S502:虚拟图形处理器驱动模块依据预设传输信息规则对于应用请求处理,得到目标信息。
其中,步骤S501-502与实施例1中的相应步骤一致,本实施例中不做赘述。
步骤S503:第一处理器解析目标信息,确定目标信息中应用请求对应的虚拟图形处理器驱动模块;
其中,第一处理器接收到目标信息后,解析该目标处信息,得到其中携带的虚拟图形处理器驱动模块标识,确定该目标信息的应用请求是由该标识对应的虚拟图形处理器驱动模块生成。
其中,该第一处理器能够对于该第一节点中的多个虚拟机的虚拟图形处理器驱动模块的目标信息进行解析。
步骤S504:第一处理器基于预设对应关系,确定虚拟图形处理器驱动模块对应的目标服务模块以及传输路径,传输路径中通过第一处理器的第一传输模块与第二处理器的第二传输模块连接,第一传输模块和第二传输模块是同类型的传输模块;
其中,该第一处理器中设置有客户模块(CUDA RPC client)和传输模块,其中,该客户模块用于执行前述的解析目标信息得到对应的虚拟图形处理器驱动模块的动作,发送应用请求的动作由传输模块执行。
其中,用于传输信息的两个DPU中分别设置有传输模块,为了实现两个节点中信息传输,在两个DPU中分别选择相同类型的传输模块。
其中,该第一处理器和第二处理器中分别设置有两个传输模块,不同的传输模块采用不同的网络协议,一个传输模块采用TOE(TCP/IP Offload Engine,TCP减负引擎),一个传输模块采用RDMA(Remote Direct Memory Access,远程直接内存访问)。
其中,该传输路径包括采用的传输模块,其中,第一处理器采用TOE传输模块,相应的,第二处理器也采用TOE传输模块,第一处理器和第二处理器之间采用TOE技术传输。
其中,第一处理器的客户模块中有对应关系,根据该虚拟图形处理器驱动模块,能够确定对应到目标服务模块以及传输路径。
具体的,该CUDA RPC client作为硬件加速模块,其将在DPU内部处理该第一节点上所有虚拟机VM发送的通信原语,其内部维护一张用于表示对应关系的双向映射表,该双向映射表中记录不同虚拟机中不同虚拟处理器设备与远程物理图形处理器设备之间的关系。
如下图6所示的对应关系表结构图,该表中包括6个字段,分别是vgpu_driver_id、vgpu_id、remote_gpu_ip、remote_gpu_name、rpc_server_config、comm_type。
其中,vgpu_driver_id和vgpu_id字段用于标识发送原语的虚拟GPU设备,remote_gpu_ip和remote_gpu_name用于标识VM中虚拟GPU设备对应的远程物理GPU设备,comm_type用于标识RPC链路类型,是在创建链路时标识,rpc_server_config字段用于标识第二节点中的RPC server(服务模块)。
其中,虚拟图形处理器驱动模块发来的目标信息是原语,则其vgpu_driver_id和vgpu_id字段中携带虚拟图形处理器驱动模块的标识,根据该字段标识确定该对应关系表中对应的remote_gpu_ip和remote_gpu_name字段以及comm_type,以确定对应的远程物理GPU设备和链路类型。
其中,该链路类型是该传输路径采用的是哪个传输模块,则后续基于该传输路径将应用请求发送给第二节点的第二处理器中的相应传输模块。
如图7所示的是第一处理器的结构示意图,该第一处理器包括客户模块701和传输模块702,该传输模块包括第一传输模块7021和第二传输模块7022,该客户模块作为硬件加速模块,对于接收到原语形式的目标信息进行处理,得到其对应的虚拟图形处理器驱动模块的标识,基于该标识以及其维护的对应关系,确定对应的远程物理GPU设备和链路类型,选择而对应的传输模块进行输出应用请求。
需要说明的是,后续该第一处理器接收第二节点的第二处理器反馈的处理结果,二者之间也是通过相同的传输模块进行传输。
需要说明的是,确定远程物理GPU的过程,是涉及到网络协议栈的处理,本实施例中,因为网络协议栈处理是在DPU硬件上完成的,不会占用虚拟机的计算资源,这使得用户可以充分利用虚拟机所申请到的计算资源,而不受网络协议栈处理的影响。
步骤S505:第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;
步骤S506:第一处理器接收第二处理器通过传输路径反馈的处理结果。
其中,步骤S505-506与实施例2中的相应步骤一致,本实施例中不做赘述。
综上,本实施例提供的一种远程访问图形处理器的方法,包括:第一处理器解析接收到的目标信息,确定该目标信息中应用请求对应的虚拟图形处理器驱动模块,该第一处理器基于预设对应关系确定该虚拟图形处理器驱动模块对应的目标服务模块和传输路径,该传输路径中通过第一处理器的第一传输模块和第二处理器的第二传输模块相连,该第一传输模块和第二传输模块是同类型的传输模块,实现了第一处理器和第二处理器之间的信息传输,将复杂的网络协议站处理下沉到DPU硬件的加速协议处理模块中,减少远程访问的IO次数,压缩了网络协议处理的处理延迟,提高了响应速度。
如图8所示的,为本申请提供的一种远程访问图形处理器的方法实施例4的流程图,该方法包括以下步骤:
步骤S801:虚拟机生成包含应用请求的目标信息,目标信息满足虚拟图形处理器驱动模块和第一处理器之间传输的预设传输信息规则;
步骤S802:第一处理器基于目标信息,确定对应的目标服务模块以及传输路径,目标服务模块处于第二节点,目标服务模块与目标图形处理器对应相连,传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;
步骤S803:第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;
步骤S804:第一处理器接收第二处理器通过传输路径反馈的处理结果;
其中,步骤S801-804与实施例1中的相应步骤一致,本实施例中不做赘述。
步骤S805:第一处理器解析处理结果,确定处理结果对应第二节点中目标服务模块;
其中,第二处理器中的远程物理GPU响应该应用请求,得到处理结果后,将该处理结果反馈给第一处理器。
其中,该第一处理器在接收到处理结果后,确定该处理结果是对应于第二节点中的哪个服务模块,该服务模块与图形处理器是对应关系。
具体的,第一处理器解析该处理结果,得到数据来源的IP(Internet Protocol,互联网协议)和RPC sever标识信息,其中,该IP是第二节点的IP,RPC sever是该第二节点中的服务模块。
步骤S806:第一处理器依据预设对应关系,在第一节点中的至少两个虚拟图形处理器驱动模块中,确定第二节点中目标服务模块对应的目标虚拟图形处理器驱动模块;
其中,第一处理器中有预设对应关系,该对应关系代表的映射表结构参考图6所示。
其中,第一处理器依据解析得到的第二节点以及其中服务模块标识,在预设对应关系中查找得到相应的目标虚拟处理器虚拟模块。
具体的,该根据通过映射表中的remote_gpu_ip和rpc_server_config字段确定vgpu_driver_id和vgpu_id信息,该vgpu_driver_id和vgpu_id是虚拟图形处理器驱动模块的标识。
步骤S807:第一处理器将处理结果反馈给目标虚拟图形处理器驱动模块所属的目标虚拟机。
其中,该第一处理器将该处理结果反馈给该目标虚拟图形处理器驱动模块所属的目标虚拟机,实现将远程GPU处理结果反馈给虚拟机。
综上,本实施例提供的一种远程访问图形处理器的方法,还包括:第一处理器解析处理结果,确定处理结果对应第二节点中目标服务模块,第一处理器依据预设对应关系,在第一节点中的至少两个虚拟图形处理器驱动模块中,确定该第二节点中目标服务模块对应的目标虚拟图形处理器驱动模块,并将该处理结果反馈给目标虚拟图形处理器驱动模块所属的目标虚拟机,该对处理器通过预设对应关系,确定相应的目标虚拟图形处理器驱动模块,进而将从第二节点的第二处理器处接收到的处理结果反馈给该目标虚拟图形处理器驱动模块所属的目标虚拟机,实现了将远程GPU的处理结果反馈给虚拟机的过程,提高了数据在协议处理过程方面的速度,缩短了处理耗时。
如图9所示的,为本申请提供的一种远程访问图形处理器的方法实施例5的流程图,该方法包括以下步骤:
步骤S901:虚拟机生成包含应用请求的目标信息,目标信息满足虚拟图形处理器驱动模块和第一处理器之间传输的预设传输信息规则;
其中,步骤S901与实施例1中的相应步骤一致,本实施例中不做赘述。
步骤S902:第一处理器确定目标信息的功能类型;
其中,确定目标信息的功能类型是第一类型,执行步骤S903-904;若该功能类型是第二类型,执行步骤S905-907;若该功能类型是第三类型,执行步骤S908-909。
其中,虚拟图形处理器驱动模块与第一处理器之间的通信原语,能够描述多种具体通信行为,如初始化整个远程PGU服务、将请求转发给第二节点的服务模块、注销虚拟GPU设备等。
其中,如下表2所示的是通信原语所描述的具体通信行为:
表2
/>
具体的,该第一处理器的客户模块(CUDA RPC client)解析该目标信息,得到其所包含的参数,根据该包含的参数即可确定其功能类型。
作为一个示例,接收到的目标信息中包括vgpu_driver_id、vgpu_id、remote_gpu_ip、remote_gpu_name以及comm_type,则确定其是Init_Remote_GPU,其功能类型是第一类型;
作为一个示例,接收到的目标信息中包括vgpu_driver_id、vgpu_id和request,确定其是Data_Send原语,其功能类型是第二类型;
作为一个示例,接收到的目标信息中仅包括vgpu_driver_id、vgpu_id,确定其是Uninit_Remote_GPU原语,其功能类型是第三类型。
步骤S903:基于目标信息的功能类型是第一类型,第一处理器获得目标信息中携带的传输路径信息,传输路径信息至少包括虚拟机中虚拟图形处理器驱动模块标识、第二节点标识、目标图形处理器标识;
其中,该第一处理器解析得到该目标信息中包含的参数,确定其功能类型。
其中,若该功能类型是第一类型,其是用于向RPC client注册虚拟GPU信息,建立起与远端物理GPU之间的通信链路,完成整个远程GPU服务的初始化,则该第一处理器获得该目标信息中携带的传输路径信息,该传输路径信息是与传输路径相关的信息。
其中,该目标信息是第一类型时,其携带有虚拟图形处理器驱动模块标识(vgpu_driver_id)以及虚拟图形处理器标识(vgpu_id)、第二节点标识(remote_gpu_ip)和目标图形处理器标识(remote_gpu_name)。
步骤S904:第一处理器基于传输路径信息建立虚拟图形处理器驱动模块与目标图形处理器之间的传输路径,传输路径包括虚拟机中虚拟图形处理器驱动模块、第一处理器、第二节点中第二处理器、第二节点中目标服务模块、第二节点中目标图形处理器;
其中,基于该传输路径信息,建立其中涉及的虚拟图形处理器驱动模块与目标图形处理器之间的传输路径。
具体的,该传输路径是依次连接虚拟机中虚拟图形处理器驱动模块、第一处理器、第二节点中第二处理器、第二节点中目标服务模块、第二节点中目标图形处理器的路径。
其中,该第一处理器和第二处理器中设置有两种传输模块,为了保证二者之间的准确传输,该目标信息中还携带有链路类型标识(comm_type),基于该链路类型标识确定二者选择的传输模块,并基于该传输模块建立第一处理器和第二处理器之间的连接。
步骤S905:基于目标信息的功能类型是第二类型,第一处理器基于目标信息,确定对应的目标服务模块以及传输路径;
步骤S906:第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;
步骤S907:第一处理器接收第二处理器通过传输路径反馈的处理结果;
其中,步骤S905-907与实施例1中的相应步骤一致,本实施例中不做赘述。
步骤S908:基于目标信息的功能类型是第三类型,第一处理器获得目标信息中待注销传输路径信息,待注销传输路径信息包括待注销传输路径对应的虚拟图形处理器驱动模块标识;
其中,若该功能类型是第三类型,其是用于向RPC client发起虚拟GPU设备注销请求,则该第一处理器获得该目标信息中携带的待注销传输路径信息,该待注销传输路径信息是与传输路径相关的信息。
其中,该目标信息是第三类型时,其仅携带有虚拟图形处理器驱动模块标识(vgpu_driver_id)以及虚拟图形处理器标识(vgpu_id)。
步骤S909:基于待注销传输路径信息生成注销消息,将注销消息基于待注销传输路径发送给目标服务模块,以使得目标服务模块释放对应目标图形处理器资源。
其中,基于该待注销传输路径信息中的虚拟图形处理器驱动模块标识(vgpu_driver_id)以及虚拟图形处理器标识(vgpu_id),确定是对于该虚拟图形处理器驱动模块、虚拟图形处理器与对应的远程物理GPU的访问访问的注销。
其中,第一处理器在得到待注销传输路径信息中的虚拟图形处理器驱动模块标识(vgpu_driver_id)以及虚拟图形处理器标识(vgpu_id)后,基于预设对应关系,确定对应的目标服务模块。
其中,根据该待带注销传输路径生成注销信息,将该注销信息发送给目标服务模块,以使得该目标服务模块根据该注销消息释放对应的物理GPU资源。
其中,该第一处理器在向目标服务模块发送注销信息后,关闭与该目标服务模块的连接,并从对应关系的映射列表中删除对应的记录。
综上,本实施例提供的一种远程访问图形处理器的方法,包括:第一处理器接收到目标信息后,解析该目标信息确定其所属功能类型,若是第一类型,基于目标信息中携带的信息建立第一节点中虚拟机中虚拟图形处理器驱动模块与第二节点中目标图形处理器之间的传输路径;若该目标信息是第二类型,将该目标信息的应用请求通过虚拟图形处理器驱动模块与第二节点节点中目标图形处理器之间的传输路径传输给第二节点,以使得该第二节点的目标图形处理器响应该应用请求,得到处理结果;若该目标信息是第三类型,基于该目标信息中携带的信息,将虚拟图形处理器模块与目标图形处理器之间的传输路径注销,以使得目标服务模块释放对应的物理GPU资源,使得基于通信原语所描述的不同具体通信行为,实现虚拟图形处理器驱动模块与第一处理器之间不同通信行为的通信。
与上述本申请提供的应用于第一节点的一种远程访问图形处理器的方法实施例相对应的,本申请还提供了应用于第二节点的一种远程访问图形处理器的方法实施例。
如图10所示的,为本申请提供的一种远程访问图形处理器的方法实施例7的流程图,该方法应用于一电子设备,该电子设备作为第二节点,其上部署图形处理器集合和第二处理器,该方法包括以下步骤:
步骤S1001:第二处理器接收第一节点中第一处理器传输的应用请求;
其中,该第二节点上部署有图形处理器集合,该图形处理器集合中包括至少一个图形处理器。
其中,该第二节点上的图形处理器能够被第一节点上的虚拟机通过远程访问的形式进行访问,该图形处理器响应该远程访问进行数据处理。
其中,第二处理器与第一处理器分别设置有接口,二者通过接口进行传输数据。
步骤S1002:第二处理器将应用请求发送给目标服务模块,目标服务模块与目标图形处理器对应相连;
其中,该第二处理器在接收到应用请求后,将该应用请求发送给相应的目标服务模块。
其中,该目标服务模块与GPU对应设置。
需要说明的是,为了隔离和安全性考虑,第二节点中的RPC server的数量将与机器上的物理GPU数量保持一致。每个RPC server负责响应一个物理GPU的请求。由于一个RPCserver在同一时刻只响应一个RPC client发送的请求,并将请求发送给同一个GPU,因此,RPC server端不需要维护映射表。
步骤S1003:目标服务模块基于应用请求调用目标图形处理器,以使得目标图形处理器响应应用请求,得到处理结果;
其中,该第二节点中的目标服务模块基于该应用请求调用其对应的目标处理器。
其中,该目标图形处理器响应该应用请求,进行GPU计算,得到处理结果。
其中,该第二节点中设置有Host OS,该Host OS中包括服务模块(CUDA RPCserver)和图形处理器驱动(NVDIA GPU Driver)接口。
具体的,该服务模块GPU RPC Server调用NVIDIA GPU Driver接口,实现调用物理GPU,执行真实的GPU运算,得到处理结果。
步骤S1004:目标图形处理器将处理结果反馈给第二处理器;
其中,图形处理器与第二处理器之间采用Direct IO直通方式连接。
其中,图形处理器将处理结果通过该Direct IO直通直接反馈给第二处理器,无需通过服务模块。
步骤S1005:第二处理器将处理结果发送给第一节点中第一处理器。
其中,该第二处理器将从图形处理器处接收到的处理结果发送给第一节点中第一处理器,至此完成一个完整的GPU远程访问过程。
综上,本实施例提供的一种远程访问图形处理器的方法,该方法应用于部署有图形处理器和第二处理器的第二节点,该方法包括:第二处理器接收第一节点中第一处理器传输的应用请求;第二处理器将该应用请求发送给与目标图形处理器对应相连的目标服务模块,目标服务模块基于应用请求调用目标图形处理器,以使得目标图形处理器响应该应用请求,得到处理结果,目标图形处理器将处理结果以直通方式反馈给第二处理器,第二处理器将处理结果发送给第一节点中第一处理器,实现了通过硬件DPU加速协议处理,将复杂的网络协议栈处理过程下沉至硬件层面,从而显著缩短了数据在这些层面的处理延迟,相比于VM内部的软件协议栈,DPU的性能更强大,因此能够提供更低的延迟。
如图11所示的是本申请提供的一种远程访问图形处理器的方法应用系统的示意图,该系统包括第一节点1101和第二节点1102。
其中,该第一节点作为应用节点,其上设置有多个虚拟机和第一处理器DPU,图11中采用3个虚拟机示意,每个虚拟机上包括应用、运行时刻接口、驱动接口以及虚拟GPU设备驱动,且每个虚拟GPU设备驱动中设置有VF driver,第一处理器DPU包括虚拟功能(virtualfunction)模块、客户模块(CUDA RPC client)、传输模块TOE和传输模块RDMA,各个虚拟功能模块将接收到的目标信息传递给客户模块,客户模块分析得到该目标信息的类型,响应该目标信息。其中,若该目标信息是data_send信息时,提取得到该目标信息中的虚拟GPU设备驱动标识,确定对应的远程GPU信息以及RPC链路类型,基于该RPC链路类型选择是通过TOE或者RDMA中的一个进行传输给第二节点。
其中,该第二节点作为资源节点,其上设置有多个GPU和第二处理器DPU,该第二节点上的Host OS中包括服务模块(CUDA RPC server)和图形处理器驱动(NVDIA GPUDriver)接口,每个GPU对应设置一个服务模块,服务模块调用图形处理器驱动接口,实现调用物理GPU,该GPU将处理结果通过与第二处理器之间的Direct IO直通发送给第二处理器,该第二处理器与第一处理器之间设置有多个接口,能够实现同时传递多个信息。
与上述本申请提供的一种远程访问图形处理器的方法实施例相对应的,本申请还提供了应用该远程访问图形处理器的方法的电子设备实施例。
如图12所示的为本申请提供的一种远程访问图形处理器的装置实施例1的结构示意图,该装置应用于第一节点,该装置包括以下结构:
至少一个虚拟机1201和第一处理器1202;
其中,虚拟机1201,用于生成包含应用请求的目标信息,目标信息满足虚拟图形处理器驱动模块和第一处理器之间传输的预设传输信息规则;
第一处理器1202,用于基于目标信息,确定对应的目标服务模块以及传输路径,目标服务模块处于第二节点,目标服务模块与目标图形处理器对应相连,传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;第一处理器基于传输路径,将目标信息中的应用请求发送至第二节点的目标服务模块;第一处理器接收第二处理器通过传输路径反馈的处理结果。
可选的,虚拟机生成包含应用请求的目标信息,包括:
虚拟机中虚拟图形处理器驱动模块基于拦截接口,拦截虚拟机中应用输出的应用请求,虚拟图形处理器驱动模块中包含至少两个拦截接口;
虚拟图形处理器驱动模块依据预设传输信息规则对于应用请求处理,得到目标信息。
可选的,第一处理器基于目标信息,确定对应的目标服务模块以及传输路径,包括:
第一处理器解析目标信息,确定目标信息中应用请求对应的虚拟图形处理器驱动模块;
第一处理器基于预设对应关系,确定虚拟图形处理器驱动模块对应的目标服务模块以及传输路径,传输路径中通过第一处理器的第一传输模块与第二处理器的第二传输模块连接,第一传输模块和第二传输模块是同类型的传输模块。
可选的,第一处理器接收第二处理器通过传输路径反馈的处理结果之后,还用于:
第一处理器解析处理结果,确定处理结果对应第二节点中目标服务模块;
第一处理器依据预设对应关系,在第一节点中的至少两个虚拟图形处理器驱动模块中,确定第二节点中目标服务模块对应的目标虚拟图形处理器驱动模块;
第一处理器将处理结果反馈给目标虚拟图形处理器驱动模块所属的目标虚拟机。
可选的,虚拟机生成包含应用请求的目标信息之后,具体用于:
第一处理器确定目标信息的功能类型;
基于目标信息的功能类型是第一类型,第一处理器获得目标信息中携带的传输路径信息,传输路径信息至少包括虚拟机中虚拟图形处理器驱动模块标识、第二节点标识、目标图形处理器标识;第一处理器基于传输路径信息建立虚拟图形处理器驱动模块与目标图形处理器之间的传输路径,传输路径包括虚拟机中虚拟图形处理器驱动模块、第一处理器、第二节点中第二处理器、第二节点中目标服务模块、第二节点中目标图形处理器;
基于目标信息的功能类型是第二类型,触发执行第一处理器基于目标信息,确定对应的目标服务模块以及传输路径。
可选的,该第一处理器还用于:
基于目标信息的功能类型是第三类型,第一处理器获得目标信息中待注销传输路径信息,待注销传输路径信息包括待注销传输路径对应的虚拟图形处理器驱动模块标识;基于待注销传输路径信息生成注销消息,将注销消息基于待注销传输路径发送给目标服务模块,以使得目标服务模块释放对应目标图形处理器资源。
需要说明的是,本实施例中提供的一种远程访问图形处理器的装置中的各个组成结构的功能解释,请参考前述相应方法实施例中解释,本实施例中不做赘述。
综上,本实施例提供的一种远程访问图形处理器的装置,该装置应用于部署有虚拟机和第一处理器的第一节点,虚拟机生成包含应用请求的目标信息,该目标信息满足虚拟图形处理器驱动模块和第一处理器之间的预设传输规则,该虚拟机将该目标信息传输给第一处理器,该第一处理器基于该目标信息确定传输路径和第二节点中的目标服务模块,并基于该传输路径将该目标信息中的应用请求通过第二节点的第二处理器传输给目标服务模块,接收第二处理器通过传输路径反馈的处理结果,实现了通过硬件DPU加速协议处理,将复杂的网络协议栈处理过程下沉至硬件层面,从而显著缩短了数据在这些层面的处理延迟,相比于VM内部的软件协议栈,DPU的性能更强大,因此能够提供更低的延迟。
如图13所示的为本申请提供的一种远程访问图形处理器的装置实施例2的结构示意图,该装置应用于第二节点,该装置包括以下结构:图形处理器集合1301、服务模块集合1302和第二处理器1303;
其中,第二处理器1301,用于接收第一节点中第一处理器传输的应用请求;第二处理器将应用请求发送给目标服务模块,目标服务模块与目标图形处理器对应相连;
其中,目标服务模块是服务模块集合中的一个,用于基于应用请求调用目标图形处理器;
其中,目标图形处理器是图形处理器集合中的一个,用于响应应用请求,得到处理结果,将处理结果反馈给第二处理器;
第二处理器将处理结果发送给第一节点中第一处理器。
可选的,目标图形处理器将处理结果反馈给第二处理器,包括:
基于图形处理器集合与第二处理器的直通链路,目标图形处理器将处理结果发送给第二处理器。
需要说明的是,本实施例中提供的一种远程访问图形处理器的装置中的各个组成结构的功能解释,请参考前述相应方法实施例中解释,本实施例中不做赘述。
综上,本实施例提供的一种远程访问图形处理器的装置,该装置应用于部署有图形处理器和第二处理器的第二节点,第二处理器接收第一节点中第一处理器传输的应用请求;第二处理器将该应用请求发送给与目标图形处理器对应相连的目标服务模块,目标服务模块基于应用请求调用目标图形处理器,以使得目标图形处理器响应该应用请求,得到处理结果,目标图形处理器将处理结果以直通方式反馈给第二处理器,第二处理器将处理结果发送给第一节点中第一处理器,实现了通过硬件DPU加速协议处理,将复杂的网络协议栈处理过程下沉至硬件层面,从而显著缩短了数据在这些层面的处理延迟,相比于VM内部的软件协议栈,DPU的性能更强大,因此能够提供更低的延迟。
与上述本申请提供的一种远程访问图形处理器的方法实施例相对应的,本申请还提供了与该远程访问图形处理器的方法相应的电子设备以及可读存储介质。
其中,该电子设备,包括:存储器、处理器;
其中,存储器存储有处理程序;
处理器用于加载并执行存储器存储的处理程序,以实现如上述任一项的远程访问图形处理器的方法的各步骤。
具体该电子设备的实现远程访问图形处理器的方法,参考前述远程访问图形处理器的方法实施例即可。
其中,该可读存储介质,其上存储有计算机程序,计算机程序被处理器调用并执行,实现如上述任一项的远程访问图形处理器的方法的各步骤。
具体该可读存储介质存储的计算机程序执行实现远程访问图形处理器的方法,参考前述远程访问图形处理器的方法实施例即可。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种远程访问图形处理器的方法,应用于第一节点,所述第一节点部署第一处理器和至少一个虚拟机,所述方法包括:
虚拟机生成包含应用请求的目标信息,所述目标信息满足所述虚拟图形处理器驱动模块和所述第一处理器之间传输的预设传输信息规则;
第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径,所述目标服务模块处于第二节点,所述目标服务模块与目标图形处理器对应相连,所述传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;
所述第一处理器基于所述传输路径,将所述目标信息中的应用请求发送至第二节点的目标服务模块;
所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果。
2.根据权利要求1所述的远程访问图形处理器的方法,所述虚拟机生成包含应用请求的目标信息,包括:
虚拟机中虚拟图形处理器驱动模块基于拦截接口,拦截所述虚拟机中应用输出的应用请求,所述虚拟图形处理器驱动模块中包含至少两个拦截接口;
所述虚拟图形处理器驱动模块依据预设传输信息规则对于所述应用请求处理,得到目标信息。
3.根据权利要求2所述的远程访问图形处理器的方法,所述第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径,包括:
所述第一处理器解析所述目标信息,确定所述目标信息中应用请求对应的虚拟图形处理器驱动模块;
所述第一处理器基于预设对应关系,确定所述虚拟图形处理器驱动模块对应的目标服务模块以及传输路径,所述传输路径中通过第一处理器的第一传输模块与第二处理器的第二传输模块连接,所述第一传输模块和第二传输模块是同类型的传输模块。
4.根据权利要求1所述的远程访问图形处理器的方法,所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果之后,还包括:
所述第一处理器解析所述处理结果,确定所述处理结果对应第二节点中目标服务模块;
所述第一处理器依据预设对应关系,在第一节点中的至少两个虚拟图形处理器驱动模块中,确定所述第二节点中目标服务模块对应的目标虚拟图形处理器驱动模块;
所述第一处理器将所述处理结果反馈给所述目标虚拟图形处理器驱动模块所属的目标虚拟机。
5.根据权利要求1所述的远程访问图形处理器的方法,所述虚拟机生成包含应用请求的目标信息之后,包括:
所述第一处理器确定目标信息的功能类型;
基于所述目标信息的功能类型是第一类型,所述第一处理器获得所述目标信息中携带的传输路径信息,所述传输路径信息至少包括虚拟机中虚拟图形处理器驱动模块标识、第二节点标识、目标图形处理器标识;所述第一处理器基于所述传输路径信息建立所述虚拟图形处理器驱动模块与所述目标图形处理器之间的传输路径,所述传输路径包括虚拟机中虚拟图形处理器驱动模块、第一处理器、第二节点中第二处理器、第二节点中目标服务模块、第二节点中目标图形处理器;
基于所述目标信息的功能类型是第二类型,触发执行所述第一处理器基于所述目标信息,确定对应的目标服务模块以及传输路径。
6.根据权利要求5所述的远程访问图形处理器的方法,还包括:
基于所述目标信息的功能类型是第三类型,所述第一处理器获得所述目标信息中待注销传输路径信息,所述待注销传输路径信息包括所述待注销传输路径对应的虚拟图形处理器驱动模块标识;基于所述待注销传输路径信息生成注销消息,将所述注销消息基于所述待注销传输路径发送给目标服务模块,以使得所述目标服务模块释放对应目标图形处理器资源。
7.一种远程访问图形处理器的方法,应用于第二节点,所述第二节点部署图形处理器集合和第二处理器,所述方法包括:
第二处理器接收第一节点中第一处理器传输的应用请求;
第二处理器将所述应用请求发送给目标服务模块,所述目标服务模块与目标图形处理器对应相连;
目标服务模块基于所述应用请求调用目标图形处理器,以使得所述目标图形处理器响应所述应用请求,得到处理结果;
所述目标图形处理器将所述处理结果反馈给第二处理器;
所述第二处理器将所述处理结果发送给所述第一节点中第一处理器。
8.根据权利要求7所述的远程访问图形处理器的方法,所述目标图形处理器将所述处理结果反馈给第二处理器,包括:
基于图形处理器集合与第二处理器的直通链路,所述目标图形处理器将所述处理结果发送给第二处理器。
9.一种访问远程处理器的装置,应用于第一节点,所述装置包括:
至少一个虚拟机,所述虚拟机,用于生成包含应用请求的目标信息,所述目标信息满足所述虚拟图形处理器驱动模块和所述第一处理器之间传输的预设传输信息规则;
第一处理器,用于基于所述目标信息,确定对应的目标服务模块以及传输路径,所述目标服务模块处于第二节点,所述目标服务模块与目标图形处理器对应相连,所述传输路径是虚拟机中虚拟图形处理器驱动模块通过第一处理器、第二节点中第二处理器、目标服务模块相连的路径;所述第一处理器基于所述传输路径,将所述目标信息中的应用请求发送至第二节点的目标服务模块;所述第一处理器接收所述第二处理器通过所述传输路径反馈的处理结果。
10.一种访问远程处理器的装置,应用于第二节点,所述装置包括:图形处理器集合、服务模块集合和第二处理器
第二处理器,用于接收第一节点中第一处理器传输的应用请求;
第二处理器将所述应用请求发送给目标服务模块,所述目标服务模块与目标图形处理器对应相连;
目标服务模块,用于基于所述应用请求调用目标图形处理器;
目标图形处理器用于响应所述应用请求,得到处理结果,将所述处理结果反馈给第二处理器;
所述第二处理器将所述处理结果发送给所述第一节点中第一处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674664.1A CN117648210A (zh) | 2023-12-07 | 2023-12-07 | 一种远程访问图形处理器的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674664.1A CN117648210A (zh) | 2023-12-07 | 2023-12-07 | 一种远程访问图形处理器的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117648210A true CN117648210A (zh) | 2024-03-05 |
Family
ID=90047583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311674664.1A Pending CN117648210A (zh) | 2023-12-07 | 2023-12-07 | 一种远程访问图形处理器的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648210A (zh) |
-
2023
- 2023-12-07 CN CN202311674664.1A patent/CN117648210A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764901B (zh) | 基于gpu资源的数据处理方法、电子设备及系统 | |
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
US20190108079A1 (en) | Remote Procedure Call Method for Network Device and Network Device | |
US6074427A (en) | Apparatus and method for simulating multiple nodes on a single machine | |
CN112306586B (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
WO2017049945A1 (zh) | 加速器虚拟化的方法、装置及集中资源管理器 | |
JP3055970B2 (ja) | オブジェクト指向言語間インタフェース実現方法および装置 | |
US11716264B2 (en) | In situ triggered function as a service within a service mesh | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
US20070011291A1 (en) | Grid automation bus to integrate management frameworks for dynamic grid management | |
WO2022143714A1 (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN114510321A (zh) | 资源调度方法、相关装置和介质 | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
CN114116393A (zh) | 一种采集虚拟机的gpu性能数据的方法、装置和设备 | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
CN113760562A (zh) | 链路追踪方法、装置、系统、服务器和存储介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN108733602A (zh) | 数据处理 | |
CN117648210A (zh) | 一种远程访问图形处理器的方法和装置 | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及系统 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN111258715B (zh) | 多操作系统渲染处理方法及装置 | |
CN111857964A (zh) | 一种虚拟机can口数据透传到物理机can口设备的方法和设备 | |
CN110262912A (zh) | 一种过程调用gRPC的调用方法及装置 |
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 |