一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

路由配置方法、装置、系统、计算设备及存储介质与流程

2023-03-20 10:29:01 来源:中国专利 TAG:

1.本技术涉及通信技术领域,特别涉及路由配置方法、装置、系统、计算设备、计算机可读存储介质及计算机程序产品。


背景技术:

2.随着科技的快速发展,越来越多新技术被应用到了社会的各个领域,这使得现代社会对计算和存储的需求越来越大。为了提升计算和存储的能力,可以同时使用多个设备(例如gpu卡)进行计算和存储。此时,需要在多个设备之间进行通信,以准确和及时地进行数据传输。为此,需要对设备进行路由配置,以满足设备之间的通信需求。


技术实现要素:

3.鉴于此,本技术提供了路由配置方法和装置、系统、计算设备、计算机可读存储介质及计算机程序产品,期望满足设备之间的通信需求。
4.根据本技术的一个方面,提供了一种在一个第一类设备处实现的用于路由配置的方法,第一类设备的每一个包括图形处理器、用于向多个其它第一类设备进行路由的路由装置和与其他设备通信的端口,该方法包括:获取一个第一类设备与其他第一类设备的端口连接信息;将端口连接信息发送到第二类设备,以使得第二类设备基于端口连接信息确定各个第一类设备之间的路由信息;从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息;以及基于路由信息配置路由装置。
5.在根据本技术的一些实施例的路由配置方法中,第一类设备的每一个包括连接端口,连接端口对接其他第一类设备的对接端口,获取一个第一类设备与其他第一类设备的端口连接信息,包括:确定一个第一类设备中连接到其他第一类设备的连接端口的端口信息;获取其他第一类设备中与连接端口对接的对接端口的端口信息;以及基于连接端口的端口信息、对接端口的端口信息,确定端口连接信息。
6.在根据本技术的一些实施例的路由配置方法中,获取其他第一类设备中与连接端口对接的对接端口的端口信息,包括:表明一个第一类设备准备获取信息;以及获取其他第一类设备与连接端口对接的对接端口的端口信息。
7.在根据本技术的一些实施例的路由配置方法中,第一类设备还包括第一状态寄存器和第一信息寄存器,以及第二状态寄存器和第二信息寄存器,第一状态寄存器用于存储连接端口的状态信息,第一信息寄存器用于存储连接端口的端口信息,第二状态寄存器用于存储通过连接端口从对接端口获取的其他第一类设备的第一状态寄存器存储的信息,第二信息寄存器用于存储通过连接端口从对接端口获取的其他第一类设备的第一信息寄存器存储的信息。
8.在根据本技术的一些实施例的路由配置方法中,表明一个第一类设备准备获取信息,包括:将准备就绪信号存入一个第一类设备的针对连接端口的第一状态寄存器,以使得:其他第一类设备经由对接端口从连接端口获取第一状态寄存器存储的准备就绪信号,
并将准备就绪信号存入其他第一类设备的第二状态寄存器,以及响应于其他第一类设备的第二状态寄存器存储了准备就绪信号,其他第一类设备将对接端口的端口信息存入其他第一类设备的针对对接端口的第一信息寄存器。
9.在根据本技术的一些实施例的路由配置方法中,获取其他第一类设备与连接端口对接的对接端口的端口信息,包括:通过连接端口从与连接端口对接的对接端口获取其他第一类设备的第一信息寄存器存储的对接端口的端口信息;将对接端口的端口信息存储在一个第一类设备的第二信息寄存器;以及从一个第一类设备的第二信息寄存器获取对接端口的端口信息。
10.在根据本技术的一些实施例的路由配置方法中,端口信息包括端口所在的第一类设备的设备编号以及端口在第一类设备中的端口编号。
11.在根据本技术的一些实施例的路由配置方法中,基于路由信息配置路由装置,包括:基于路由信息确定一个第一类设备与其他第一类设备的路由端口;确定其他第一类设备的地址范围;将其他第一类设备的地址范围内的至少部分地址映射到路由端口;以及将映射的信息配置到路由装置。
12.在根据本技术的一些实施例的路由配置方法中,将其他第一类设备的地址范围内的至少部分地址映射到路由端口,包括:确定地址集,地址集包括其他第一类设备的地址范围内的全部地址;确定一个第一类设备与其他第一类设备之间的路由端口的数量;将地址集平均划分为数量个子地址集;将数量个子地址集与路由端口分别对应;以及在子地址集中的地址与子地址集对应的路由端口之间建立映射。
13.根据本技术的另一方面,提供了一种在第二类设备处实现的用于路由配置的方法,该方法包括:获取多个第一类设备的端口连接信息;基于端口连接信息确定多个第一类设备之间的路由信息;以及将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。
14.在根据本技术的一些实施例的路由配置方法中,基于端口连接信息确定多个第一类设备之间的路由信息,包括:基于端口连接信息确定多个第一类设备之间的拓扑结构;基于拓扑结构确定多个第一类设备之间的候选路由;基于候选路由确定多个第一类设备之间的最短路由;以及基于最短路由确定多个第一类设备之间的路由信息。
15.根据本技术的另一方面,提供了一种用于路由配置的系统,包括多个第一类设备和第二类设备,多个第一类设备的每一个设备包括图形处理器、用于向多个其它第一类设备进行路由的路由装置和与其他设备通信的端口,该系统包括:多个第一类设备的每一个第一类设备获取自身与其他第一类设备的端口连接信息;多个第一类设备的每一个第一类设备将端口连接信息发送到第二类设备;第二类设备获取多个第一类设备的端口连接信息;第二类设备基于端口连接信息确定多个第一类设备之间的路由信息;第二类设备将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置;多个第一类设备的每一个第一类设备从第二类设备获取其自身与其他第一类设备通信的路由信息;以及多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。
16.根据本技术的另一方面,提供了一种在一个第一类设备处实现的用于路由配置的装置,第一类设备的每一个包括图形处理器、用于向多个其它第一类设备进行路由的路由
装置和与其他设备通信的端口,该装置包括:第一获取模块,其被配置成获取一个第一类设备与其他第一类设备的端口连接信息;第一发送模块,其被配置成将端口连接信息发送到第二类设备,以使得第二类设备基于端口连接信息确定各个第一类设备之间的路由信息;第二获取模块,其被配置成从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息;以及配置模块,其被配置成基于路由信息配置路由装置。
17.根据本技术的另一方面,提供了一种在第二类设备处实现的用于路由配置的装置,该装置包括:第三获取模块,其被配置成获取多个第一类设备的端口连接信息;确定模块,其被配置成基于端口连接信息确定多个第一类设备之间的路由信息;以及第二发送模块,其被配置成将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。
18.根据本技术的另一方面,提供了一种计算设备,包括:存储器,其被配置成存储计算机可执行指令;以及处理器,其被配置成当计算机可执行指令被处理器执行时执行根据本技术一些实施例的路由配置方法的步骤。
19.根据本技术的另一方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,计算机可执行指令在被执行时实现根据本技术一些实施例的路由配置方法的步骤。
20.根据本技术的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据本技术一些实施例的路由配置方法的步骤。
21.在本技术要求保护的路由配置方法和装置中,首先,获取一个第一类设备与其他第一类设备的端口连接信息。然后,将端口连接信息发送到第二类设备,以使得第二类设备基于端口连接信息确定各个第一类设备之间的路由信息。然后,从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息。最后,基于路由信息配置第一类设备的路由装置。
22.可见,在本技术公开的路由配置方法中,路由信息是基于各个第一类设备之间的端口连接信息确定的,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。以及,基于路由信息完成了对第一类设备的路由装置的配置,使得各个第一类设备可以基于路由信息进行相互通信。
23.根据下文描述的实施例,本技术的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本技术的这些和其它优点。
附图说明
24.现在将更详细并且参考附图来描述本技术的实施例,其中:图1示出了根据本技术的一些实施例的路由配置方法的示例性应用场景;图2示出了根据本技术的一些实施例的在第一类设备处实现的路由配置方法的示例性流程图;图3示出了根据本技术的一些实施例的在第二类设备处实现的路由配置方法的示例性流程图;图4示出了根据本技术的一些实施例的多个第一类设备的端口连接信息的示意图;
图5示出了根据本技术的一些实施例的多个第一类设备之间拓扑结构的示意图;图6示出了根据本技术的一些实施例的地址映射的示意图;图7示出了根据本技术的一些实施例的路由配置装置的示例性结构框图;图8示出了根据本技术的一些实施例的路由配置装置的示例性结构框图;以及图9示出了一个示例系统,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备。
具体实施方式
25.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本技术将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
26.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
27.附图中所示的方框图仅仅是功能实体,不必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
28.附图中所示的流程图仅是示例性说明,不是必须包括所有的信息和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
29.应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本技术概念的教示。如本文中所使用,术语“和/或”及类似术语包括相关联的列出项目中的任一个、多个和全部的所有组合。
30.本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本技术所必须的,因此不能用于限制本技术的保护范围。
31.在详细介绍本技术的实施例之前,首先对路由及相关技术的概念进行解释。
32.路由(routing):路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由器通过转发数据包来实现网络互连。路由器通常连接两个或多个由ip子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
33.gpu(graphics processing unit):即图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器.
显存:显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。
34.通信协议:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。
35.interlaken:又称ilkn,是一种芯片间高速数据传输的协议。
36.serdes:也可写作serdes,是英文serializer(串行器)/deserializer(解串器)的简称。它是一种主流的时分多路复用(tdm)、点对点(p2p)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而大大降低通信成本。
37.smc:gpu芯片中的控制单元,能够访问gpu的整个地址空间,在48bits的地址宽度下可访问256t的物理内存。
38.fw:运行在smc上的一段程序。
39.initdone寄存器:ilkn协议中使用的一个寄存器,向该寄存器中写入的值会被自动同步到对接端口的initdoneshadow寄存器中。initdone寄存器用于为端口握手做准备。通常地,每个端口都有一个initdone寄存器寄存器。
40.initdoneshadow寄存器:ilkn协议中使用的一个寄存器,该寄存器中的值会跟随对接端口的initdone寄存器的值变化。通常地,每个端口都有一个initdoneshadow寄存器。
41.topoinfo寄存器:ilkn协议中使用的一个寄存器,可以向这个寄存器写入一个64bits的数据,该数据会被硬件自动同步到对接端口的topoinfoshadow寄存器。通常地,每个端口都有一个topoinfo寄存器。
42.topoinfoshadow寄存器:ilkn协议中使用的一个寄存器,这个寄存器中的值跟随对接端口topoinfo寄存器的值而变化。通常地,每个端口都有一个topoinfoshadow寄存器。
43.host设备:也称为主机,可以是主计算机等。当进行多个终端的通信时,需要依靠主机进行处理。
44.拓扑结构:拓扑结构是指用传输媒体把计算机等各种设备互相连接起来的物理布局,是指互连过程中构成的几何形状,它能表示出网络服务器、工作站的网络配置和互相之间的连接。
45.图1示出了根据本技术的一些实施例的路由配置方法的示例性应用场景。如图1所示,该应用场景可以包括至少一个第二类设备以及多个第一类设备。第一类设备可以通过端口相互连接和通信。以及,第一类设备可以通过有线通信或无线通信的方式与第二类设备进行通信,例如可以通过总线进行通信。其中,第一类设备可以是gpu卡等计算设备。第二类设备可以是包含计算功能的设备,例如host设备等。
46.在该实施例中,第一类设备的每一个包括图形处理器、用于向多个其它第一类设备进行路由的路由装置和与其他设备通信的端口。在一个第一类设备处实现的用于路由配置的方法包括:获取一个第一类设备与其他第一类设备的端口连接信息;将端口连接信息发送到第二类设备,以使得第二类设备基于端口连接信息确定各个第一类设备之间的路由信息;从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息;以及基于路由信息配置第一类设备的路由装置。
47.应当指出,图1仅示出了一种应用场景的示例性实施例。针对不同的应用场景,第
一类设备的数量、第二类设备的数量、第一类设备的端口数量以及第一类设备之间的连接关系等均可以随之改变,此处不做限制。以及第二类设备与第一类设备的连接方式,可以采用常见的连接方式,包括但不限于有线连接、无线连接等,例如可以通过总线进行连接,此处不做限制。
48.应当指出,第一类设备、第二类设备均可以包含能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。
49.图2示出了根据本技术的一些实施例的在第一类设备处实现的路由配置方法200的示例性流程图。第一类设备可以是如图1所示的第一类设备,第二类设备可以是如图1所示的第二类设备。以及,第一类设备的每一个包括图形处理器、用于向多个其它第一类设备进行路由的路由装置和与其他设备通信的端口。如图2所示,在第一类设备处实现的路由配置方法200可以包括步骤s210-s240。
50.在步骤s210中,获取一个第一类设备与其他第一类设备的端口连接信息。在一些实施例中,第一类设备可以是包含gpu芯片的gpu卡,gpu卡之间通过端口进行互联,端口连接信息可以是端口所在的gpu卡的信息以及端口在gpu卡中的端口号。
51.在步骤s220中,将端口连接信息发送到第二类设备,以使得所述第二类设备基于所述端口连接信息确定各个第一类设备之间的路由信息。在一些实施例中,第一类设备可以通过有线通信或无线通信的方式将端口连接信息发送到第二类设备,例如可以通过总线将端口连接信息发送至第二类设备。作为示例,第二类设备可以是host设备,也可以是其他计算设备。第二类设备在接收到端口连接信息后,将基于端口连接信息确定各个第一类设备之间的路由信息。
52.在步骤s230中,从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息。在一些实施例中,第二类设备会根据各个第一类设备的需求,将确定的路由信息拆分成多个部分,然后将各部分分别发送到对应的第一类设备。例如,在图1示出的应用场景中,第二类设备会将第一类设备0需要的路由信息发送给第一类设备0,将第一类设备n需要的路由信息发送给第一类设备n。由此,一个第一类设备可以从第二类设备获取自身与其他第一类设备通信的路由信息。
53.在步骤s240中,基于路由信息配置路由装置。在一些实施例中,在第一类设备从第二类设备接收到自身所需的路由信息后,将基于此对自身的路由装置进行配置。
54.方法200首先获取各个第一类设备之间的端口连接信息,并将其发送至第二类设备,使得第二类设备可以基于各个第一类设备之间的端口连接信息确定路由信息,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。以及,方法200基于路由信息对第一类设备的路由装置进行了配置,使得各个第一类设备可以基于路由信息进行相互通信。
55.在一些实施例中,第一类设备的每一个包括连接端口,连接端口对接其他第一类设备的对接端口,获取一个第一类设备与其他第一类设备的端口连接信息包括:确定一个第一类设备中连接到其他第一类设备的连接端口的端口信息;获取其他第一类设备中与连
接端口对接的对接端口的端口信息;以及基于连接端口的端口信息、对接端口的端口信息,确定端口连接信息。
56.作为示例,第一类设备可以是gpu卡,连接端口和对接端口可以是相互连接的gpu卡的端口。例如,gpu卡1的端口3作为连接端口,gpu卡2的端口1作为与gpu卡1的端口3对接的对接端口,则端口连接信息可以是“13-21”。此处,“13”表示gpu卡1的端口3,“21”表示gpu卡2的端口1。
57.在一些实施例中,获取其他第一类设备中与连接端口对接的对接端口的端口信息,包括:表明一个第一类设备准备获取信息;以及获取其他第一类设备与连接端口对接的对接端口的端口信息。
58.作为示例,当一个第一类设备表明自身准备获取信息时,与其连接的其他第一类设备会将其与一个第一类设备的连接端口对接的对接端口的信息发送给一个第一类设备。此时,一个第一类设备可以获取其他第一类设备与连接端口对接的对接端口的端口信息。
59.在一些实施例中,第一类设备还包括第一状态寄存器和第一信息寄存器,以及第二状态寄存器和第二信息寄存器,第一状态寄存器用于存储连接端口的状态信息,第一信息寄存器用于存储连接端口的端口信息,第二状态寄存器用于存储通过连接端口从对接端口获取的其他第一类设备的第一状态寄存器存储的信息,第二信息寄存器用于存储通过连接端口从对接端口获取的其他第一类设备的第一信息寄存器存储的信息。
60.在一些实施例中,第一类设备之间的通信可以基于ilkn协议,此时第一状态寄存器可以是initdone寄存器,第一信息寄存器可以是topoinfo寄存器,第二状态寄存器可以是initdoneshadow寄存器,第二信息寄存器可以是topoinfoshadow寄存器。例如,第一类设备可以是gpu卡,此时,基于ilkn协议,gpu卡针对每个连接的端口具有initdone寄存器、topoinfo寄存器、initdoneshadow寄存器、topoinfoshadow寄存器,这些寄存器分别用于:记录连接端口是否准备就绪、记录连接端口的端口信息、记录对接端口是否准备就绪、记录对接端口的端口信息。以及,连接端口的initdoneshadow寄存器、topoinfoshadow寄存器会分别与对接端口的initdone寄存器、topoinfo寄存器进行内容同步。
61.在一些实施例中,表明一个第一类设备准备获取信息,包括:将准备就绪信号存入一个第一类设备的针对连接端口的第一状态寄存器,以使得:其他第一类设备经由对接端口从连接端口获取第一状态寄存器存储的准备就绪信号,并将准备就绪信号存入其他第一类设备的第二状态寄存器,以及响应于其他第一类设备的第二状态寄存器存储了准备就绪信号,其他第一类设备将对接端口的端口信息存入其他第一类设备的针对对接端口的第一信息寄存器。
62.作为示例,第一类设备可以是gpu卡,连接端口可以是gpu卡1的端口3,对接端口可以是gpu卡2的端口1。gpu卡1与gpu卡2可以基于ilkn协议进行握手和通信。当gpu卡1要表明其准备获取信息时,其可以将例如1或2的字符存入端口3对应的initdone寄存器,此时,gpu卡2的端口1的initdoneshadow寄存器将会自动被同步为1或2。gpu卡2由此可以获悉gpu卡1已经准备获取信息。
63.在一些实施例中,获取其他第一类设备与连接端口对接的对接端口的端口信息,包括:通过连接端口从与连接端口对接的对接端口获取其他第一类设备的第一信息寄存器存储的对接端口的端口信息;将对接端口的端口信息存储在一个第一类设备的第二信息寄
存器;以及从一个第一类设备的第二信息寄存器获取对接端口的端口信息。
64.作为示例,第一类设备可以是gpu卡,连接端口可以是gpu卡1的端口3,对接端口可以是gpu卡2的端口1。gpu卡1与gpu卡2可以基于ilkn协议进行握手和通信。当gpu卡2获悉gpu卡1已经准备获取信息时,会将gpu卡2的端口1的端口信息存入其topoinfo寄存器。该端口信息随即被硬件自动同步到gpu卡1的端口3的topoinfoshadow寄存器。此时,gpu卡1将从其端口3的topoinfoshadow寄存器获取对接端口的端口信息。
65.在一些实施例中,端口信息包括端口所在的第一类设备的设备编号以及端口在第一类设备中的端口编号。例如,一个第一类设备的设备编号是3,连接端口在这个第一类设备的端口编号是5,则连接端口的端口信息是“35”。
66.在一些实施例中,第一类设备可以是gpu卡,第一类设备之间的连接和通信可以基于ilkn和serdes。第二类设备可以是host设备。此时,对第一类设备进行路由配置可以包括:训练serdes、ilkn初始化、握手和枚举、向host设备上报端口连接信息等。
67.作为示例,下面将叙述gpu卡1的端口3与gpu卡2的端口1握手的过程。首先,gpu卡1中的gpu芯片会在上电后自动引导fw运行,fw将初始化serdes,而后serdes会进行训练,以满足gpu卡之间的通信需求。然后,初始化ilkn。当ilkn初始化完成后,将在端口3对应的initdone寄存器中写入1,表明连接端口可以开始通信。此时,gpu卡2的端口1的initdoneshadow寄存器的内容也会随之被同步1。gpu卡2由此获悉gpu卡1已准备就绪,会将自身与gpu卡1对接的对接端口的端口信息写入topoinfo寄存器。可选地,写入的数据可以选择表i所示的格式。
68.表i 数据格式bits含义0-16设备编号16-24端口编号24-63保留
69.此时,设备编号可以是gpu卡的编号,端口编号可以是该端口在gpu卡中的编号,保留表示这些bits(位)可以用于其他功能。例如,第n个第一类设备(n是自然数)的fw可以分别向不同端口的topoinfo寄存器写入如表ii所示的值,以表征端口信息。
70.表ii 表征端口信息的值端口编号表征端口信息的值00x00《《16|n10x01《《16|n20x02《《16|n30x03《《16|n40x04《《16|n50x05《《16|n
71.然后,gpu卡将向host设备上报端口连接信息。作为示例,端口连接信息可以通过表iii和表iv示出的数据来表征。
72.表iii 第一类设备0的端口连接信息
端口编号topoinfoshadow寄存器的值含义
00x2《《16|7第一类设备0的端口0连接到第一类设备7的端口210x1《《16|7第一类设备0的端口1连接到第一类设备7的端口120x0《《16|7第一类设备0的端口2连接到第一类设备7的端口030x0《《16|1第一类设备0的端口3连接到第一类设备1的端口040x1《《16|1第一类设备0的端口4连接到第一类设备1的端口150x3《《16|7第一类设备0的端口5连接到第一类设备7的端口3
73.表iv 第一类设备1的端口连接信息
端口编号topoinfoshadow寄存器的值含义00x3《《16|0第一类设备1的端口0连接到第一类设备0的端口310x4《《16|0第一类设备1的端口1连接到第一类设备0的端口420x0《《16|6第一类设备1的端口2连接到第一类设备6的端口030x0《《16|2第一类设备1的端口3连接到第一类设备2的端口040x1《《16|2第一类设备1的端口4连接到第一类设备2的端口150x3《《16|6第一类设备1的端口5连接到第一类设备6的端口3
74.在一些实施例中,基于路由信息配置路由装置,包括:基于路由信息确定一个第一类设备与其他第一类设备的路由端口;确定其他第一类设备的地址范围;将其他第一类设备的地址范围内的至少部分地址映射到路由端口;以及将映射的信息配置到路由装置。
75.作为示例,一个第一类设备与其他第一类设备的路由端口可以是它们之间的连接端口。以及,当一个第一类设备与其他第一类设备没有直接相连时,也可以通过另一个或多个其他第一类设备进行中转。
76.在一些实施例中,将其他第一类设备的地址范围内的至少部分地址映射到路由端口,包括:确定地址集,地址集包括其他第一类设备的地址范围内的全部地址;确定一个第一类设备与其他第一类设备之间的路由端口的数量;将地址集平均划分为数量个子地址集;将数量个子地址集与路由端口分别对应;以及在子地址集中的地址与子地址集对应的路由端口之间建立映射。
77.作为示例,一个第一类设备的地址范围是0-4g,其他第一类设备的地址范围是4g-8g,一个第一类设备与其他第一类设备之间通过4个端口相连。可选地,这四个端口可以分别映射到4g-5g、5g-6g、6g-7g、7g-8g的地址范围。
78.图3示出了根据本技术的一些实施例的在第二类设备处实现的路由配置方法300的示例性流程图。如图3,路由配置方法300包括步骤s310、步骤s320、步骤s330。
79.在步骤s310,获取多个第一类设备的端口连接信息。在一些实施例中,第二类设备可以通过有线通信或无线通信的方式从多个第一类设备获取多个第一类设备的端口连接信息。例如,第二类设备可以通过总线从多个第一类设备获取端口连接信息。
80.在步骤s320,基于端口连接信息确定多个第一类设备之间的路由信息。在一些实施例中,第二类设备可以基于端口连接信息确定多个第一类设备之间的拓扑结构,然后根据结构确定多个第一类设备之间的路由信息。
81.在步骤s330,将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。在一些实施例中,第二类设备可以根据各个第一类设备自身的需求,将确定的路由信息分成多个部分,每个部分适用于一个第一类设备,并将各个部分发送到对应的第一类设备以配置其路由装置。例如,对于图1中示出的场
景,第二类设备可以基于第一类设备n的需求(0≤n≤n),将第一类设备n需要的路由信息发送至第一类设备n。
82.在方法300中,第二类设备基于各个第一类设备之间的端口连接信息确定各个第一类设备之间的路由信息,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。并且,第二类设备在确定各个第一类设备之间的路由信息之后,将路由信息发送到多个第一类设备,使得多个第一类设备可以基于路由信息对自身的路由装置进行配置,以便后续基于路由信息进行相互通信。
83.在一些实施例中,基于端口连接信息确定多个第一类设备之间的路由信息,包括:基于端口连接信息确定多个第一类设备之间的拓扑结构;基于拓扑结构确定多个第一类设备之间的候选路由;基于候选路由确定多个第一类设备之间的最短路由;以及基于最短路由确定多个第一类设备之间的路由信息。下面将通过实例详细记述。
84.作为示例,图4示出了根据本技术的一些实施例的多个第一类设备的端口连接信息的示意图。如图4所示,8个第一类设备通过端口连接。需要指出的是,图中的第一类设备依然与第二类设备保持着通信,只是图中未示出。
85.首先,多个第一类设备的每一个第一类设备获取自身与其他第一类设备的端口连接信息。可选地,端口连接信息可以使用表iii和表iv示出的数据格式来表示。例如第一类设备0获取自身与第一类设备1的端口连接信息:03-10、04-11。
86.然后,多个第一类设备的每一个第一类设备将端口连接信息发送到第二类设备。可选地,多个第一类设备中的每一个第一类设备可以将如表iii和表iv数据格式的表发送至第二类设备。
87.然后,第二类设备获取多个第一类设备的端口连接信息并基于端口连接信息确定多个第一类设备之间的路由信息。首先,第二类设备将基于端口连接信息确定多个第一类设备之间的拓扑结构。作为示例,图5示出了第二类设备基于图4中的多个第一类设备之间的端口连接信息确定的拓扑结构的示意图。
88.如图5所示,图中圆圈中的数字代表第一类设备的编号,圆圈之间的连线代表候选路由,可以用字母配合数字表示。例如q(23-30)表示第一类设备2的端口3与第一类设备3的端口0相连。
89.然后,第二类设备将基于拓扑结构确定多个第一类设备之间的候选路由并基于候选路由确定多个第一类设备之间的最短路由。从图5可以看出,第一类设备0与第一类设备4之间可以通过多种候选路由进行通信。为此,第二类设备会确定多个第一类设备之间的候选路由并基于候选路由确定多个第一类设备之间的最短路由。例如,可以利用经典的数据结构算法算出每两个第一类设备间的最短路径,最短路径有可能不是一条,在一些实施例中,当存在多条最短路径时,可以做负载均衡,并结合负载均衡选出最短最优路径。具体地,基于图5所示的拓扑结构,确定的第一类设备间的最短路径如表v所示。
90.表v 第一类设备间的最短路由
编号012345670 mnmn-opmn-op-qrmn-op-rq-ijklmn-op-ghmn-efabcd1mn opop-qrop-qr-ijklop-ghefmn-abcd2op-mnop qrqr-ijklghgh-uvgh-uv-wx3qr-op-mnrq-opqr ijklijkl-stijkl-st-uvijkl-st-uv-wx4ijkl-qr-op-mnijkl-qr-opijkl-qrijkl stst-uvst-uv-wx
5gh-op-mngh-opghst-ijklst uvuv-wx6ef-mnefuv-ghuv-st-ijkluv-stuv wx7abdcwx-uv-efwx-uv-ghwx-uv-st-ijklwx-uv-stwx-uvwx 91.如表v所示,“编号”表示第一类设备的编号,表中的字母表示第一类设备之间的最短路由。然后,第二类设备将基于最短路由确定多个第一类设备之间的路由信息。
92.然后,第二类设备将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。作为示例,发送路由信息时,会发送完整的路由信息,例如表中的mn将被补充为m(03-10)n(04-11)进行发送。
93.最后,多个第一类设备的每一个第一类设备从第二类设备获取其自身与其他第一类设备通信的路由信息,并基于路由信息配置其路由装置。
94.例如,当第一类设备是gpu卡、第二类设备是host设备时,每一个gpu卡的fw收到来自host设备的路由数据后根据路由数据对其路由装置进行相应的配置。作为示例,表6示出了host设备发送给gpu卡0的路由数据。
95.表vi gpu卡0的路由数据编号012345670 mnmn-opmn-op-qrmn-op-rq-ijklmn-op-ghmn-efabcd
96.如表vi所示,编号表示第一类设备的编号,字母代表路由路径。具体地,m指m(03-10),表示第一类设备0的端口3和第一类设备1的端口0互联;n指n(04-11),表示第一类设备0的端口4和第一类设备1的端口1互联;o指 o(13-20),表示第一类设备1的端口3和第一类设备2的端口0互联;p指p(14-21),表示第一类设备1的端口4和第一类设备2的端口1互联;e指e(12-60),表示第一类设备1的端口2和第一类设备6的端口0互联;f指f(15-63),表示第一类设备1的端口5和第一类设备6的端口3互联;a指a(00-72),表示第一类设备0的端口0和第一类设备7的端口2互联;b指b(01-71),表示第一类设备0的端口1和第一类设备7的端口1互联;c指c(02-70),表示第一类设备0的端口2和第一类设备7的端口0互联;d指d(05-73),表示第一类设备0的端口5和第一类设备7的端口3互联。
97.此时,第一类设备0基于表vi所示的路有数据,对其路由装置进行配置。具体地,包括:确定地址集,地址集包括其他第一类设备的地址范围内的全部地址,例如在图4示出的实施例中,地址集包括八个第一类设备的地址;确定一个第一类设备与其他第一类设备之间的路由端口的数量,例如在图4示出的实施例中,第一类设备与其他第一类设备之间的路由端口的数量是6;将地址集平均划分为数量个子地址集;将数量个子地址集与路由端口分别对应;以及在子地址集中的地址与子地址集对应的路由端口之间建立映射,具体的,可以如图6所示。
98.图6示出了根据本技术的一些实施例的地址映射的示意图。如图6所示,第一类设备0将地址映射到显存或端口。具体地,针对不同范围的地址,将会映射到显存或多个端口中的一个。图6示出的地址映射的具体映射信息,适用于图4示出的连接的第一类设备中的第一类设备0。以及,图6示出的地址映射方法,适于任何第一类设备。在图6示出的第一类设备中,第一类设备的显存是64g,因此当地址在0-64g时,第一类设备0会将地址映射到自身的显存,当地址超过64g时,会诉诸端口。
99.此外,还公开了一种用于路由配置的系统,包括多个第一类设备和第二类设备,多个第一类设备的每一个设备包括图形处理器、用于向多个其它第一类设备进行路由的路由
装置和与其他设备通信的端口,该系统包括:多个第一类设备的每一个第一类设备获取自身与其他第一类设备的端口连接信息;多个第一类设备的每一个第一类设备将端口连接信息发送到第二类设备;第二类设备获取多个第一类设备的端口连接信息;第二类设备基于端口连接信息确定多个第一类设备之间的路由信息;第二类设备将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置;多个第一类设备的每一个第一类设备从第二类设备获取其自身与其他第一类设备通信的路由信息;以及多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。
100.作为示例,路由配置的系统可以如图1所示的方式布置,例如,各个第一类设备之间可以通过端口连接,第二类设备与第一类设备之间可以通过有线或无线方式连接,例如通过总线连接等。
101.可见,在本技术公开的用于路由配置的系统中,首先,多个第一类设备获取自身与其他第一类设备的端口连接信息并上传到第二类设备,第二类设备基于第二类设备基于各个第一类设备之间的端口连接信息确定各个第一类设备之间的路由信息,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。然后,第二类设备将路由信息发送到多个第一类设备。最后,各个第一类设备基于路由信息对自身的路由装置进行配置,使得各个第一类设备可以基于路由信息进行相互通信。
102.图7示出了根据本技术的一些实施例的路由配置装置700的示例性结构框图。如图7所示,装置700包括第一获取模块710、第一发送模块720、第二获取模块730以及配置模块740。
103.第一获取模块710被配置成获取一个第一类设备与其他第一类设备的端口连接信息。
104.第一发送模块720被配置成将端口连接信息发送到第二类设备,以使得第二类设备基于端口连接信息确定各个第一类设备之间的路由信息。
105.第二获取模块730被配置成从第二类设备获取一个第一类设备与其他第一类设备通信的路由信息。
106.配置模块740被配置成基于路由信息配置路由装置。
107.可以看出,装置700在用于路由配置时,第一获取模块710将获取各个第一类设备之间的端口连接信息,然后第一发送模块720将端口连接信息发送至第二类设备,使得第二类设备可以基于各个第一类设备之间的端口连接信息确定路由信息,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。以及,第二获取模块730将获取路由信息,然后配置模块740将基于路由信息对第一类设备的路由装置进行了配置,使得各个第一类设备可以基于路由信息进行相互通信。
108.图8示出了根据本技术的一些实施例的路由配置装置800的示例性结构框图。如图8所示,装置800包括第三获取模块810、确定模块820以及第二发送模块830。
109.第三获取模块810被配置成获取多个第一类设备的端口连接信息。
110.确定模块820被配置成基于端口连接信息确定多个第一类设备之间的路由信息。
111.第二发送模块830被配置成将路由信息发送到多个第一类设备,以使得多个第一类设备的每一个第一类设备基于路由信息配置其路由装置。
112.可以看出,装置800在用于路由配置时,第三获取模块810首先获取多个第一类设
备的端口连接信息,然后确定模块820基于各个第一类设备之间的端口连接信息确定各个第一类设备之间的路由信息,这使得路由信息能够充分满足各个第一类设备之间后续的数据传输需求。最后,第二发送模块830将路由信息发送到多个第一类设备,使得多个第一类设备可以基于路由信息对自身的路由装置进行配置,以便后续基于路由信息进行相互通信。
113.图9图示了示例系统900,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备910。计算设备910可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面参照图7描述的路由配置装置700或者图8描述的路由配置装置800可以采取计算设备910的形式。替换地,路由配置装置700或路由配置装置800可以以应用916的形式被实现为计算机程序。
114.如图示的示例计算设备910包括彼此通信耦合的处理系统911、一个或多个计算机可读介质912以及一个或多个i/o接口913。尽管未示出,但是计算设备910还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
115.处理系统911代表使用硬件执行一个或多个操作的功能。因此,处理系统911被图示为包括可被配置成处理器、功能块等的硬件元件914。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件914不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(ic))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
116.计算机可读介质912被图示为包括存储器/存储装置916。存储器/存储装置916表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置916可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储器/存储装置916可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质912可以以下面进一步描述的各种其他方式进行配置。
117.一个或多个i/o接口913代表允许用户使用各种输入设备向计算设备910输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置成检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备910可以以下面进一步描述的各种方式进行配置以支持用户交互。
118.计算设备910还包括应用916。应用916可以例如是路由配置装置700或路由配置装置800的软件实例,并且与计算设备910中的其他元件相组合地实现本文描述的技术。
119.本技术提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上
述各种可选实现方式中提供的路由配置方法。
120.本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
121.所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备910访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
122.与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
[0123]“计算机可读信号介质”是指被配置成诸如经由网络将指令发送到计算设备910的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、rf、红外和其它无线介质的无线介质。
[0124]
如前,硬件元件914和计算机可读介质912代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
[0125]
前述的组合也可以用于实现本文的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件914体现的一个或多个指令和/或逻辑。计算设备910可以被配置成实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件914,可以至少部分地以硬件来实现将模块实现为可由计算设备910作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备910和/或处理系统911)可执行/可操作以实现本文的技术、模块和示例。
[0126]
在各种实施方式中,计算设备910可以采用各种不同的配置。例如,计算设备910可
以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备910还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备910还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
[0127]
本文描述的技术可以由计算设备910的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。
[0128]
应当理解,为清楚起见,参考不同的功能单元对本技术的实施例进行了描述。然而,将明显的是,在不偏离本技术的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本技术可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
[0129]
尽管已经结合一些实施例描述了本技术,但是其不旨在被限于在本文中所阐述的特定形式。相反,本技术的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
[0130]
可以理解的是,在本技术的具体实施方式中,涉及到用户信息等相关的数据。当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献