一种异构设备的高速通信方法、装置和异构通信系统与流程
未命名
10-28
阅读:174
评论:0

1.本技术涉及通信领域,特别涉及一种异构设备的高速通信方法、装置、异构通信系统、计算机可读存储介质和通信设备。
背景技术:
2.当前,主机远端异构设备的访问,需要依赖通信软件和虚拟设备驱动,这两个都是软件,对性能损伤都比较大,同时要被转换成多个应用软件和虚拟设备驱动操作,严重增加处理时延,且占用大量的计算资源,影响其他应用业务运行。
技术实现要素:
3.本技术的目的是提供一种异构设备的高速通信方法、装置、异构通信系统、计算机可读存储介质和通信设备,将远端异构设备操作上下文虚拟化到本地的高速互连远端虚拟化模块处理器,实现远端的异构设备状态到本地的映射,高速互连远端虚拟化模块处理器在本地就能根据远端状态进行相关操作。
4.为解决上述技术问题,本技术提供一种异构设备的高速通信方法,应用于包含高速互连远端虚拟化处理器的通信设备,包括:所述高速互连远端虚拟化处理器接收高速互连操作;所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;所述高速互连远端虚拟化处理器将所述寄存器操作和所述内存数据搬移操作转换为通信请求;所述高速互连远端虚拟化处理器通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
5.其中,所述高速互连远端虚拟化处理器接收高速互连操作之前,还包括:在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标异构设备的连接。
6.其中,在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标异构设备的连接之后,还包括:所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息。
7.其中,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息包括:所述高速互连远端虚拟化处理器上分配所述目标异构设备对应的内存功能数据和寄存器相关数据。
8.其中,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息之后,还包括:主机上的中央处理器通过高速互连模块将所述高速互连操作下发至所述高速互
连远端虚拟化处理器。
9.其中,所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作包括:所述高速互连远端虚拟化处理器通过高速互连操作映射处理单元和微码处理单元,将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。
10.其中,还包括:通过所述微码处理单元根据所述目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。
11.其中,还包括:将目标异构设备的操作上下文虚拟化至位于本地的所述高速互连远端虚拟化处理器。
12.其中,所述高速互连远端虚拟化处理器接收到高速互连操作指令之后,还包括:所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令。
13.其中,若所述高速互连操作指令包括读指令、写指令和缓存指令,所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令后,还包括:若所述高速互连操作指令包括读指令;接收所述读指令,为所述读指令分配相应的读请求内存;根据所述读指令读取异构设备上的内存数据,并基于所述内存数据响应所述读指令;释放所述读请求内存;若所述高速互连操作指令包括写指令;接收所述写指令,分配相应的写请求内存;向所述写请求内存写入数据,并通过写操作将写入数据写入至所述异构设备上的内存;所述高速互连远端虚拟化处理器响应所述读请求,并释放所述读请求内存;若所述高速互连操作指令包括缓存指令;接收所述缓存指令,分配相应的缓存请求内存;向所述缓存请求内存写入缓存数据;通过写操作将所述缓存请求内存中的缓存数据写至所述异构设备上的内存,并更新所述异构设备的缓存状态;通过读操作将所述缓存数据读至所述高速互连远端虚拟化处理器上的内存;所述高速互连远端虚拟化处理器此后释放所述缓存请求内存,并同步虚拟化缓存状态。
14.其中,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息之后,还包括:根据所述上下文信息确定所述目标异构设备的可访问内存地址范围。
15.其中,还包括:所述高速互连远端虚拟化处理器根据所述目标异构设备的设备状态,更新高速互
连远端虚拟化处理器上的所述上下文信息。
16.其中,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的输入输出协议与所述目标异构设备进行输入输出数据传输。
17.其中,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的系统内存协议访问中央处理器的内存。
18.其中,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的系统内存协议实现中央处理器和显卡内存的共享。
19.本技术还提供一种异构通信系统,包括:依次连接的主机、具备高速通信功能的交换机和至少一个异构设备;其中,所述主机包括中央处理器、高速互连模块和高速互连远端虚拟化模块;所述主机用于通过位于所述主机上的高速互连远端虚拟化处理器执行如下操作;将所述高速互连操作转换为对所述异构设备上异构加速器的寄存器操作和内存数据搬移操作;将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通过所述通信请求与所述异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
20.其中,所述高速互连远端虚拟化处理器包括:微码处理单元,用于根据所述目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。
21.其中,所述高速互连远端虚拟化处理器包括:上下文信息管理单元,用于分配所述目标异构设备对应的上下文信息。
22.其中,上下文信息管理单元还用于根据所述目标异构设备的设备状态,更新高速互连远端虚拟化处理器上的所述上下文信息。
23.本技术还提供一种异构设备的高速通信装置,应用于包含高速互连远端虚拟化处理器的通信设备,包括:接收模块,用于接收高速互连操作;操作转换模块,用于将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;请求转换模块,用于将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通信模块,用于通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
24.其中,还包括:建立模块,用于在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标远端异构设备的连接。
25.其中,还包括:分配模块,用于在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标远端异构设备的连接以后,分配所述目标远端异构设备对
应的上下文信息。
26.其中,分配模块包括:分配单元,用于分配所述目标远端异构设备对应的内存功能数据和寄存器相关数据。
27.其中,还包括:连接模块,用于分配所述目标远端异构设备对应的上下文信息之后,通过高速互连模块将所述高速互连操作下发至所述高速互连远端虚拟化处理器。
28.其中,操作转换模块包括:转换单元,用于通过高速互连操作映射处理单元和微码处理单元,将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。
29.其中,还包括:配置信息设置模块,用于通过所述微码处理单元根据所述目标远端异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标远端异构设备的通信适配。
30.其中,还包括:虚拟化模块,用于将目标远端异构设备的操作上下文虚拟化至位于本地的所述高速互连远端虚拟化处理器。
31.其中,还包括:拆分模块,用于若所述高速互连远端虚拟化处理器接收到高速互连操作指令,所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令。
32.其中,还包括:读处理模块,用于若所述高速互连操作指令包括读指令;接收所述读指令,为所述读指令分配相应的读请求内存;根据所述读指令读取异构设备上的内存数据,并基于所述内存数据响应所述读指令;释放所述读请求内存;写处理模块,用于若所述高速互连操作指令包括写指令;接收所述写指令,分配相应的写请求内存;向所述写请求内存写入数据,并通过写操作将写入数据写入至所述异构设备上的内存;所述高速互连远端虚拟化处理器响应所述读请求,并释放所述读请求内存;缓存处理模块,用于若所述高速互连操作指令包括缓存指令;接收所述缓存指令,分配相应的缓存请求内存;向所述缓存请求内存写入缓存数据;通过写操作将所述缓存请求内存中的缓存数据写至所述异构设备上的内存,并更新所述异构设备的缓存状态;通过读操作将所述缓存数据读至所述高速互连远端虚拟化处理器上的内存;所述高速互连远端虚拟化处理器此后释放所述缓存请求内存,并同步虚拟化缓存状态。
33.其中,还包括:确定模块,用于分配所述目标远端异构设备对应的上下文信息之后,根据所述上下文信息确定所述目标远端异构设备的可访问内存地址范围。
34.其中,还包括:更新模块,用于根据所述目标异构设备的设备状态,更新高速互连远端虚拟化处理器上的所述上下文信息。
35.其中,还包括:
传输模块,用于利用基于高速互连协议的输入输出协议与所述目标异构设备进行输入输出数据传输。
36.其中,还包括:访问模块,用于利用基于高速互连协议的系统内存协议访问中央处理器的内存。
37.其中,还包括:共享模块,用于利用基于高速互连协议的系统内存协议实现中央处理器和显卡内存的共享。
38.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
39.本技术还提供一种通信设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
40.本技术提供一种异构设备的高速通信方法,应用于包含高速互连远端虚拟化处理器的通信设备,包括:所述高速互连远端虚拟化处理器接收高速互连操作;所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;所述高速互连远端虚拟化处理器将所述寄存器操作和所述内存数据搬移操作转换为通信请求;所述高速互连远端虚拟化处理器通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
41.本技术中,本地通信设备可以通过高速互连远端虚拟化处理器,无差别访问近端和远端的异构加速器,远端加速器仅仅需要支持常规的高性能通信标准,无需另外增加额外的硬件要求,将高速互连操作转换为对异构加速器的寄存器操作和内存数据搬移操作,实现了高速互连操作向传统高速通信方式的转换,将远端异构设备操作上下文虚拟化到本地的高速互连远端虚拟化模块处理器,实现远端异构设备状态到本地的映射,高速互连远端虚拟化模块处理器在本地就能根据远端状态进行相关操作,相当于本地通信设备中的中央处理器通过访问本地异构加速器的方式访问高速互连远端虚拟化模块处理器,不必依赖软件,对通信设备无性能损伤,降低了通信时延以及对通信设备的计算资源占用,保障了通信性能和本地应用业务运行性能。
42.本技术还提供一种异构设备的高速通信装置、异构通信系统、计算机可读存储介质和通信设备,具有上述有益效果,此处不再赘述。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
44.图1为本技术实施例所提供的主机与远端异构设备的访问结构示意图;图2为本技术实施例所提供的一种异构设备的高速通信方法的流程图;图3为本技术实施例所提供的异构设备的高速通信的功能层级卸载示意图;图4为本技术实施例所提供的异构设备的高速通信的网络逻辑示意图;图5为本技术实施例所提供的异构设备混合组网的结构示意图;
图6为本技术实施例提供的一种异构设备的高速通信装置的结构示意图;图7为本技术实施例提供的一种通信设备的结构示意图。
具体实施方式
45.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.对近端异构设备的访问可以采用cxl(compute express link,一种全新的互联技术标准,能够让中央处理器与gpu(graphics processing unit,图形处理器)、fpga(field programmable gate array,现场可编程门阵列)或其他加速器之间实现高速高效的互联,从而满足高性能异构计算的要求,并且其维护中央处理器内存空间和连接设备内存之间的一致性),cxl可以实现高性能、低中央处理器占用率的异构加速器访问。但对远端异构设备的访问却比较困难,因为cxl需要硬件支持才能满足性能需求(类似5g,需要支持5g就需要5g手机),异构加速器通常不支持cxl远程访问。
47.为了实现对远端异构设备的虚拟化,需要通过通信软件api(如:rdma verbs、socket)连接远端异构加速器,再通过通信软件发送指令完成对异构设备的访问,然后将对远端异构设备操作封装在驱动程序里,完成远端异构设备的虚拟化工作,这种访问效率低。
48.参见图1,图1为本技术实施例所提供的主机与远端异构设备的访问结构示意图,由图1可以看出,主机对远端异构设备的访问,需要依赖通信软件和虚拟设备驱动。主机中央处理器对远端异构设备的基础访问操作,要被转换成多个应用软件和虚拟设备驱动操作,对性能损伤都比较大。此外,主机需要区分近端和远端异构加速器,通过不同的逻辑处理不同设备,因为需要通过虚拟化驱动和通信软件进行操作,增加了逻辑处理的复杂度。远端加速器和中央处理器不在同一个主机内,近端加速器和中央处理器在同一个主机内。在设备注册到操作系统的时候,通过本地pcie方式连接的,在pcie设备注册的时候,即可确定其为近端异构加速器。远端设备通过虚拟化驱动设备注册的时候,即可确定其为远端异构加速器。
49.如此,主机对远端异构设备的访问,需要依赖通信软件和虚拟设备驱动等软件,对性能损伤都比较大。同时应用软件和虚拟设备驱动为软件,需要占用大量的中央处理器计算资源,导致宝贵的中央处理器资源无法用于应用业务处理。此外,主机中央处理器对远端异构设备的基础访问操作,要被转换成多个应用软件和虚拟设备驱动操作,严重增加处理时延。以及主机需要区分近端和远端异构加速器,增加了逻辑处理的复杂度。
50.为了解决上述技术问题,参见图2,图2为本技术实施例所提供的一种异构设备的高速通信方法的流程图,该方法具体包括:s101:所述高速互连远端虚拟化处理器接收高速互连操作。
51.高速互连远端虚拟化模块处理器是一块在主机或者本地设备上的芯片或者加速卡,主要功能是将高速互连操作请求拆分成多条其他高性能通信技术(如:ib指令,英文全称:infiniband,中文名称:无限带宽指令)指令,并维护高速互连操作的相关上下文,如:缓存信息等。本步骤中的高速互连操作指cxl操作。
52.本实施例默认在执行本步骤前,已经建立了高速互连远端虚拟化处理器与所述目标异构设备的连接。当然,该连接过程的实质为包含高速互连远端虚拟化处理器的主机或者本地设备与目标异构设备的连接。特别的,该目标异构设备可以为远端异构设备,从而实现远端通信。
53.此外,在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标异构设备的连接之后,还可以通过高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息,具体的,可由高速互连远端虚拟化处理器上分配所述目标异构设备对应的内存功能数据和寄存器相关数据。由于cxl是一套访问异构加速设备上内存数据的功能模块集合,分三个大的子协议,cxl.mem、cxl.cache、cxl.io,cxl是一种硬件实现的异构设备内存访问应用。所以cxl请求不能和通信功能完全对应上,必然会涉及到一些和内存、缓存、数据同步等相关功能,这些功能会根据异构设备的内部实现,转换成一系列数据和寄存器的读写以及修改。因此,若高速互连远端虚拟化处理器接收到高速互连操作指令,高速互连远端虚拟化处理器还可以将所述高速互连操作指令拆分为多条高性能通信指令。在具体拆分时,高速互连远端虚拟化处理器可以根据内存配置、缓存配置、寄存器配置和数据同步设置中的至少一种将高速互连操作指令拆分为多条高性能通信指令。
54.当前,仅能通过通信软件api(如:rdma verbs、socket)连接远端异构加速器,再通过通信软件发送指令完成对异构设备的访问,将对远端异构设备操作封装在驱动程序里,完成远端异构设备的虚拟化工作。但该过程不仅无法实现缓存一致性,也只能通过上层应用修改应用软件逻辑来做缓存一致性,因此现有技术不支持缓存相关的指令,也是因此导致了当前对于远端异构设备的访问性能较差。
55.以当前读指令为例,其包含如下流程:1、主机应用程序调用系统设备api;2、主机系统调用虚拟化设备驱动;3、主机虚拟化设备驱动调用高速通信api;4、通过 ib rdma verbs read操作,将数据从异构设备上的内存读回;5、读完成后,逐级返回软件栈。
56.而本技术实施例在对高速互连操作指令进行具体拆分时,可以拆分得到读指令、写指令和缓存指令,而这三种指令通常可以一并拆分得到,也可以得到其中任一种或任意两种的组合。
57.下文分别以读指令、写指令和缓存指令为例对拆分后的处理过程进行说明:若所述高速互连操作指令包括读指令,可以包括如下步骤:接收所述读指令,为所述读指令分配相应的读请求内存;根据所述读指令读取异构设备上的内存数据,并基于所述内存数据响应所述读指令;释放所述读请求内存。
58.可见,本实施例针对于高速互连操作指令中的读指令,无需调用各api和虚拟化设备驱动,仅需要分配相应的内存执行读指令即可,不涉及诸多api的调用和复杂操作,大大提升了访问性能。
59.若所述高速互连操作指令包括写指令,可以包括如下步骤:接收所述写指令,分配相应的写请求内存;向所述写请求内存写入数据,并通过写操作将写入数据写入至所述异构设备上的内存;所述高速互连远端虚拟化处理器响应所述读请求,并释放所述读请求内存;若所述高速互连操作指令包括缓存指令,可以包括如下步骤:接收所述缓存指令,分配相应的缓存请求内存;向所述缓存请求内存写入缓存数据;通过写操作将所述缓存请求内存中的缓存数据写至所述异构设备上的内存,并更新所述异构设备的缓存状态;通过读操作将所述缓存数据读至所述高速互连远端虚拟化处理器上的内存;此后高速互连远端虚拟化处理器释放缓存请求内存,并同步虚拟化缓存状态。
60.上下文信息就是cxl相关功能的中间数据,比如:远端异构设备的可访问内存地址范围等,因此可以根据上下文信息确定目标异构设备的可访问内存地址范围。与此同时,也可以将目标异构设备的操作上下文虚拟化至位于本地的高速互连远端虚拟化处理器。需要说明的是,该上下文信息并非曝出不便,高速互连远端虚拟化处理器可以根据目标异构设备的设备状态,更新上下文信息。
61.s102:所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。
62.s103:高速互连远端虚拟化处理器将所述寄存器操作和所述内存数据搬移操作转换为通信请求。
63.s104:高速互连远端虚拟化处理器通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
64.在执行步骤s102时,可借助于高速互连操作映射处理单元和微码处理单元,将高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。微码处理单元还可以根据所述目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。具体的,可以针对不同远端异构加速卡的指令、寄存器差异,高速互连远端虚拟化模块处理器具备微码处理单元,提供简单的可配置能力,从而适配不同异构加速卡的实现差异。
65.在得到寄存器操作和内存数据搬移操作后,可以将其整合为通信请求,并通过原生高速通信协议与目标异构设备进行通信,从而执行寄存器操作和内存数据搬移操作。
66.本地通信设备可以通过高速互连远端虚拟化处理器,无差别访问近端和远端的异构加速器,远端加速器仅仅需要支持常规的高性能通信标准,无需另外增加额外的硬件要求,将高速互连操作转换为对异构加速器的寄存器操作和内存数据搬移操作,实现了高速互连操作向传统高速通信方式的转换,将远端异构设备操作上下文虚拟化到本地的高速互连远端虚拟化模块处理器,实现远端异构设备状态到本地的映射,高速互连远端虚拟化模块处理器在本地就能根据远端状态进行相关操作,相当于本地通信设备中的中央处理器通过访问本地异构加速器的方式访问高速互连远端虚拟化模块处理器,不必依赖软件,对通信设备无性能损伤,降低了通信时延以及对通信设备的计算资源占用,保障了通信性能和
本地应用业务运行性能。
67.在上述实施例的基础上,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息之后,主机上的中央处理器可以通过高速互连模块将所述高速互连操作下发至所述高速互连远端虚拟化处理器。
68.以无限带宽指令为例,若应用至远程异构设备,此时对应的完整执行过程可以如下:(1)远端异构设备启动通过高速通信技术连接高速互连远端虚拟化模块处理器。
69.(2)远端异构设备注册自身信息并在高速互连远端虚拟化模块处理器上分配对应的上下文信息。
70.(3)主机中央处理器通过高速互连接口将高速互连操作下达到高速互连远端虚拟化模块处理器上。
71.(4)高速互连远端虚拟化模块处理器接收高速互连操作。
72.(5)高速互连远端虚拟化模块处理器通过高速互连操作映射处理单元和远端异构设备微码处理单元,将高速互连操作转变成异构加速器的寄存器操作和内存数据搬移操作。
73.(6)高速互连远端虚拟化模块处理器根据异构设备状态,更新高速互连远端虚拟化模块处理器上的远端异构设备上下文信息。
74.(7)高速互连远端虚拟化模块处理器将寄存器操作和内存数据搬移操作转成ib通信请求。
75.(8)高速互连远端虚拟化模块处理器通过无限带宽协议与异构设备发生通信,完成寄存器操作和内存数据搬移操作。
76.(9)完成高速互连操作。
77.在步骤(1)中,远程异构设备通过高速通信技术连接至主机的高速互连远端虚拟化模块处理器,此后远程异构设备需要注册,从而使得高速互连远端虚拟化模块处理器识别为近端设备还是远端设备,在注册时,由高速互连远端虚拟化模块处理器为其分配上下文信息。此后远程异构设备下发高速互连操作,再由主机的中央处理器将高速互连操作下发至高速互连远端虚拟化模块处理器,将远端异构设备操作上下文虚拟化到本地的高速互连远端虚拟化模块处理器,实现远端异构设备状态到本地的映射,高速互连远端虚拟化模块处理器在本地就能根据远端异构设备的状态进行相关操作。后续过程可以参考上文,此处不再赘述。
78.参见图3,图3为本技术实施例所提供的异构设备的高速通信的功能层级卸载示意图,以现场可编程门阵列作为异构设备为例,为了更清晰的展示高速互连远端虚拟化处理器在以无限带宽协议为例的通信过程中的功能作用,将高速互连远端虚拟化处理器独立显示,在实际应用中,其应位于主机之上。在高速互连远端虚拟化处理器中,其可以包括高速互连上下文管理单元,用于分配或更新远端异构设备的上下文信息。高速互连操作映射处理单元是以无限带宽协议为基础,同时高速互连操作映射处理单元和微码处理单元用于执行高速互连操作的转换,从而得到寄存器操作和内存数据搬移操作,再基于无线带宽接口进行通信,传输至异构设备。
79.由于cxl是高速中央处理器到设备和中央处理器到内存连接的开放标准,专为高
性能数据中心计算机而设计。cxl是一种中央处理器与其他设备开放互联标准,不仅支持io设备互联,更加打通了设备的内存互联,缓存互联的任督二脉的开放互联标准。这套互联标准支持三种协议:cxl.io:此协议在功能上等同于 pcie 5.0 协议,充当设备间的io传输。
80.cxl.memory:此协议主要打破中央处理器与其余device实现了内存共享, 假设中央处理器通过cxl连接显卡,此协议的支持可以帮助中央处理器可以访问显卡的显存,同时显卡也可以访问中央处理器的内存。而显卡访问中央处理器的内存是通过cxl.cache协议实现。
81.cxl.cache:该协议可以理解专为更具体的应用程序而设计, 可以使加速器能够有效地访问cache主中央处理器的内存以优化性能。
82.对应的,高速互连远端虚拟化处理器可以利用基于高速互连协议的输入输出协议与目标异构设备进行输入输出数据传输。同时高速互连远端虚拟化处理器也可以利用基于高速互连协议的系统内存协议访问中央处理器的内存,还可以利用基于高速互连协议的系统内存协议实现中央处理器和显卡内存的共享。
83.综上可以看出,本技术实施例中,主机中央处理器通过高速互连远端虚拟化模块技术访问远程异构加速器,中央处理器采用访问本地异构加速器的方式访问高速互连远端虚拟化模块处理器,访问的全部过程由高速互连远端虚拟化模块处理器卸载。本技术还可以将高速互连操作转变成异构加速器的寄存器操作和内存数据搬移操作,实现了高速互连操作往原生高速通信方式的转换,同时提供了一定的可编程、可配置能力,以适应不同远端异构设备的差异。
84.参见图4,图4为本技术实施例所提供的异构设备的高速通信的网络逻辑示意图,本技术还提供一种异构通信系统,包括:依次连接的主机、具备高速通信功能的交换机和至少一个异构设备;其中,所述主机包括中央处理器、高速互连模块和高速互连远端虚拟化模块;所述主机用于通过位于所述主机上的高速互连远端虚拟化处理器执行如下操作;将所述高速互连操作转换为对所述异构设备上异构加速器的寄存器操作和内存数据搬移操作;将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通过所述通信请求与所述异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
85.该交换机仅要求支持高速通信基础即可,主要需要对主机和异构设备进行硬件优化,以支持cxl操作。
86.一种可行的实施例中,所述高速互连远端虚拟化处理器包括:微码处理单元,用于根据所述目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。
87.在其他可行的实施例中,所述高速互连远端虚拟化处理器可以包括上下文信息管理单元,该上下文信息管理单元用于分配所述目标异构设备对应的上下文信息。
88.一种可行的实施例中上下文信息管理单元还用于根据所述目标异构设备的设备状态,更新高速互连远端虚拟化处理器上的所述上下文信息。
89.参见图5,图5为本技术实施例所提供的异构设备混合组网的结构示意图,除了无线带宽协议以外,本技术提供的异构设备的高速通信方法,还可以应用于所有异构加速器,
包括但不限于roce(rdma over converged ethernet,远程直接访问内存通信)、nvlink(英伟达高速互连协议)、各大厂商私有协议等等。此外,还能实现不同通信技术和不同类型加速器混合组网使用,进一步提升系统兼容性,实现更多不同标准的设备混合组网。可见,本技术可以实现不同通信技术和不同类型加速器混合组网使用,进一步提升系统兼容性。
90.参见图6,本技术还提供一种异构设备的高速通信装置,应用于包含高速互连远端虚拟化处理器的通信设备,包括:接收模块,用于接收高速互连操作;操作转换模块,用于将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;请求转换模块,用于将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通信模块,用于通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。
91.本实施例提供的异构设备的高速通信装置,本地通信设备可以通过高速互连远端虚拟化处理器,无差别访问近端和远端的异构加速器,远端加速器仅仅需要支持常规的高性能通信标准,无需另外增加额外的硬件要求,将高速互连操作转换为对异构加速器的寄存器操作和内存数据搬移操作,实现了高速互连操作向传统高速通信方式的转换,将远端异构设备操作上下文虚拟化到本地的高速互连远端虚拟化模块处理器,实现远端异构设备状态到本地的映射,高速互连远端虚拟化模块处理器在本地就能根据远端状态进行相关操作,相当于本地通信设备中的中央处理器通过访问本地异构加速器的方式访问高速互连远端虚拟化模块处理器,不必依赖软件,对通信设备无性能损伤,降低了通信时延以及对通信设备的计算资源占用,保障了通信性能和本地应用业务运行性能。
92.基于上述实施例,还包括:建立模块,用于在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标远端异构设备的连接。
93.基于上述实施例,还包括:分配模块,用于在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标远端异构设备的连接以后,分配所述目标远端异构设备对应的上下文信息。
94.基于上述实施例,分配模块包括:分配单元,用于分配所述目标远端异构设备对应的内存功能数据和寄存器相关数据。
95.基于上述实施例,在其他可行的实施例中,还包括:连接模块,用于分配所述目标远端异构设备对应的上下文信息之后,通过高速互连模块将所述高速互连操作下发至所述高速互连远端虚拟化处理器。
96.基于上述实施例,操作转换模块包括:转换单元,用于通过高速互连操作映射处理单元和微码处理单元,将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。
97.基于上述实施例,在其他可行的实施例中,还包括:
配置信息设置模块,用于通过所述微码处理单元根据所述目标远端异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标远端异构设备的通信适配。
98.基于上述实施例,在其他可行的实施例中,还包括:虚拟化模块,用于将目标远端异构设备的操作上下文虚拟化至位于本地的所述高速互连远端虚拟化处理器。
99.基于上述实施例,在其他可行的实施例中,还包括:拆分模块,用于若所述高速互连远端虚拟化处理器接收到高速互连操作指令,所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令。
100.基于上述实施例,若包含拆分模块,还可以包括:读处理模块,用于若所述高速互连操作指令包括读指令;接收所述读指令,为所述读指令分配相应的读请求内存;根据所述读指令读取异构设备上的内存数据,并基于所述内存数据响应所述读指令;释放所述读请求内存;写处理模块,用于若所述高速互连操作指令包括写指令;接收所述写指令,分配相应的写请求内存;向所述写请求内存写入数据,并通过写操作将写入数据写入至所述异构设备上的内存;所述高速互连远端虚拟化处理器响应所述读请求,并释放所述读请求内存;缓存处理模块,用于若所述高速互连操作指令包括缓存指令;接收所述缓存指令,分配相应的缓存请求内存;向所述缓存请求内存写入缓存数据;通过写操作将所述缓存请求内存中的缓存数据写至所述异构设备上的内存,并更新所述异构设备的缓存状态;通过读操作将所述缓存数据读至所述高速互连远端虚拟化处理器上的内存;所述高速互连远端虚拟化处理器此后释放所述缓存请求内存,并同步虚拟化缓存状态。
101.基于上述实施例,在其他可行的实施例中,还包括:确定模块,用于分配所述目标远端异构设备对应的上下文信息之后,根据所述上下文信息确定所述目标远端异构设备的可访问内存地址范围。
102.基于上述实施例,在其他可行的实施例中,还包括:更新模块,用于根据所述目标异构设备的设备状态,更新高速互连远端虚拟化处理器上的所述上下文信息。
103.基于上述实施例,在其他可行的实施例中,还包括:传输模块,用于利用基于高速互连协议的输入输出协议与所述目标异构设备进行输入输出数据传输。
104.基于上述实施例,在其他可行的实施例中,还包括:访问模块,用于利用基于高速互连协议的系统内存协议访问中央处理器的内存。
105.基于上述实施例,在其他可行的实施例中,还包括:共享模块,用于利用基于高速互连协议的系统内存协议实现中央处理器和显卡内存的共享。
106.本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory ,rom)、随机存取存储器(random access memory ,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
107.本技术还提供了一种通信设备,参见图7,本技术实施例提供的一种通信设备的结构图,如图7所示,可以包括处理器1410和存储器1420。
108.其中,处理器1410可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1410可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1410也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1410可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1410还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
109.存储器1420可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1420还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器1420至少用于存储以下计算机程序1421,其中,该计算机程序被处理器1410加载并执行之后,能够实现前述任一实施例公开的由通信设备侧执行的异构设备的高速通信方法中的相关步骤。另外,存储器1420所存储的资源还可以包括操作系统1422和数据1423等,存储方式可以是短暂存储或者永久存储。其中,操作系统1422可以包括windows、linux、android等。
110.在一些实施例中,通信设备还可包括有显示屏1430、输入输出接口1440、通信接口1450、传感器1460、电源1470以及通信总线1480。
111.当然,图7所示的通信设备的结构并不构成对本技术实施例中通信设备的限定,在实际应用中通信设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
112.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
113.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
114.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:
1.一种异构设备的高速通信方法,其特征在于,应用于包含高速互连远端虚拟化处理器的通信设备,包括:所述高速互连远端虚拟化处理器接收高速互连操作;所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;所述高速互连远端虚拟化处理器将所述寄存器操作和所述内存数据搬移操作转换为通信请求;所述高速互连远端虚拟化处理器通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。2.根据权利要求1所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器接收高速互连操作之前,还包括:在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标异构设备的连接。3.根据权利要求2所述的高速通信方法,其特征在于,在所述目标异构设备启动后,通过高速通信链路建立所述高速互连远端虚拟化处理器与所述目标异构设备的连接之后,还包括:所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息。4.根据权利要求3所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息包括:所述高速互连远端虚拟化处理器上分配所述目标异构设备对应的内存功能数据和寄存器相关数据。5.根据权利要求1所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息之后,还包括:主机上的中央处理器通过高速互连模块将所述高速互连操作下发至所述高速互连远端虚拟化处理器。6.根据权利要求1所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作包括:所述高速互连远端虚拟化处理器通过高速互连操作映射处理单元和微码处理单元,将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作。7.根据权利要求6所述的高速通信方法,其特征在于,还包括:通过所述微码处理单元根据所述目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。8.根据权利要求6所述的高速通信方法,其特征在于,还包括:将所述目标异构设备的操作上下文虚拟化至位于本地的所述高速互连远端虚拟化处理器。9.根据权利要求1所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器接收到高速互连操作指令之后,还包括:
所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令。10.根据权利要求9所述的高速通信方法,其特征在于,若所述高速互连操作指令包括读指令、写指令和缓存指令,所述高速互连远端虚拟化处理器将所述高速互连操作指令拆分为多条高性能通信指令后,还包括:若所述高速互连操作指令包括读指令;接收所述读指令,为所述读指令分配相应的读请求内存;根据所述读指令读取异构设备上的内存数据,并基于所述内存数据响应所述读指令;释放所述读请求内存;若所述高速互连操作指令包括写指令;接收所述写指令,分配相应的写请求内存;向所述写请求内存写入数据,并通过写操作将写入数据写入至所述异构设备上的内存;所述高速互连远端虚拟化处理器响应所述读请求,并释放所述读请求内存;若所述高速互连操作指令包括缓存指令;接收所述缓存指令,分配相应的缓存请求内存;向所述缓存请求内存写入缓存数据;通过写操作将所述缓存请求内存中的缓存数据写至所述异构设备上的内存,并更新所述异构设备的缓存状态;通过读操作将所述缓存数据读至所述高速互连远端虚拟化处理器上的内存;所述高速互连远端虚拟化处理器此后释放所述缓存请求内存,并同步虚拟化缓存状态。11.根据权利要求3所述的高速通信方法,其特征在于,所述高速互连远端虚拟化处理器分配所述目标异构设备对应的上下文信息之后,还包括:根据所述上下文信息确定所述目标异构设备的可访问内存地址范围。12.根据权利要求3或11所述的高速通信方法,其特征在于,还包括:所述高速互连远端虚拟化处理器根据所述目标异构设备的设备状态,更新高速互连远端虚拟化处理器上的所述上下文信息。13.根据权利要求1所述的高速通信方法,其特征在于,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的输入输出协议与所述目标异构设备进行输入输出数据传输。14.根据权利要求1所述的高速通信方法,其特征在于,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的系统内存协议访问中央处理器的内存。15.根据权利要求1所述的高速通信方法,其特征在于,还包括:所述高速互连远端虚拟化处理器利用基于高速互连协议的系统内存协议实现中央处理器和显卡内存的共享。16.一种异构通信系统,其特征在于,包括:依次连接的主机、具备高速通信功能的交换机和至少一个异构设备;其中,所述主机包括中央处理器、高速互连模块和高速互连远端虚拟化模块;
所述主机用于通过位于所述主机上的高速互连远端虚拟化处理器执行如下操作;将所述高速互连操作转换为对所述异构设备上异构加速器的寄存器操作和内存数据搬移操作;将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通过所述通信请求与所述异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。17.根据权利要求16所述的异构通信系统,其特征在于,所述高速互连远端虚拟化处理器包括:微码处理单元,用于根据目标异构设备的寄存器信息设置相应的配置信息;所述配置信息用于与所述目标异构设备的通信适配。18.根据权利要求16所述的异构通信系统,其特征在于,所述高速互连远端虚拟化处理器包括:上下文信息管理单元,用于分配目标异构设备对应的上下文信息。19.根据权利要求18所述的异构通信系统,其特征在于,所述上下文信息管理单元还用于根据所述目标异构设备的设备状态,更新所述高速互连远端虚拟化处理器上的所述上下文信息。20.一种异构设备的高速通信装置,其特征在于,应用于包含高速互连远端虚拟化处理器的通信设备,包括:接收模块,用于接收高速互连操作;操作转换模块,用于将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;请求转换模块,用于将所述寄存器操作和所述内存数据搬移操作转换为通信请求;通信模块,用于通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-15任一项所述的异构设备的高速通信方法的步骤。22.一种通信设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-15任一项所述的异构设备的高速通信方法的步骤。
技术总结
本申请提供一种异构设备的高速通信方法、装置和异构通信系统,涉及通信领域,包括:所述高速互连远端虚拟化处理器接收高速互连操作;所述高速互连远端虚拟化处理器将所述高速互连操作转换为对目标异构设备上异构加速器的寄存器操作和内存数据搬移操作;所述高速互连远端虚拟化处理器将所述寄存器操作和所述内存数据搬移操作转换为通信请求;所述高速互连远端虚拟化处理器通过所述通信请求与所述目标异构设备进行通信,以执行所述寄存器操作和所述内存数据搬移操作。本申请实现远端异构设备状态到本地的映射,不必依赖软件,对通信设备无性能损伤,降低了通信时延以及对通信设备的计算资源占用,保障了通信性能和本地应用业务运行性能。务运行性能。务运行性能。
技术研发人员:李仁刚 王彦伟 黄宬 樊嘉恒 徐冉
受保护的技术使用者:浪潮(北京)电子信息产业有限公司
技术研发日:2023.09.04
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/